General Purpose Computation on GPUs

Ähnliche Dokumente
RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Grafikkarten-Architektur

Compute Unified Device Architecture CUDA

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg

Thema: Hardware-Shader

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm Organiosatorisches. Tutorial CUDA. Ralf Seidler

Programmierbeispiele und Implementierung. Name: Michel Steuwer

Masterpraktikum Scientific Computing

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Multicore-Architekturen

GPGPUs am Jülich Supercomputing Centre

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

GPGPU mit NVIDIA CUDA

Software Engineering für moderne parallele Plattformen 9. GPGPUs: Grafikkarten als Parallelrechner

Seminar GPU-Programmierung/Parallelverarbeitung

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Seminar: Grafikprogrammierung

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware


MULTICORE- UND GPGPU- ARCHITEKTUREN

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Eine kurze Geschichte der Grafikkarten

Architektur moderner GPUs. W. Sczygiol - M. Lötsch

MITK-OpenCL: Eine Erweiterung für das Medical Imaging Interaction Toolkit

Extrablatt IT. MADE IN GERMANY.

Eine Einführung in die Architektur moderner Graphikprozessoren

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Fachgebiet Programmiermethodik Prof. Dr. Claudia Leopold. Seminar Programmierung von Grafikkarten. GPGPU Basiskonzepte. von.

Programmierung von Graphikkarten

Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP

technische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme

Software Engineering für moderne, parallele Plattformen. 9. GPGPUs: Grafikkarten als Parallelrechner. Dr. Victor Pankratius

1 Einleitung. 2 Parallelisierbarkeit von. Architektur

Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Lehrstuhlseminar. NVidia Tegra-Architektur. Andreas Höer. TU Dresden,

GPU-Computing. Michael Vetter

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer

GPU Programmierung. Thorsten Grosch

Hochleistungsrechnen Grafikkartenprogrammierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen

GPU Programmierung. Thorsten Grosch

Die beste Infrastruktur ist nur so schnell, wie der Code der darauf läuft. Fallbeispiel Wettervorhersage

Die Bildbearbeitungssprache Halide

Grundlagen der Spieleprogrammierung

Vergleich von Forward und Deferred Rendering

Shader zur Bildbearbeitung

World of Warcraft. Mindestvoraussetzungen

Spezialarchitekturen I (GPGPU: Architektur, Programmierung und Anwendungen)

GPGPU Programming nvidia CUDA vs. AMD/ATI Stream Computing. Seminar HWS 08/09 by Erich Marth

Übersicht. Vergleich der Spielekonsole mit dem PC. Historie der Spielekonsolen von 1976 bis 1999

Brook for GPUs: Stream Computing on Graphics Hardware

Modellierung und Simulation optischer Strahlführungen. Diplomarbeit Timon Bätz

Die gezeigten Abbildungen dienen als Symbolfotos. Irrtümer, Druckfehler und Preisänderungen vorbehalten.

Gerät Preis* CPU, VGA, HD, RAM Ausstattung

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006

Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, , Ingo Josopait

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

Eine Einführung Computergrafik SS14 Timo Bourdon

Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation

GPU-Programmierung: OpenCL

Numerik und Rechnen. Inhaltsverzeichnis. Seminar Programmierung von Grafikkarten

GPU-Computing im Rahmen der Vorlesung Hochleistungsrechnen

Games with Cellular Automata auf Parallelen Rechnerarchitekturen

(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT

High-Performance Bildverarbeitung (nicht nur) mit JAVA. Prof. Dr.Thomas Netzsch - Hochschule Darmstadt - University of Applied Sciences

OpenGL. (Open Graphic Library)

SG-TRONiC IT - Made in Germany

Efficient Matrix Inversion in CUDA

Linux-Cluster mit Raspberry Pi. Dr. René Richter Sächsische Studienakademie Dresden

Embedded Software Engeneering mit dem Raspberry Pi

OEM Hardware Nr. : PCI\VEN_10DE&DEV_05E2&SUBSYS_ &REV_A1

Algorithmen und Datenstrukturen

Client: min. Intel Pentium IV oder höher bzw. vergleichbares Produkt

Prodatic Angebote 2014

Assembler - Einleitung

Produkte und Preise TERRA PC

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

Marc Simons Proseminar Technische Informatik Institut für Informatik, Betreuer Prof. Dr. Marcel Kyas

2 Rechnerarchitekturen

Öffnungszeiten: Mo. - Fr.: Uhr Sa.: Uhr. Wochen Angebote. 520MB/s read 300MB/s write 45,- Software Windows7 Dell Lizenz

Klausur zu High Performance Computing 09. Juli 2011, SS 2011

Intel Cluster Studio. Michael Burger FG Scientific Computing TU Darmstadt

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

PRODUKTE UND PREISE TERRA PC.

Transkript:

General Purpose Computation on GPUs Matthias Schneider, Robert Grimm Universität Erlangen-Nürnberg {matthias.schneider, robert.grimm}@informatik.stud.uni-erlangen.de M. Schneider, R. Grimm 1

Übersicht Einleitung Geschichte Einsatzgebiete und aktuelle Projekte Diskussion Ausblick M. Schneider, R. Grimm 2

1. Einleitung Ursprünglicher Zweck von GPUs: Beschleunigung von Grafikanwendungen Kurze Evolutionszyklen Geringer Preis Hohe Performance durch Spezialisierung auf datenparallele Operationen (SIMD) M. Schneider, R. Grimm 3

1. Einleitung Hohe Performance durch Spezialisierung auf datenparallele Operationen (SIMD) M. Schneider, R. Grimm 4

1.1 GPGPU General-Purpose Computation Using Graphics Hardware so alt wie Grafikhardware Programmierung von Vektorprozessoren Erste Anwendungen in den 80er Jahren Ausnutzen der Spezialisierung nur sinnvoll möglich für Anwendungen mit guter Parallelisierbarkeit und hoher arithmetischer Intensität M. Schneider, R. Grimm 5

2. Geschichte Zunehmende Flexibilität der Pipeline erlaubt erst seit kurzem hohe Programmierbarkeit (Pixel, Vertex, Geometry Shader) M. Schneider, R. Grimm 6

2.1 GPU Programming Früher: Programmierbare Shader (OpenGL hacking) Vorgehensweise 1. Kernel bestimmen, Input/Output: Texturen 2. Kernel aufrufen durch Zeichnen eines Rechtecks Array-Element = Pixel 3. Rasterizer erzeugt Fragment für jeden Pixel des Rechtecks 4. Für jedes Fragment wird der Kernel ausgeführt 5. Output in Textur (statt Bildschirm) Programmieren = Bilder synthetisieren Ungewohnte Denkweise zu umständlich um sich durchzusetzen M. Schneider, R. Grimm 7

2.2 GPGPU Programming Vermeidung der Computergrafik-API (Metaprogrammiersprachen) Diverse Ansätze: Scout, Accelerator, CgiS, RapidMind, Brook AMD: CTM/CAL, Brook+ Assembler, Stream Programming mit C Nvidia: CUDA C für GPUs GPU-Hersteller und Industrie haben Potential erkannt: Spezielle GPGPU Hardware (Nvidia Tesla) M. Schneider, R. Grimm 8

2.2 GPGPU Programming: Brook+ Codeausschnitt Brook+ (Quelle: http://ati.amd.com/technology/streamcomputing/amd-brookplus.pdf) kernel void sum(float a<>, float b<>, out float c<>) { c = a + b; } int main(int argc, char** argv) { } int i, j; } float a<10, 10>, b<10, 10>, c<10, 10>; float input_a[10][10], input_b[10][10], input_c[10][10]; // init input_[a,b] // [...] streamread(a, input_a); streamread(b, input_b); sum(a, b, c); streamwrite(c, input_c); // sumcpu for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { c[i][j] = a[i][j] + b[i][j]; M. Schneider, R. Grimm 9

3. GPGPU Einsatzgebiete M. Schneider, R. Grimm 10

3.1 Aktuelle Projekte Gut dokumentierte Beispiele: GPU Gems 2/3 Datenbanken: Suchen / Sortieren (Medizinische) Bildverarbeitung: MR Bildrekonstruktion (Studienarbeiten) lineare Algebra (Vektor-Vektor, Matrix-Matrix Multiplikationen) 10x Speedup (vs. optimierte CPU Libraries) Weniger würde sich auch kaum lohnen: 2x QuadCore M. Schneider, R. Grimm 11

3.1 Aktuelle Projekte: MR Bildrekonstruktion Z= X Y, X C r s,y C s t Matrix-Matrix-Multiplikation MKL: Intel Math Kernel Library (hoch optimierte Mathebibliothek) Intel Core 2 6700 dual-core CPU 2.66 GHz, 2x2MB L2 cache, 2 GB RAM (333 MHz) NVIDIA GeForce 8800 GTX GPU, CUDA 1.1, OpenSuse 10.3 (Linux) M. Schneider, R. Grimm 12

3.1 Aktuelle Projekte: MR Bildrekonstruktion ca. 200 000 * K Skalarprodukte der Länge 4 * K Effizienz der CUBLAS-Library stark abhängig von Problemgröße und Speicher-Alignment! (Matrix-Dim. < 512) Intel Xeon 5150 CPU 2.66 GHz, 2x2MB L2 cache, 4 GB RAM NVIDIA GeForce 8800 GTX GPU, CUDA 1.1, WinXP 64-Bit, single CPU core M. Schneider, R. Grimm 13

3.1 GPGPU Performance M. Schneider, R. Grimm 14

4. Diskussion Eine der Stärken von GPUs ist auch eine ernstzunehmende Schwäche: schnelle Innovationszyklen. alle 18 Monate komplett neue Generation von Hard- und Software höherer Wartungsaufwand als CPUs Portierung auf GPU oft nicht trivial (inhärent sequentielle Algorithmen) Performance von GPUs richtig einschätzen: 350 GFLOPs für MAD Theoretische peak performance aktueller CPUs auch schon bei 100 GFLOPs CUDA: Abstraktion von OpenGL aber dafür komplett neue Architektur mit verschiedenen Arten von Speicher. Double precision in vielen wissenschaftlichen Anwendungen gefordert, aber noch nicht verfügbar M. Schneider, R. Grimm 15

5. Ausblick AMD Fusion, Intel Larrabee: GPU näher an CPU Hoch paralleler Coprozessor (Hoffentlich) bessere Anbindung an Speicherbus M. Schneider, R. Grimm 16

General Purpose Computation on GPUs Fragen?! Vielen Dank für die Aufmerksamkeit! M. Schneider, R. Grimm 17

Literatur J. D. Owens et al.: A Survey of general-purpose computation on Graphics Hardware. Computer Graphics Forum, 26(1):80-113, March 2007. D. Lübcke: GPU Applications & Implications. ASPLOS 2008 Tutorial, NVIDIA Research, March 2007. http://www.gpgpu.org/asplos2008/asplos08-4-gpu-architecture.pdf http://www.gpgpu.org M. Schneider, R. Grimm 18