Graphics processing unit
|
A Graphics Processing Unit or GPU (also occasionally called Visual Processing Unit or VPU) is the microprocessor of a graphics card (or graphics accelerator) for a personal computer or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly-parallel structure makes them more effective than typical CPUs for a range of complex algorithms.
A GPU implements a number of graphics primitive operations in a way that makes running them much faster than drawing directly to the screen with the host CPU. The most common operations for early 2D computer graphics include the BitBLT operation, usually in special hardware called a "blitter", and operations for drawing rectangles, triangles, circles and arcs. Modern GPUs also have support for 3D computer graphics, and typically include digital video-related functions as well.
Contents |
History
Modern GPUs are descended from the monolithic graphics chips of the late 1970s and 1980s. These chips had limited BitBLT support in the form of sprites, if they had BitBLT support at all, and usually had no shape-drawing support. Some GPUs could run several operations in a display list, and could use DMA to reduce the load on the host processor; an early example of the was the ANTIC co-processor used in the Atari 800 and Atari 5200. In the late 1980s and early 1990s, high-speed, general purpose microprocessors were popular for implementing high-end GPUs; several (very expensive) graphics boards for PCs and workstations used digital signal processor chips (like TI's TMS340 series) to implement fast drawing functions, and many laser printers shipped with a PostScript raster image processor (a special case of a GPU) running on a RISC CPU like the AMD 29000.
As chip process technology improved, it eventually became possible to move drawing support and BitBLT onto the same board (and, eventually, into the same chip) as a regular frame buffer controller such as VGA; these cut-down "2D accelerators" weren't as flexible as microprocessor-based GPUs, but were much easier to make and sell. The Amiga was the first mass-market computer to include a blitter in its video hardware, and IBM's 8514 graphics system was one of the first PC video cards to implement 2D primitives in hardware.
By the early 1990s, the rise of Microsoft Windows sparked a surge of interest in high-speed, high-resolution 2D bitmap graphics (which had been the domain of Unix workstations and the Apple Macintosh before then.) For the PC market, the dominance of Windows meant PC graphics vendors could now focus development effort on a single programming interface, GDI.
In 1991, S3 Graphics introduced the first single-chip 2D accelerator, the S3 86C911 (which its designers named after the Porsche 911 as an indication of the speed increase it promised). The 86C911 spawned a host of imitators; by 1995, every major PC graphics chip maker had added 2D acceleration support to their chips. By this time, fixed-function Windows accelerators had surpassed expensive general-purpose graphics coprocessors in terms of Windows performance, and coprocessors faded away from the PC market.
With the advent of the DirectX version 8 API and similar functionality in OpenGL, GPUs added programmable shading to their capabilities. Each pixel could now be processed by a short program that could including additional image textures as inputs, and each geometry vertex could likewise be processed by a short program before it as projected onto the screen. By 2003, with the introduction of the NVIDIA GeForce FX (a.k.a. NV30), pixel and vertex shaders could implement looping, lengthy floating point math, and in general were quickly becoming as flexible as a CPU for image-array-style operations.
Today parallel GPUs have begun making computational inroads against the CPU, and a subfield of research, dubbed GPGPU for General Purpose Computing on GPU has found its way into fields as diverse as oil exploration, scientific image processing, and even stock options pricing determination.
Current GPU capabilities
Modern GPUs use most of their transistors to do calculations related to 3D computer graphics. They began by accelerating the memory intensive work of texture mapping and rendering polygons, and later added units to accelerate geometry calculations such as mapping vertex into different coordinate systems. Recent developments in GPUs include support for programmable shaders which can manipulate vertices and textures with many of the same operations supported by CPUs, oversampling and interpolation techniques to reduce aliasing, and very high-precision color formats. Because most of these computations involve matrix and vector operations, engineers and scientists have increasingly studied using GPUs for non-graphical calculations.
Although modern PC GPUs feature progammability in the form of 3D-shaders, this should not be confused with general software progammability. Instead, these units operate as SIMD or sometimes MIMD parallel processors. For rectangular arrays of colored pixels, this is an optimal design, and many algorithms -- but not all -- can be adapted to use a GPU for extremely high throughput.
In addition to the 3D hardware, today's GPUs include basic 2D acceleration and frame buffer capabilities (usually with a VGA compatibility mode). In addition, most GPUs made since 1995 support the YUV color space and hardware overlays (important for digital video playback), and many GPUs made since 2000 support MPEG primitives like motion compensation and iDCT.
The typical modern stand-alone GPU sits on a separate graphics card from the motherboard, connected to the CPU and main RAM through the AGP or PCI Express bus. It has access to RAM on the card which is usually faster but lower-capacity than the main RAM. On the other hand, many motherboards have a GPU integrated into the Northbridge that uses the main memory as a frame buffer. This will usually be a cheaper solution than an independent GPU but will have dramatically lower performance. Integrated motherboards may or may not have a slot for a stand-alone graphics card.
GPU manufacturers
- NVIDIA Corporation
- ATI Technologies
- 3Dlabs
- Matrox
- XGI Technology Inc.
- Intel
- 3dfx (now part of NVIDIA)