A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing (either on a video card or embedded on motherboards, mobile phones, personal computers, workstations, and game consoles). After their initial design, GPUs were...
A graphics processing unit (GPU) is a specialized electronic circuit initially designed to accelerate computer graphics and image processing (either on a video card or embedded on motherboards, mobile phones, personal computers, workstations, and game consoles). After their initial design, GPUs were found to be useful for non-graphic calculations involving embarrassingly parallel problems due to their parallel structure. Other non-graphical uses include the training of neural networks and cryptocurrency mining. Arcade system boards have used specialized graphics circuits since the 1970s. In early video game hardware, RAM for frame buffers was expensive, so video chips composited data together as the display was being scanned out on the monitor.[1]
A specialized barrel shifter circuit helped the CPU animate the framebuffer graphics for various 1970s arcade video games from Midway and Taito, such as Gun Fight (1975), Sea Wolf (1976), and Space Invaders (1978).[2] The Namco Galaxian arcade system in 1979 used specialized graphics hardware that supported RGB color, multi-colored sprites, and tilemap backgrounds.[3] The Galaxian hardware was widely used during the golden age of arcade video games, by game companies such as Namco, Centuri, Gremlin, Irem, Konami, Midway, Nichibutsu, Sega, and Taito.[4]
Atari ANTIC microprocessor on an Atari 130XE motherboard
The Atari 2600 in 1977 used a video shifter called the Television Interface Adaptor.[5] Atari 8-bit computers (1979) had ANTIC, a video processor which interpreted instructions describing a "display list"—the way the scan lines map to specific bitmapped or character modes and where the memory is stored (so there did not need to be a contiguous frame buffer).[clarification needed][6] 6502 machine code subroutines could be triggered on scan lines by setting a bit on a display list instruction.[clarification needed][7] ANTIC also supported smooth vertical and horizontal scrolling independent of the CPU. The NEC μPD7220 was the first implementation of a personal computer graphics display processor as a single large-scale integration (LSI) integrated circuit chip. This enabled the design of low-cost, high-performance video graphics cards such as those from Number Nine Visual Technology. It became the best-known GPU until the mid-1980s.[9] It was the first fully integrated VLSI (very large-scale integration) metal–oxide–semiconductor (NMOS) graphics display processor for PCs, supported up to 1024×1024 resolution, and laid the foundations for the emerging PC graphics market. It was used in a number of graphics cards and was licensed for clones such as the Intel 82720, the first of Intel's graphics processing units.[10] The Williams Electronics arcade games Robotron 2084, Joust, Sinistar, and Bubbles, all released in 1982, contain custom blitter chips for operating on 16-color bitmaps.[11][12]
In 1984, Hitachi released ARTC HD63484, the first major CMOS graphics processor for personal computers. The ART
Size: 1.27 MB
Language: en
Added: Jul 12, 2024
Slides: 16 pages
Slide Content
Introduction
What is GPU?
•It is a processor optimized for 2D/3D graphics, video,
visual computing, and display.
•It is highly parallel, highly multithreaded multiprocessor
optimized for visual computing.
•It provide real-time visual interaction with computed
objects via graphics images, and video.
•It serves as both a programmable graphics processor
and a scalable parallel computing platform.
•Heterogeneous Systems: combine a GPU with a CPU
GPU Evolution
•1980’s –No GPU. PC used VGA controller
•1990’s –Add more function into VGA controller
•1997 –3D acceleration functions:
Hardware for triangle setup and rasterization
Texture mapping
Shading
•2000 –A single chip graphics processor ( beginning of GPU
term)
•2005 –Massively parallel programmable processors
•2007 –CUDA (Compute Unified Device Architecture)
GPU Graphic Trends
•OpenGL –an open standard for 3D programming
•DirectX –a series of Microsoft multimedia programming
interfaces
•New GPU are being developed every 12 to 18 months
•New idea of visual computing:
combines graphics processing and parallel computing
•Heterogeneous System –CPU + GPU
•GPU evolves into scalable parallel processor
•GPU Computing: GPGPU and CUDA
•GPU unifies graphics and computing
•GPU visual computing application: OpenGL, and DirectX
GPU System Architectures
•CPU-GPU system architecture
–The Historical PC
–contemporary PC with Intel and AMD CPUs
•Graphics Logical Pipeline
•Basic Unified GPU Architecture
–Processor Array
Compare CPU and GPU
Nemo-3D
•Written by the CalTech Jet Propulsion Laboratory
•NEMO-3D simulates quantum phenomena.
•These models require a lot of matrix operations on very large
matrices.
•We are modifying the matrix operation functions so they use
CUDA instead of that slow CPU.
Nemo-3D
Simulation Visualization
NEMO-3D VolQD
Computation
Module
CUDA
kernel
Testing -Matrices
•Test the multiplication of two matrices.
•Creates two matrices with random floating point values.
•We tested with matrices of various dimensions…
Results:
Dim\Time CUDA CPU
64x64 0.417465 ms 18.0876 ms
128x128 0.41691 ms 18.3007 ms
256x256 2.146367 ms 145.6302 ms
512x512 8.093004 ms 1494.7275 ms
768x768 25.97624 ms 4866.3246 ms
1024x1024 52.42811 ms 66097.1688 ms
2048x2048 407.648 msDidn’t finish
4096x4096 3.1 secondsDidn’t finish
In visible terms:CPU versus GPU
y = 10.682e
0.0085x
R
2
= 0.9813
y = 0.3526e
0.0053x
R
2
= 0.9575
0
10000
20000
30000
40000
50000
60000
70000
0 200 400 600 800 1000 1200
Matrix side dimension
Execution time (ms)
CUDA CPU
CPU regression CUDA regression
Test results:Function Execute Time
y = 0.0228x - 0.5522
R
2
= 1
y = 0.0015x - 0.3449
R
2
= 0.9996
0
50
100
150
200
250
300
350
400
450
500
0 5000 10000 15000 20000 25000
Number of Atoms
Milliseconds
CUDA
CPU
CPU trendline
CUDA trendline