Into the Stream
We’ve already described how unified shaders can be programmed to perform a variety of previously pre-assigned tasks. This programmability concept has gone into hyperdrive over the last couple of years as “general-purpose GPU computing” (GPGPU) has emerged from the academic world into the consumer space. The idea is really just an extension of the type of offloading we see with video decoding. What work can the GPU do for the CPU? And in the case of stream computing, what work can the GPU do better?
Remember those 320 stream processors in the HD 4650 and 4670 cores? Any given number of those can be programmed on the fly to compute certain types of tasks that might have nothing to do with graphics or video. Once this data gets crunched, it can be exported and recombined with other work being done by the CPU. According to AMD, software that can benefit from this GPU-based “stream computing” possesses two key characteristics: “1. A high degree of arithmetic computation per system memory fetch. 2. Computational independence—arithmetic occurs on each processing unit without needing to be checked or verified by or with arithmetic occurring on any other processing unit.”
An early and extreme example is Stanford University’s Folding@home distributed computing project, which breaks up massive molecular analysis jobs into manageable pieces that can be sent to end-user systems, processed, then uploading back to the central servers for compilation. With many, many thousands of PCs working on these tasks in tandem, the Stanford team is able to process far more data than it ever could in a single server room. But because of the massively parallel computing architecture in AMD’s graphics processor, systems running GPUs with compatible GPGPU technologies, such as ATI Stream, can compute Folding@home workloads 20 to 40 times faster than having the CPU alone compute the same jobs.
As interesting and worthy as Folding@home might be, it’s not exactly a mainstream application. So why should consumers care if they have GPGPU support? Because now there are an increasing number of multimedia applications, including MediaShow Espresso and PowerDirector versions 7 and 8 from CyberLink, that leverage ATI Stream to perform consumer-level video editing and transcoding tasks and likewise achieve huge performance gains over CPU-only processing. See our June write-up (http://www.tomshardware.com/reviews/amd-stream-gpgpu,2335.html) for some early commentary and results on this point.
As of this fall, AMD is clearly signaling that it will transition its GPGPU efforts into supporting the more vendor-agnostic DirectCompute technology championed by Microsoft. The Stream brand will likely remain and become tied to DirectCompute, but as of today there are no publicly available applications that support DirectCompute (compatible with the ATI Radeon HD 58xx series) while several excellent apps support the ATI Stream technology found in the HD 4650 and 4670. If you work with video, having this GPGPU support could save you countless hours of rendering time.