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

Post on 29-Jan-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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/

top related