Ervaring met parallel computing van Cuda

16
Ervaring met parallel computing van Cuda Kasper Van Remoortere Nils Lamot 1 ste Bachelor Informatica

description

In deze presentatie gaan we wat dieper in op de Cuda-programmeeromgeving en de Tesla-architectuur van Nvidia.

Transcript of Ervaring met parallel computing van Cuda

Page 1: Ervaring met parallel computing van Cuda

Ervaring met parallel computing van CudaKasper Van RemoortereNils Lamot1ste Bachelor Informatica

Page 2: Ervaring met parallel computing van Cuda

Inhoudstafel

•Situatieschets•GeForce 8800•Programmeertaal: CUDA•Architectuur: Tesla•Applicatie voorbeeld•Conclusies

2

Kasper Van Remoortere - Nils Lamot

Page 3: Ervaring met parallel computing van Cuda

Situatieschets

•Kloksnelheid verhogen Parallel geschakelde processors

•Efficiënt gebruik?

•GPU’s al langer parallel real-time graphics

3

Kasper Van Remoortere - Nils Lamot

Page 4: Ervaring met parallel computing van Cuda

•Tesla architectuur▫Rechtstreeks programmeerbare GPU’s

•CUDA programmeermodel (= extensie van C)▫Makkelijk voor programmeurs▫Versnelt het rekenproces

4

Kasper Van Remoortere - Nils Lamot

GeForce 8800

Page 5: Ervaring met parallel computing van Cuda

Programmeertaal - CUDA

•Programmeeromgeving van Nvidia

•Doelen:▫Uitbreiding C/C++

uitdrukking parallellisme vereenvoudigen▫Code goed verdelen over threads

Vb.: Huidige GPU’s - 30 720 threads

5

Kasper Van Remoortere - Nils Lamot

Page 6: Ervaring met parallel computing van Cuda

Programmeertaal - onderdelen

6

Parallelle Threads

Rooster van blokken

Page 7: Ervaring met parallel computing van Cuda

7

Programmeertaal - geheugen

HS gedeeld geheugen

Globaal geheugen

Data-parallel > Task-parallel

Page 8: Ervaring met parallel computing van Cuda

Architectuur - Tesla

•Doel: programma’s in CUDA optimaal uitvoeren▫Aanmaak, planning, resource management

In hardware opgenomen Tijd creëren/verwijderen = verwaarloosbaar

▫Geoptimaliseerd in het verwerken van opeenvolgende, gelijkende patronen

8

Kasper Van Remoortere - Nils Lamot

Page 9: Ervaring met parallel computing van Cuda

9

Kasper Van Remoortere - Nils Lamot

Architectuur - structuurSM Multi-threaded Processor•Communicatie threads in blok•SIMT: blok thread =

warp van 32 threads

SP cores: toegang tot assortiment instructies

Multithreading: grote cache overbodig

Page 10: Ervaring met parallel computing van Cuda

10

Applicaties

•Moleculaire bewegingen

•Numerieke lineaire algebra

•Medische sector

•Beweging van vloeistoffen

•Seismologie

Page 11: Ervaring met parallel computing van Cuda

Applicatie – Numerieke lineaire algebraMatrixvermenigvuldiging•Berekeningen verdeelbaar in blokken

11

Hoe matrices vermenigvuldigen:A x B = Ca1,1 x b1,1 + a1,2 x b2,1 +… = c1,1

Kasper Van Remoortere - Nils Lamot

Page 12: Ervaring met parallel computing van Cuda

12

Applicatie – Numerieke lineaire algebraAlgoritme Volkov en Demmel vs. MKL

GeForce 8800 GTX - V&D Core2 Quad - MKL0

50

100

150

200

250

Rekenkracht in Gflops

Kasper Van Remoortere - Nils Lamot

Page 13: Ervaring met parallel computing van Cuda

Applicatie – Numerieke lineaire algebraVerklaring snelheid algoritme V&D

•Data-blocks opgeslagen in GPU-registers register = groot tijdelijke opslag berekeningen

•Blokken elementen /thread 1/thread

•Software prefetching wachttijd geheugen

13

Kasper Van Remoortere - Nils Lamot

Page 14: Ervaring met parallel computing van Cuda

Applicatie – Numerieke lineaire algebraMatrix factorisatie

•Matrix naar eenvoudigste vorm omzetten

•Oplossen stelsels

•Factorisatiemethodes: ▫LU ▫Cholesky ▫QR factorisatie

14

Kasper Van Remoortere - Nils Lamot

Page 15: Ervaring met parallel computing van Cuda

15

Kasper Van Remoortere - Nils Lamot

Page 16: Ervaring met parallel computing van Cuda

Conclusies•Cuda bruikbaar voor data-parallel programmeren

•Cuda voor groot publiek beschikbaar

16

Kasper Van Remoortere - Nils Lamot