Date post: | 29-Jan-2016 |
Category: |
Documents |
Upload: | osborn-harris |
View: | 218 times |
Download: | 0 times |
GPUs – Graphics Processing Units
Applications in Graphics Processing and Beyond
COSC 3P93 – Parallel Computing Matt Peskett
What We’ll Cover Today
COSC 3P93 – Parallel Computing Matt Peskett
• A Brief History of the GPU
• GPU – Definition and difference from CPU
• Memory – DDR vs. GDDR
• Uses of GPUs in graphics processing
• Uses of GPUs outside of graphics processing
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
• Whirlwind Flight Simulator (1951)• One of the first ventures into digital computing (previously analog)
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
Lincoln Laboratory at MIT Whirlwind flight simulator
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
• Whirlwind Flight Simulator (1951)• One of the first ventures into digital computing (previously analog)
• Atari 2600 (1977)• Major enhancement in consumer-oriented graphics hardware
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
Atari 2600 console Basketball (1978)
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
• Whirlwind Flight Simulator (1951)• One of the first ventures into digital computing (previously analog)
• Atari 2600 (1977)• Major enhancement in consumer-oriented graphics hardware
• IBM Monochrome Display Adapter (1981)• Produced 720 x 350 resolution
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
Character set of the MDA
IBM 5151 with green monochrome text from MDA
MDA Card
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• Specialized for SIMD operations
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• A visual distinction:
https://www.youtube.com/watch?v=-P28LKWTzrI
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• CPU processing core (left) vs. GPU processing core (right)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• GPUs are optimized for floating point operations
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• Minimal control infrastructure to enhance throughput
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• CPUs can handle a lot of what a GPU does – but not nearly as well
Why have both a GPU and CPU?
COSC 3P93 – Parallel Computing Matt Peskett
• Executing serial code with a GPU is slower than on a CPU
• Operating systems and user applications have a large portion of serial code
• Rewriting applications to utilize GPU is often not worth the investment in time
• Too much variety in operations; some are best handled by the CPU and others by the GPU
GPU Memory vs. CPU Memory
COSC 3P93 – Parallel Computing Matt Peskett
• DDR – Double Data Rate
• GDDR – Graphics Double Data Rate
GPU Memory vs. CPU Memory
COSC 3P93 – Parallel Computing Matt Peskett
• Memory architectures (UMA, NUMA, and hUMA)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• The graphics pipeline
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 1) Vector shader
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 2) Projection
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 3) Clipping
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 4) Rasterization
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 5) Pixel shader
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Texture mapping
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Coherence
General Purpose GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Origins
General Purpose GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• GPGPU models: Brook+, OpenCL & CUDA
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
Additional Resources
COSC 3P93 – Parallel Computing Matt Peskett
• Intro to Parallel Programming – Using CUDA to Harness the Power of GPUs• https://www.udacity.com/course/intro-to-parallel-programming--cs344
• GPU Programming for the Rest of Us• http://www.clustermonkey.net/Applications/gpu-programming-for-the-rest-of-us.html
• OpenGL Tutorials (Basic to advanced)• http://www.opengl-tutorial.org/
• Parallel Computing for Graphics: Beyond Programmable Shading (Course delivered at SIGGRAPH Asia 2008, very interesting and still relevant)• http://sa08.idav.ucdavis.edu/