2. Background
• Graphics Processing Unit (GPUs) are special
processors were used to accelerate computer graphics.
• GPUs were traditional fixed-function graphics pipeline.
• GPUs are used in embedded systems, mobile phones,
personal computers, workstations, and game consoles.
• Today, GPUs are highly parallel many-cores processors
which enable general-purpose computation on graphics
processing units (GPGPU).
• This shift is also driven by the need for high resolution
3D display, high speed complex computation, advances
of manufacturing technology, etc.
3. GPU VS CPU
•CPU is multicores, GPU is many (hundreds) cores
•CPU optimized for low latency, GPU optimized for high
throughput
•CPU for sequential program, GPU for parallel program
•CPU is MIMD oriented, while GPU is SIMD oriented
4. GPGPU
• Todays, GPGPU/GPU is widely used in most modern
desktop/computer.
• NVIDIA and AMD (ATI) is the main player in this
business.
• Must support high-level language programming.
• Used in broad range of applications such as oil & gas,
finance, medical, biophysics, numeric, etc.
• TSUBAME 2.0 (the 5th fastest supercomputer) uses GPU
Fermi architecture (has peak 2,228 Tflops)
5. Traditional GPU
• Vertex : a special kind of point that
describes the corners or
intersections of geometric shapes
• Primitive: the basic/fundamental
shape (triangle) which is derived
from the more complex geometric
shapes.
• Fragment: the data necessary to
generate a single pixel's worth of a
drawing primitive in the frame
buffer.
• Pixel: a single point in a raster
image or the smallest addressable
screen element in a device display
Source: Fatahalian, K. & Houston, M. (2008)
6. Process in GPU
• Lighting: compute its color based on the lights in the
scene.
• Camera simulation: map the colored 3D triangle onto
virtual camera’s film plane. The output is a stream of
triangles in screen coordinates.
• Rasterization: determine each visible screen space
triangle that overlaps some pixels on the display. Thus,
each pixel can be treated independently.
• Texturing: add more realism to each colored pixel.
• Hidden Surface: Sort all triangles from back to front for
each view.
7. Modern GPU
• Shaders: fixed function units for transforming vertices & texturing
pixels.
• Unified shader architecture provides one large grid of data parallel
floating points.
• It gives better utilization compared to the separate one.