Many computer applications involve high quality graphic images. Perhaps the most familiar use of graphics is in video games. Other applications include artistic work, medical imaging, and animated films. A high quality image requires a large number of pixels to be displayed. Before an image is sent to a display screen, the color of each of these pixels has to be computed and stored in memory buffer. From there the information is sent to the screen at a rate of at least 30 times per second to keep the displayed image refreshed.
The task of computing pixel intensity and color can be done in software. The resulting image can be stored in a screen buffer in the computers main memory, from where it can be sent to the display over the computer bus. However, the share volume of data that need to be handled is such that this approach for other task. Also, using the computer bus to transfer the content s of the screen buffer to the display would consume a considerable portion of the bus bandwidth. With 32 bits per pixel, a 1024X1024 pixel image is represented by 4MB of the data, which would create a minimum of 120 MB per second of traffic on the memory bus.
Most graphics applications require the ability to display 3D objects. For example, an artificial 3D world is created. With full video images, entirely in software. The task of creating these images is computationally intensive. The most practical solution is to provide by special purpose processor, designed specifically to handle these intensive computations. Such a processor, known as a graphics processing units (GPU), is the basis of the popular graphics cards installed in mot personal computers. The graphics cards also includes a large high speed memory, typically ranging from 8M to 64M bytes.