Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz.

Ähnliche Präsentationen


Präsentation zum Thema: "Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz."—  Präsentation transkript:

1 Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz

2 Christian Schwarz2 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

3 Christian Schwarz3 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

4 Christian Schwarz4 Grundlagen der Parallelisierung Klassifizierung nach Flynn: ● Eine Architektur bearbeitet zu einem Zeitpunkt eine oder mehrere Instruktionen. ● Eine Architektur bearbeitet zu einem Zeitpunkt einen oder mehrere Datenwerte.

5 Christian Schwarz5 Klassifizierung nach Flynn Dies entspricht der Einteilung in die vier Klassen: SISD, SIMD, MISD und MIMD

6 Christian Schwarz6 SISD Architektur for(int i = 0; i < 100 * 4; i++) result[i] = source0[i] + source1[i];

7 Christian Schwarz7 SIMD Architektur for(int el = 0; el < 100; el++) // für jeden Vektor vector_sum(result[el], source0[el], source1[el]);

8 Christian Schwarz8 MISD Architektur

9 Christian Schwarz9 MIMD Architektur

10 Christian Schwarz10 MIMD und der Speicher

11 Christian Schwarz11 Vernetzung ● Quadrics mit Qs Net (900MB/s 1,3µ) ● Infiniband (700MB/s 2µ) ● Scalable Coherent Interface (326MB/s 1.46µ) ● Myrinet (247MB/s 2,6-7µ) ● Gigabit Ethernet (125 MB/s µ)

12 Christian Schwarz12 Allgemeines Problem

13 Christian Schwarz13 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

14 Christian Schwarz14 Was ist Stream Processing

15 Christian Schwarz15 Was ist ein Stream Geordnete Menge von Daten mit folgenden Eigenschaften: ● gleicher Datentyp für alle Elemente im Stream ● unbegrenzte Länge (meist sehr lang) erlaubte Operationen: – kopieren – „Substreams“ aus Stream bilden – Elemente mit Hilfe eines weiteren Index-Streams indizieren – Kernel anwenden

16 Christian Schwarz16 Was ist ein Kernel Funktion mit folgenden Eigenschaften: ● Eingabe und Ausgabe sind Streams ● wird immer auf kompletten Stream angewendet ● Ausgabe hängt nur von der Eingabe ab ● Berechnung eines Elementes im Ausgabestream unabhängig von den Berechnungen der anderen Elemente

17 Christian Schwarz17 Stream Processing Beispiel ● Ableitung aus SIMD/MIMD streamElements 100 streamElementFormat 4 numbers elementKernel result = kernel(source0, source1)

18 Christian Schwarz18 Pipelining

19 Christian Schwarz19 Kommunikation im SP ● Off-Chip Kommunikation ● Kommunikation zwischen dem Prozessor und einem externen Partner (z.B. RAM-Speicher) ● On-Chip Kommunikation ● Innerhalb eines Prozessors

20 Christian Schwarz20 Vorteile von Stream Processing ● Lesen des kompletten Streams von externem Speicher ● Amortisierung der Kosten für die Initialisierung ● Kommunikation zwischen Kernels kann innerhalb des Prozessors erfolgen ● aggressives Caching ermöglicht Weiterrechnen trotz fehlender Daten

21 Christian Schwarz21 Vorteile von Stream Processing Parallelität ● mehrere Kernel parallel ausführen ● „task level parallelism“ ● Elemente innerhalb der Kernel parallel berechnen ● "data level parallelism“ ● Befehle für das Berechnen eines Elements gleichzeitig ausführen ● „instruction level parallelism“

22 Christian Schwarz22 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

23 Christian Schwarz23 Entwicklung - Top 500

24 Christian Schwarz24 Top 500 Platz 29 System Name: TSUBAME Grid Cluster with CompView TSUBASA Computer: Sun Fire x4600/x6250, Opteron 2.4/2.6 GHz, Xeon E GHz, ClearSpeed CSX600, nVidia GT200; Voltaire Infiniband Installation Year 2008 Operating System: SuSE Linux Enterprise Server 9 Memory: GB Interconnect: Infiniband Cores Rmax(GFlops) Rpeak(GFlops) Nmax

25 Christian Schwarz25 Grafikkarten Blade – Tesla S1070

26 Christian Schwarz26 Warum nicht öfter HPC mit FPGA Programmiermodell Problem wurde bislang nicht zur zufriedenheit von HPC Programmierern gelöst ● HPC Programmierer wollen nicht in einer HDL ihre Programme schreiben – Mehr als ein Werkzeugproblem – HDL ist ein anderer weg zu denken und zu designen ● Vordefinierte Libraries lösen das Problem nicht – Anwender wollen ihre eigene “geheime Soße”

27 Christian Schwarz27 Begriffserklärung GPGPU GPGPU = General Purpose Computation On Graphics Processing Units Die GPU wird Zweckentfremdet und dient somit nicht nur der Berechnung grafischer Probleme, sondern auch zur Lösung allgemeiner rechenintensive Vorgänge.

28 Christian Schwarz28 Entwicklung GPGPU ● programmierbaren Grafikpipeline (2000) ● Kurs auf der SIGGRAPH (2004) ● BrookGPU (2004) ● erstes Referenzwerk GPU GEMS 2 (2005) ● CUDA (2007) ● ATI Stream (Dezember 2008)

29 Christian Schwarz29 Arten von Streams ● Vertex-Streams ● Frame-Buffer-Streams ● Texture-Streams ● Fragment-Streams

30 Christian Schwarz30 Grafikpipeline einer GPU

31 Christian Schwarz31 Die GPU im PC ● GeForce GTX 285 ● January 15, 2009 ● Bandwidth 159 GiB/s

32 Christian Schwarz32 Warum GPGPU ● Aus Gründen der Performance ● CPU hat 2 Prozessoren (dual core) + HTT wenig Parallelität => serielles Modell ● GeForce 200 Serie hat > 200 Prozessoren => hochgradig parallel ● Zur Lastverteilung ● GPU übernimmt eigene Aufgaben und muss nicht mehr auf die CPU warten.

33 Christian Schwarz33 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

34 Christian Schwarz34 GPU vs CPU

35 Christian Schwarz35 Kostenvergleich

36 Christian Schwarz36 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

37 Christian Schwarz37 Einsatzgebiete ● Partikel-Systeme und Fluid-Simulationen deren gewöhnlichen und partiellen differentiellen Gleichungen können auf der GPU gelöst werden ● Lineare Algebra Systeme die z.B. in numerischen Simulationen eingesetzt werden können ● schnellere Joins bei Datenbank Querys

38 Christian Schwarz38 Beispielanwendungen ● Wettervorhersagen, Klimaforschung ● Medizinische Untersuchungen ● geophysische Analysen (seismische Untersuchungen zur Ölfindung) ● Molekularforschung (Darstellung biomolekularer Prozesse)

39 Christian Schwarz39 Beispielanwendungen

40 Christian Schwarz40 Mögliche Einsatzgebiete

41 Christian Schwarz41 Fazit ● Leistungssteigerung ● theoretisch vs real ● Treiberabhängig ● kurze entwicklungszyklen

42 Christian Schwarz42 Überblick Vortragsinhalt ● Grundlagen Parallelisierungsansätze ● Stream-Processing ● Entwicklungen ● CPU vs. GPU ● Einsatzgebiete ● Beispielanwendungen ● Ausblick

43 Christian Schwarz43 Ausblick ● AMD Fusion und Intel Larrabee ● GPU näher an CPU ● Hoch paralleler Coprozessor

44 Christian Schwarz44 Noch Fragen?

45 Christian Schwarz45 Quellen ● Nvidia Cuda Webseite ● NVIDIA CUDA - Programming Guide V 1.1Programming Guide V 1.1 ● Flynnsche Klassifikation ● GPU Gems 2 ● Stream Processing ● ● Top 500 ● ● TL CC-1


Herunterladen ppt "Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz."

Ähnliche Präsentationen


Google-Anzeigen