Massive Parallel Computing Programming on GPU

16
Massive Parallel Computing Programming on GPU Konrad Szałkowski

Transcript of Massive Parallel Computing Programming on GPU

Massive Parallel ComputingProgramming on GPU

Konrad Szałkowski

Agenda

• History

• Why do we use GPUs?

• Presentation

• Why are them so fast?

• How to use it?– GPU APIs

• Advantages / disadvantages

• Where to use it?

• Who uses it?

History

• Graphics involves a lot of single precision floating point operations.

• Modern graphics is too much for CPU’s.

• Additional cooprocessing unit required – GPU.

• Additional demands for GPU – it became moreuniversal.

Producers

• nVidia – GeForce, Quadro, Tesla series

• AMD/ATI – Radeon series

• S3 – Chrome series

• Matrox

• VIA

Why do we use GPUs?

Why do we use GPUs?

0

1000

2000

3000

4000

5000

6000

7000

8000

Current best CPU - Intel Core i7-990X Extreme

Edition

Current best GeForce – GTX

580

Current best Radeon - HD

6990

2000’s fastest computer on Earth – ASCI

White

107,55

1581

5100

7304

Present time

GFLOPS

Presentation

• nVidia’s Computing SDK Examples

– Particle physics simulation

– N-body simulation

• Author’s example

– CUDA DX10 Raytracer

Why are them so fast?

• Shaders – simple processing units used for graphics – now more universal FPUs.

• GTX 580 – 512 shaders.

• Radeon 6990 – 1536 shaders.

• So – parallel computing.

• Each shader has its own small cache memory.

• They share a lot of diffrent commonmemories.

How do we use it?

• Producers give out APIs

• Most are low level

• Multiple wrappers - .NET, Java…

CUDA

• nVidia’s First GPU API – since 2006, GeForce8800

• Example for others

• C based coding

• Extremely dangerous – pointers withoutmemory control

OpenCL

• Apple’s development – 2008

• C like

• Implemented by both AMD and nVidia (CUDA programs still faster)

DirectCompute

• Microsoft’s view of GPU computing on DirectX10 and 11 devices

• C and C++ like (programming like in DirectX)

Summarize

Advantages

• Power (GFLOPS)

• Parallel programmingtechniques can show its fullpotential

• Cheap processing units

Disadvantages

• Power (Watts)

• Parallel programmingtechniques

• Complex programming(low level code)

Where to use it?

• Complex, massive floating point computations

• Simulations involving multiple factors

• Parallel algorithms

Who uses it?

• Universities (simulations)

• Industry (stock exchange)

• Anywhere where parallel algorithms can help.