Introduction to GPGPU Ahmadi Nur / 11M51169  Rural Telecommunications
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.
GPU VS CPU•CPU is multicores, GPU is many (hundreds) cores•CPU optimized for low latency, GPU optimized for highthroughput•CPU for sequential program, GPU for parallel program•CPU is MIMD oriented, while GPU is SIMD oriented
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)
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 pixels 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)
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.
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.