gpus – graphics processing units applications in graphics processing and beyond cosc 3p93 –...

34
GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond C 3P93 – Parallel Computing Matt Peskett

Upload: osborn-harris

Post on 29-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPUs – Graphics Processing Units Applications in Graphics Processing and Beyond COSC 3P93 – Parallel ComputingMatt Peskett

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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/