General-purpose computing on graphics processing units

This is an old revision of this page, as edited by 59.167.39.17 (talk) at 09:13, 11 August 2005 (External Links). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

General-Purpose Computing on Graphics Processing Units (also referred to as GPGP and to a lesser extent GP^2) is a recent trend in computer science that uses the graphics processing unit to perform the computations rather than the CPU.

Game programmers have had the need to make more realistic-looking effects, and this led to programmable vertex shaders and fragment shaders. Vertex shaders are programs that run on the GPU and allow programmers to specify how the vertices of a geometric shape will be lit. Fragment shaders also run on the GPU and allow programmers to specify how each fragment, or pre-pixel, will be colored. Naturally, more bits per pixel allow a higher range of colors to be used, so graphics cards have increased the number of bits that represent each color component.

Now, combine these programs with higher precision arithmetic and the fact that graphics processors computational power has been increasing at an incredibly high rate, and it is easy to see why GPUs are being looked as a powerful processing unit in areas outside their original intended scope of graphics and visualization.

The following are some of the non-graphics areas where GPUs have been used for general purpose computing:

Not all applications can be ported to the GPU successfully though. Some applications are simply not well suited for today's graphics architecture. Furthermore, the precision on a GPU is limited to 24 bits on ATI cards and 32 bits on NVIDIA cards. This limitation on the precision available is enough to prevent certain type of computations from being performed on GPUs.