massive parallel computing programming on gpu

16
Massive Parallel Computing Programming on GPU Konrad Szałkowski

Upload: others

Post on 17-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

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.