Eric Scheler & Joshua Shear Graphics Processing Unit (GPU) Architecture and Applications
Agenda Origin of GPUs First GPU Models and capabilities GPUs then and now (with architecture breakdown) Graphics and Compute APIs Applications
Origin of GPUs Tape was simple to output for a computer Once CRT monitors were attached to computers displaying to them was more complex GPUs allowed for lots of parallel computation to output to the monitor in a timely manner
The First GPUs Television Interface Adaptors (TIA) Video & sound 40 x 192 Atari 2600 Companies Motorola, IBM, Yamaha, TI, Intel isbx 275 (right) 256 x 256 8 color Interfaced via eight-bit isbx bus Supported: panning, scrolling, drawing lines, arcs, circles, rectangles, character/symbol painting and area fill Intel s isbx 275 Video Graphics Controller Board
The First GPUs - ATI Wonder Series ATI Graphics Solution (1986) 64KB DRAM CGA & MDA ATI VGA Wonder XL24 (1992) 512KB/1MB DRAM MDA, CGA, EGA, VGA, SVGA High end video card (last of Wonder series) https://www.techpowerup.com/gpudb/3176/graphics-solution https://www.techpowerup.com/gpudb/2039/vga-wonder-xl24
Architecture (AMD)
Architecture (NVidia)
Memory Bandwidth
Performance Over Time
Graphics Pipeline Vertex Processing Lighting per vertex Primitive Assembly Lines, triangles, points Rasterization Pixel positions Generate colored fragments Update framebuffer
Introduction of APIs Used by game engines for easy development on a wide variety of hardware Eventually, the use of GPUs for data computation was discovered and the APIs added computation calls
OpenGL OpenGL was the first, targeted at all major GPUs Started strictly as a graphics API in the 1990s Added compute support in the 2000s Usable on all GPUs (3Dfx, ATI, AMD, NVidia, Intel)
CUDA CUDA was developed by NVidia in the 2000s for compute uses Exclusive to NVidia GPUs Can be ported to work on Intel integrated graphics Has no graphical support Used by most companies that do GPU acceleration because of its ease of use for compute
Vulkan Vulkan is the new successor to OpenGL providing finer control over the hardware Difficult to use but offers much better performance over OpenGL Usable on all modern GPUs (Intel, AMD, NVidia)
Applications - MapReduce MapReduce, developed at Google, allows for large numbers of computers to work on massively parallel tasks When GPU accelerated, can perform far faster than with CPUs alone (+87% faster)
Deep Neural Networks (DNNs) DNNs require lots of independent neurons firing to generate an output The firing can be partially parallelized leading to much faster run times on GPUs Some GPUs such as the Tesla GV100 and the Titan V are including Tensor cores specifically optimized for DNNs Google Brain Project learned to recognize cats and people (deep learning) 2,000 CPUs became 12 NVIDIA GPUs
Monte Carlo
CryptoCurrency Mining
References https://cg.informatik.uni-freiburg.de/course_notes/graphics_01_pipeline.pdf -Graphics Pipeline pics (2) Old GPU Architecture Diagrams from AnandTech New GPU Architecture Diagrams from GamersNexus VRAM and RAM charts from TweakTown API Images from Khronos Group and NVidia Application images from various sources