General-purpose computing on graphics processing units: Difference between revisions

Content deleted Content added
No edit summary
Line 21:
While 64 bit floating point values (double precision float) are commonly available on CPUs, these are not currently available on GPUs. Some applications require at least double precision floating point values and thus cannot currently be ported to GPUs. There have been efforts to emulate double precision floating point values on GPUs{{ref|doublePrecisionOnGPU}}.
 
[[NVIDIA Corporation|NVIDIA]] GPUs currently support 32 bit values through the entire pipeline. [[ATI Technologies|ATI]] cards currently support 24 bit values throughout the pipeline, although their new X1800X1000 series supports 32 bits. The implementations of floating point on GPUs are generally not [[IEEE floating-point standard|IEEE]] compliant, and generally do not match across vendors. This has implications for correctness which are considered important to some scientific applications.
 
Operations on the GPU operate in a vectorized fashion: a single operation can be performed on up to four values at once. For instance, if one color <R1, G1, B1> is to be modulated by another color <R2, G2, B2>, the GPU can produce the resulting color <R1*R2, G1*G2, B1*B2> in a single operation. This functionality is useful in graphics because almost everything basic data type is a vector (either 2, 3, or 4 dimensional). Examples include vertices, colors, normal vectors, and texture coordinates. Many other applications can put this to good use, and because of this vector instructions ([[SIMD]]) have already been added to CPUs.