Using Graphics Cards for More Than Just 3D Graphics

How the graphics processor is turning into a general processor

The heart of all computer systems lies with the central processing unit. This general-purpose processor handles just about any task. They are restricted to certain basic mathematical calculations. Complicated tasks may require combinations that result in longer processing time. Thanks to the speed of processors, most people do not notice any real slowdowns. A variety of tasks, though, really bog down a computer's central processor.

Graphics cards with their 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.

Row of graphics cards lined up
 

Accelerating Video

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 that allows this decoding process to be handled by the graphics processor rather than relying on the CPU.

The graphics card helps transcode video from one graphics format to another—for example, converting a video-camera file for burning to a DVD. The computer must take the one format and re-render it in the other. This process 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.

SETI@Home

Another early application to take advantage of the extra computing power provided by a computer's GPU is SETI@Home, which is a distributed computer application called folding that allows radio signals to be analyzed by the Search for 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 the use of just the CPU. They are able to do this with NVIDIA graphics cards through the use of the CUDA or Compute Unified Device Architecture, which is a specialized version of C code that can access NVIDIA GPUs.

Adobe Creative Suite 4 and Creative Cloud

The latest big-name application to take advantage of GPU acceleration is Adobe's Creative Suite, starting with CS4 and continuing through the modern Adobe Creative Cloud suite of applications. This includes a large number of Adobe's flagship products including Acrobat, Flash Player, Photoshop, and Premiere Pro. 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. Some people may notice no difference while others can see large time gains depending upon what tasks they use and the graphics card they use.

Cryptocurrency Mining

The standard method of acquiring virtual currencies is through a process called cryptocoin mining. In it, you use your computer as a relay for processing computation hashes for dealing with transactions. A CPU can do this at one level but a GPU on a graphics card offers a much faster method. As a result, a PC with a GPU can generate currency faster than one without it.

What Is OpenCL?

The most noteworthy development in the use of a graphics card for additional performance comes from the release of the OpenCL or Open Computer Language specifications. This specification pulls together a wide variety of specialized computer processors in addition to a GPU and CPU for accelerating computing. All sorts of applications can potentially benefit from parallel computing from the mix of different processors to increase the amount of data that can be processed.

Final Thoughts and Conclusions

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.