GPU Processing: What Gives?

Published on Thursday, 19 June 2008 12:50
Written by Douglas Eadline
Hits: 4794

I call it a PCU not a GPGPU

In case you have been hard at work on your latest breakthrough, there has been some news on the GPU processing front. What is GPU processing and why should I care you ask? The idea is rather interesting. Drawing pixels on screens is a parallel problem. Video card manufactures have taken advantage of this by placing many parallel graphics processors on their video chips. Current generation video chips now use General Purpose (GP) processors for this task. The "general purpose" feature means that graphics hardware can be now be used for parallel (predictable) computing problems. (i.e. an array multiplication is a predictable operation). You can find more background by consulting the article Pixels to PetaFLOPS: How GPUs are Pushing the HPC Envelope and (General Purpose Graphical Processing Units). By the way, that is too many G's and P's for me. I like to think of it as heterogeneous computing or simply a Parallel Computing Unit (PCU). As an HPC geek, I like to think of it as PCU that can also do video, but in reality it is the other way around. We have the gamers to thank. So a big thank-you to those useless gamer types that everybody complains about. Keep playing (and buying) games and hardware. You are helping to subsidize the cure for all the ailments you will suffer from not going outside in your youth.

Over the past year, NVIDIA has taken the lead in PCU hardware, sorry GPGPU hardware. The latest announcement will give you an idea how how fast things are progressing on this front. If you read past the press release goodness, you will notice a few important trends.

First, NVIDIA is very serious about HPC. There is of course a limited amount of real estate on the die, so there are trade-offs as to video vs. HPC performance. Second, there will be double precision support across the product line. To clear up some confusion, the product lines are as follows:

Clearly, the GeForce market generates the largest sales and profits. Of course, you can use a GeForce card to do HPC, but for production work, NVIDIA is pushing Tesla level products. Third, NVIDIA also wisely provides a free parallel programming environment called CUDA. Actually, CUDA provides parallel extensions to the C programming language. (C++ and Fortran soon). Because CUDA enabled video cards are so ubiquitous, in the short time CUDA has been available (about a year) there has been some astounding speedups for some applications (i.e. 10X-70X) That last point is most important. There are over 70 million CUDA enabled PCUs, sorry video cards out there. And the numbers are increasing each month. There is a very small financial barrier to entry -- something coders like. There is not much "in the way" of trying GPGPU computing. If you are interested there is also a CUDA developer conference happening this year at NVISION 08.

ClusterMonkey will continue to cover this exciting area. I suspect we will be seeing many more PCU, er aah GPGPU, products this year, possibly even embedded in the processors themselves. Stay tuned, we even have our own CUDA project in mind. More on that real soon.
