Accelerator cards for display graphics have a long and storied past. They've been available since the 70s. The late 90s, however, saw the introduction of programmable shaders that allowed the display to be generated by little programs that ran on specialized chips. It was quickly apparent, however, that the code used to draw triangles on screen, and transform and light them, could be generalized to many other fields.
Originally designed for fast graphics calculations, they have found use in accelerating many kinds of numerical code. The defining characteristic of these processors has been their ability to run many threads—in the order of hundreds or thousands—in parallel, which then allows significant speedups in algorithms that can take advantage of this facility. Therefore, the general-purpose Graphics Processing...