Graphics Processing Unit GPU Graphics Processing Unit
Scene Transformations Graphics Pipeline Scene Transformations Lighting & Shading Viewing Transformations Rasterization
Early Graphics Originally, no specialized graphics hardware All processing in software on CPU, Results transmitted to frame buffer first, external frame buffers later, internal frame buffers. CPU Frame buffer Display
GPU fixed function graphics pipeline Geometry data Transform & lighting Culling, perspective divide, viewport mapping Rasterization Texturing Alpha test, depth test, stencil test Frame buffer blending GPU fixed function graphics pipeline
Fixed function pipeline Pipeline fixed in hardware Each stage does fixed task Tasks are parameterized Inflexible
Programmable Pipeline GPU is programmable Shader programs Vertex shaders & Fragment (or pixel) shaders
Programmable GPU graphics pipeline Geometry data Vertex Shader Culling, perspective divide, viewport mapping Rasterization Fragment Shader Alpha test, depth test, stencil test Frame buffer blending
Shader Language Low level (like assembler) but high-level language compilers 4 component floating point data type SIMD Direct3D: Microsoft NV_Vertex_Program: OpenGL extension
Programmable Pipeline 60 frames per second hardware pipeline of specialized stage general-purpose parallel computational engine
Power GPUs have moved away from the traditional fixed-function 3D graphics pipeline toward a flexible general-purpose computational engine. the raw computational power of a GPU dwarfs that of the most powerful CPU, and the gap is steadily widening. GPUs have moved away from the traditional fixed-function 3D graphics pipeline toward a flexible general-purpose computational engine
Pipeline input Graphics systems: convert to triangles Pass vertices to GPU processor GPU: assemble into triangles
Rasterization
Model transformations
Lighting
Camera simulation
Texturing
hidden surfaces
Graphics pipeline evolved
Pipeline evolved
Evolved pipeline
Unified Shaders
GPGPU Single GeForce 8800 chip achieves a sustained 330 billion floating- point operations per second (Gflops) on simple benchmarks