The heart of all computer systems lies with the CPU or central processing unit. This general purpose processor can handle just about any task. They are restricted to certain basic mathematical calculations. Complicated tasks may require combinations that result in a longer processing time. Thanks to the speed of processors, most people don't notice any real slowdowns. There are a variety of tasks though that can really bog down a computer's central processor.
Graphics cards with their GPU or graphics processor unit are one of the few specialized processors that many people have installed in their computers. These processors handle complicated calculations related to 2D and 3D graphics. In fact, they have gotten so specialized that they are now better at rendering certain calculations compared to the central processor. Because of this, there is now a movement that is taking advantage of a computer's GPU to supplement a CPU and speed up various tasks.
The first real application outside of 3D graphics that GPUs were designed to deal with was video. High definition video streams require decoding of the compressed data to produce their high resolution images. Both ATI and NVIDIA developed software code that allows this decoding process to be handled by the graphics processor rather than relying on the CPU. This is important for those looking to use a computer for viewing HDTV or Blu-ray movies on a PC.
The offshoot of this is the ability to have the graphics card help transcode video from one graphics format to another. An example of this might be taking a video source such as from a DV video cam that is being encoded to be burned to a DVD. In order to do this, the computer must take the one format and re-render it in the other. This uses a lot of computing power. By using the special video capabilities of the graphics processor, the computer can complete the transcoding process faster than if it just relied on the CPU.
Another early application to take advantage of the extra computing power provided by a computers GPU is SETI@Home. This is a distributed computer application called folding that allows radio signals to be analyzed for the Search of Extra Terrestrial Intelligence project. The advanced calculating engines within the GPU allow them to accelerate the amount of data that can be processed in a given period of time compared to use of just the CPU. They are able to do this with NVIDIA graphics cards through the use of the CUDA or Computer Unified Device Architecture which is a specialized version of C code that can access NVIDIA GPUs.Similar tools have also been developed for ATI graphics cards and even devices such as a Playstation 3.
Adobe Creative Suite 4
The latest big name application to take advantage of GPU acceleration is Adobe's Creative Suite 4. This includes a large number of Adobe's flagship products including Acrobat 9, Flash Player 10, Photoshop CS4 and Premiere Pro CS4. Essentially, any computer with an OpenGL 2.0 graphics card with at least 512MB of video memory can be used to accelerate various tasks within these applications.
Why add this capability to the Adobe applications? Photoshop and Premiere Pro in particular have a large number of specialized filters that require high level mathematics. By using the GPU to offload many of these calculations, the rendering time for large images or video streams can be completed faster. This is the first generation of Adobe's products to use this functionality and the performance boost varies greatly depending upon the filters or tasks used and the graphics card. Some users may notice no difference while others can see large time gains.
The most noteworthy development in the use of a graphics card for additional performance comes from the recent release of the OpenCL or Open Computer Language specifications. This specification once implemented will actually pull together a wide variety of specialized computer processors in addition to a GPU and CPU for accelerating computing. Once this specification is fully ratified and implemented, all sorts of applications can potentially benefit from the parallel computing from the mix of different processors to increase the amount of data that can be processed.
Specialized processors are nothing new to computers. Graphics processors are just one of the more successful and widely used items in the computing world. The problem was making these specialized processors easily accessible to applications outside of graphics. Application writers needed to write code specific to each graphics processor. With the push for more open standards for accessing an item like a GPU, computers are going to get more use out of their graphics cards than ever before. Maybe it is time to even change the name from graphics processor unit to general processor unit.