Putting The “General” In GPGPU
TH: As I understand it, Adobe is OpenGL-accelerated. I’ve heard nothing from them about Stream. Yet your initial launch info shows Acrobat Reader, Photoshop CS4, After Effects CS4, and Flash 10 all being “Stream-enabled titles.” Can you elaborate on this?
AMD: As I mentioned previously, ATI Stream refers to a framework (or environment) for both hardware and software that provides acceleration of tasks outside the usual game rendering or regular video playback acceleration. In the case of the Adobe apps you mentioned, they are enabling the hardware capabilities to accelerate their processing workflow.
TH: Hardware acceleration, yes. But that’s not the same thing as Stream acceleration.
AMD: Anything that uses GPU acceleration is ATI Stream, be it DirectX, OpenGL, or ATI Stream component.
TH: Anything? Isn’t that getting a little too broad and vague?
AMD: It is critical for a parallel compute language to be closely integrated with a graphics API. OpenCL will integrate tightly with OpenGL. Another example is DirectX 11, where the compute shaders are closely coupled with the rendering pipeline. In both cases, the rendering API is complimentary to the compute language in either OpenCL or DirectX 11.
As parallel compute gets more standardized (with the ratification and release of OpenCL and DirectX Compute Shaders) “ATI Stream” is not defined by what underlying mechanisms are specifically tied to it, but more by what types of activities are being accelerated by the GPU. We tend to look at Stream as the GPU accelerating workloads that are beyond traditional 3D rendering that has previously been associated with GPU processing. Some productivity applications already use more traditional 3D API’s acceleration of certain tasks, hence we view this as an example of Stream processing.