Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz.

Slides:



Advertisements
Ähnliche Präsentationen
Message Passing Interface (MPI)
Advertisements

Bauteile des PC´c Werden vorgestellt: PC-Gehäuse Prozessor Tastatur
Leistung.
< CUDA implementation>
KA – Rechnerarchitektur I ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Constantin Timm Informatik 12 TU Dortmund
PC-Cluster.
Terra Workstation. Terra Workstation Unterschied Workstation PC Lösungen an Fallbeispielen einer fiktiven Firma Fallbeispiele aus den Abteilungen.
Erweiterung des Opterox- Clusters Fachbereich Physik & ZIM Universität Duisburg-Essen.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Agenda Die Hardwearkomponenten und ihre Funktionen - Mikroprozessor
Zentraleinheit CPU, Motherbord, RAM
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
OpenMP Präsentation im Rahmen des Seminars
Studiengang Informatik FHDW
Hamburg November Computing in der CMS Gruppe der Uni Hamburg Zwei Bereiche: grid Computing Workgroup Server für Analyse.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
Matrix Multiplication on CUDA
< Best practices >
Rechneraufbau & Rechnerstrukturen, Folie 13.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 13.
Rechneraufbau & Rechnerstrukturen, Folie 0.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Übersicht.
Leitfaden Motivation Was ist CUDA ? NVIDIA Grafikkarte Programmierung
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Aufbau und Funktionsweise
F.Ladstätter und R.Elsässer VP Wissenschaftliches Arbeiten und Präsentation 13. Dezember 2001.
Präsentation von Alexander Schönfeld
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Clustering mittels Grafikprozessor
Grafikkarten.
Aurora mALX © Christian Barby FIN
Das Betriebssystem.
Algorithm Engineering „GPU Algorithmen“
Ein Vortrag von Simon Bayer
Übersicht: Hardware Zentraleinheit EVA-Prinzip
Multiprozessoren: Herausforderung für die Software
Rechnersysteme: Halbzeit Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Daten und Information.
Eine Übersicht von Margarete Streitwieser
Verarbeitung und Computerinneres
Central Processing Unit von David Kleuker und Thomas Auner
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Gaming-Computer-Aufbau
Central Processing Unit (Zentraleinheit)
Clustering Clustering mit openMosix von Christian Wiese Stefan Krause.
Software Engineering SS04 Paralleles Programmieren FH Aachen, Prof. Dr.-Ing. Michael Trautwein Andrej Kühnal, Perez-Otuno Rodrigo.
2.3 Implementierung von Prozessen
Proseminar – Computer Graphics Nikolaos Tsanakas computer graphics & visualization OpenGL Shading Language.
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
Clusterbeschaffung von Sven Gamradt Gliederung  Was ist ein Cluster?  Warum und für wen wurde das Cluster gekauft?  Hardwarespezifikationen.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Prozessoren (CPU) Ahmet Aktas, HWI I.
Mario´s kleines Hardwarelexikon Vom Arbeitsspeicher bis zur Soundkarte.
Dr. Klaus Ruhlig Technology & Product Consulting Sun Microsystems, München Skalierbare Rechnerarchitekturen für ein DWH: Eine vergleichende Analyse.
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
A. Steininger TU Vienna 1 Multicore eleganter Work-Around um die Design-Crisis Problemverschiebung in die SW (= auf höhere Ebene) ABER: hohe Parallelität.
Parallele Lösung von Differential-Algebraischen Gleichungssystemen und Sensitivitätssystemen Seminarvortrag Daniel Abele
Computerhardware Paul Pumsenberger. Allgemein ● Materielle Teil des Computers ●,angreifbar' ● Geht (fast) nie kaputt ● Gegensatz: Software – Oft fehlerhaft,
Lineare Algebra Softwareprojekt: Anwendung von Algorithmen Sebastian Kürten, Philipp Borgers SoSe 2010.
Blowfish mit CUDA Dominik Oepen Inhalt ● Blowfish Grundlagen ● Implementierungsdetails ● Performance ● Fazit.
Dennis Kempin, Peter Schumacher, Gernot Ziegler, Tobias Rick
Neuronale Netze und Parallelrechner
Die Komponenten Von einem PC.
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

Paralleleles Rechnen auf Grafikkarten Einführung Christian Schwarz

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

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

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.

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

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

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

Christian Schwarz8 MISD Architektur

Christian Schwarz9 MIMD Architektur

Christian Schwarz10 MIMD und der Speicher

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 µ)

Christian Schwarz12 Allgemeines Problem

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

Christian Schwarz14 Was ist Stream Processing

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

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

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

Christian Schwarz18 Pipelining

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

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

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“

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

Christian Schwarz23 Entwicklung - Top 500

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

Christian Schwarz25 Grafikkarten Blade – Tesla S1070

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”

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.

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)

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

Christian Schwarz30 Grafikpipeline einer GPU

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

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.

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

Christian Schwarz34 GPU vs CPU

Christian Schwarz35 Kostenvergleich

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

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

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

Christian Schwarz39 Beispielanwendungen

Christian Schwarz40 Mögliche Einsatzgebiete

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

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

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

Christian Schwarz44 Noch Fragen?

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 ● ● TL CC-1