Graphics Cards – a possible future for HPC ?

The current edition of the Australian APC Magazine has a really interesting article on Hijacking the GPU (Graphics Processing Unit) to use it for general purpose programming. Their take is that the latest graphics cards give you an awsome amount of processing power which you can now take advantage of if you can frame your problem in a manner which is acceptable to the way a graphics card works. It’s possible, but it takes work.

From my point of view this is really interesting because of the fact that now you can get more power (theoretically) than some supercomputers from a few years ago had in a *current* top end PC for a few thousand dollars if you can make use of it. As a quick point of reference, from 2000 to 2004 VPAC had a Compaq AlphaServer SC Cluster that took up 9 19″ racks and was in the June 2001 Top 500 List at number 151 with a peak rating of 213 gigaflops.

Now the article says that one of the new nVidia 7800XT cards can do 165 gigaflops (peak presumably) and current generation motherboards can support two of these (they’re x16 PCI-Express cards, not AGP). That gives you (theoretically) 330 gigaflops, excluding whatever processor is on the motherboard!

It would be fab to see an MPI implementation that could take advantage of this. 🙂

Read on for some quotes from the original article followed by a link to a site that is all about general purpose programming of GPUs for real world tasks.

Hijacking the GPU

The [nVidia] 7800GTX can thunder through 165 billion calculations per second
But Kirk admits that in a recent contest to build the world’s fastest database
server, the winner was a university professor who ported SQL software to run
on an Nvidia GPU.
Nvidia’s latest 7800GTX GPU allows programs with up to 65,536 shader
instructions to be carried out in a pipeline, with 24 pipelines working side
by side simultaneously.

These pipelines can be manipulated to do general processing if a program can
send through a big stream of data to be processed, and represent data –
customer details in a database, for instance – as graphical geometry – pixels
and triangles.

There’s a graphic in that article that shows the following comparison:

  • Cray 3 – 5 gigaflops
  • Pentium 4 Extreme Edition @ 3.8GHz – 15 gigaflops
  • nVidia 7800GTX – 165 gigaflops

GPGPU stands for General-Purpose computation on GPUs. With the increasing
programmability of commodity graphics processing units (GPUs), these chips
are capable of performing more than the specific graphics computations for
which they were designed. They are now capable coprocessors, and their high
speed makes them useful for a variety of applications. The goal of this page
is to catalog the current and historical use of GPUs for general-purpose