GPU Computing 101: Harnessing the Power of the GPU to Accelerate a Variety of Applications

What a graphics card with GPU computing capabilities will, and will not, do for your computing performance. By Jim Kumorek

In evaluating computer performance, a lot of attention is paid to the CPU, memory size, storage system, and various caches. Not everyone is aware of the impact the graphics card can have on a computer system's performance, or the details about how and why the graphics card matters beyond 3D gaming applications. To that end, we're going to take an introductory look at graphics cards which support GPU computing.

A GPU, or Graphics Processing Unit, is present in all but the most entry-level video cards. "The GPU enables software to offload computational work (typically graphics-oriented) from the CPU to the graphics card," describes Hector Guevarez, portfolio manager for Lenovo workstations.

GPUs are specialized computational processors which are designed to work with large arrays or matrixes of data, where the processing to be performed is parallel in nature-meaning, the same calculation is being performed on the entire block of data. "CPUs are very serial-one task at a time," states Sean Kilbride, technical marketing manager in NVIDIA's professional solutions group. "A GPU is very parallel in nature. Whereas a CPU may be six or eight cores, the GPU may have hundreds or thousands of cores, more typically referred to as stream processors, also referred to more generically as compute cores, or for NVIDIA, CUDA cores." At the current high-end of the market, the AMD FirePro W9000 boasts 2,048 stream processors, and NVIDIA's Quadro K6000 GPU sports 2,880 CUDA cores.

AMD also has CPU/GPU combinations on one chip (called APUs) which provides faster interaction between the CPU and GPU. Instead of a separate video card, the video circuitry is in the same chip as the CPU.

GPU cards have access to memory shared with the host computer's CPU, and also have internal memory. The amount of shared memory that the card can use, the amount of internal memory, the number of compute cores and the clock speeds of the various components all interact to dictate the processing throughput of the GPU system. And as you might expect, the quantity of each of these will dictate the cost of the cards.

"There are several different classes of graphics card," adds Guevarez, "ranging from ones designed to handle 2D and entry-level 3D, through mid- and high-end 3D. The higher end you go, the more memory and processing cores you get."

While GPU graphics cards can be had for under $100, the processing power of these cards is very limited (around 40 cores) and best for 2D graphics acceleration. The afore-mentioned cards from AMD and NVIDIA both have a price tag of over $3,000. But, there are a lot of options available between these two extremes.

Any video-oriented application is likely to benefit greatly from the use of GPUs. Video games, 2D and 3D modeling, ray tracing and animation, video production and editing all have data that can be processed in parallel, making them ideal for GPU integration.

"When doing real-time editing and compositing," comments Andrew Baum, senior strategic alliance manager for AMD, "GPU processing enables the computer system to see the end result quickly and smoothly. Without a GPU, your video may not play back accurately frame-for-frame in your editing program, or your 3D model may take significantly longer to render. A GPU lets the technical user make good decisions quickly and proceed with their work, and gamers enjoy higher-resolution video and faster frame rates."

About the Author