GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 –...
-
Upload
osborn-harris -
Category
Documents
-
view
222 -
download
0
Transcript of GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 –...
![Page 1: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/1.jpg)
GPUs – Graphics Processing Units
Applications in Graphics Processing and Beyond
COSC 3P93 – Parallel Computing Matt Peskett
![Page 2: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/2.jpg)
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
![Page 3: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/3.jpg)
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
• Whirlwind Flight Simulator (1951)• One of the first ventures into digital computing (previously analog)
![Page 4: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/4.jpg)
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
Lincoln Laboratory at MIT Whirlwind flight simulator
![Page 5: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/5.jpg)
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
![Page 6: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/6.jpg)
History of the GPU
COSC 3P93 – Parallel Computing Matt Peskett
Atari 2600 console Basketball (1978)
![Page 7: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/7.jpg)
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
![Page 8: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/8.jpg)
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
![Page 9: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/9.jpg)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• Specialized for SIMD operations
![Page 10: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/10.jpg)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• A visual distinction:
https://www.youtube.com/watch?v=-P28LKWTzrI
![Page 11: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/11.jpg)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• CPU processing core (left) vs. GPU processing core (right)
![Page 12: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/12.jpg)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• GPUs are optimized for floating point operations
![Page 13: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/13.jpg)
What makes a GPU a GPU?
COSC 3P93 – Parallel Computing Matt Peskett
• Minimal control infrastructure to enhance throughput
![Page 14: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/14.jpg)
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
![Page 15: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/15.jpg)
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
![Page 16: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/16.jpg)
GPU Memory vs. CPU Memory
COSC 3P93 – Parallel Computing Matt Peskett
• DDR – Double Data Rate
• GDDR – Graphics Double Data Rate
![Page 17: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/17.jpg)
GPU Memory vs. CPU Memory
COSC 3P93 – Parallel Computing Matt Peskett
• Memory architectures (UMA, NUMA, and hUMA)
![Page 18: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/18.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• The graphics pipeline
![Page 19: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/19.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 1) Vector shader
![Page 20: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/20.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 2) Projection
![Page 21: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/21.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 3) Clipping
![Page 22: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/22.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 4) Rasterization
![Page 23: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/23.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• 5) Pixel shader
![Page 24: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/24.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Texture mapping
![Page 25: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/25.jpg)
Graphical Applications of GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Coherence
![Page 26: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/26.jpg)
General Purpose GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• Origins
![Page 27: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/27.jpg)
General Purpose GPUs
COSC 3P93 – Parallel Computing Matt Peskett
• GPGPU models: Brook+, OpenCL & CUDA
![Page 28: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/28.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 29: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/29.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 30: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/30.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 31: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/31.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 32: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/32.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 33: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/33.jpg)
CUDA Example
COSC 3P93 – Parallel Computing Matt Peskett
![Page 34: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett.](https://reader036.fdocuments.net/reader036/viewer/2022062410/5697c01f1a28abf838cd1913/html5/thumbnails/34.jpg)
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/