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

Ähnliche Dokumente
General Purpose Computation on GPUs

Grafikkarten-Architektur

GPGPU. Version Marc Blunck Volker Schepker

CUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg

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

Grundlagen der Spieleprogrammierung

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

Stream Processing und High- Level GPGPU Sprachen

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

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

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

Compute Unified Device Architecture CUDA

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

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

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)

Numerik und Rechnen. Martin Heide & Dominik Holler. 12. Juni 2006

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

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Eine Einführung in die Architektur moderner Graphikprozessoren

Computer Graphics Shader

World of Warcraft. Mindestvoraussetzungen

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

Thema: Hardware-Shader

Ansätze 4. GPU. Echtzeit- Raytracing. Polygon- Rendering. Computerspiele Sommer (c) 2013, Peter Sturm, Universität Trier 1

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM

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

GPGPU WITH OPENCL. Praktikum Parallele Rechnerarchitekturen, 2015w Franz Richter-Gottfried

General-purpose computing on GPUs

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

Machine Learning Hardware

Seminar Parallele Rechnerarchitekturen SS04 \ SIMD Implementierung aktueller Prozessoren 2 (Dominik Tamm) \ Inhalt. Seite 1

Volumenakquise. Vortrag von Benjamin Gayer

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

CPU, GPU und FPGA. CPU, GPU und FPGA Maximilian Bandle, Bianca Forkel 21. November 2017

Masterpraktikum Scientific Computing


Seminar GPU-Programmierung/Parallelverarbeitung

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Rechner Architektur. Martin Gülck

GPGPU-Programmierung

GPGPU mit NVIDIA CUDA

Multicore-Architekturen

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

Games with Cellular Automata auf Parallelen Rechnerarchitekturen

Eine kurze Geschichte der Grafikkarten

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

Spezialprozessoren zur Übernahme Grafik-spezifischer Aufgaben, vorrangig der Bildschirmausgabe

Die Sandy-Bridge Architektur

Parallele Rechnerarchitekturen

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

2 Rechnerarchitekturen

OpenGL. (Open Graphic Library)

Grafik- Programmierung

Numerik und Rechnen. Inhaltsverzeichnis. Seminar Programmierung von Grafikkarten

Seminar: Grafikprogrammierung

Benchmarking Intel Pentium III-S vs. Intel Pentium 4

Parallel Computing in der industriellen Bildverarbeitung

Ersa IRSoft/ImageDoc/HRSoft Software

GPU-Programmierung: OpenCL

MULTICORE- UND GPGPU- ARCHITEKTUREN

Interaktive Visualisierung zeitabhängiger Volumendaten

Seminar Multicore-Programmierung

Beispielvortrag: HPCG auf Intel Haswell-EP

GPU Architektur CUDA - OpenCL

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

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

Hardware-Komponenten. DI (FH) Levent Öztürk

Ein Windows Vista-PC. Peter G. Poloczek M5543 PGP II/07

Prozessor- und Rechnerarchitekturen (Master)

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

Stream Processing und High-Level GPGPU Sprachen

OpenCL. Multi-Core Architectures and Programming (Seminar) Apelt, Nicolas / Zöllner, Christian

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Vertiefungsrichtung Rechnerarchitektur

General Purpose Computation on Graphics Processing Unit. RST Labor. Ausarbeitung zum Vortrag vom

Grakkarten - Programmierung

Performant Rendern mit Solidworks Visualize und PNY

298,- DDR3. Intel EGA-PCI0001. Office: Gaming: Multimedia: Gesamt: Upgrade Möglichkeiten. I. Die Rechner werden nur auf Abholung Vorort verkauft.

FPGA Beschleuniger. Your Name. Armin Jeyrani Mamegani Your Organization (Line #2)

Neue Prozessor-Architekturen für Desktop-PC

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

1 Grundlagen. 1.1 Rechnerarchitektur. Mikroprozessortechnik MFB. Einleitung, Systemaufbau

Extrablatt IT. MADE IN GERMANY.

Multicore Architektur vs. Amdahl`s Gesetz

Produktupdate HP DESKTOP PORTFOLIO - OKTOBER

Seminar Game Development Game Computer Graphics. Einleitung

Grundlagen der Spieleprogrammierung

Evolution of GPUs. Die Entwicklung der Graphics Processing Units. Marvin Kampf und Michael Moese. Seminar: Multi-Core Architectures and Programming

Architektur von Parallelrechnern 50

Linux auf FPGAs. Massgeschneiderte Computersysteme. Christoph Zimmermann, Marc-André Beck. 1. März Berner Fachhochschule MedOnStream

Praktische Informatik 1

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

Apple imac 5,1-20 Zoll (Late 2006)

Prozessor- und Rechnerarchitekturen (Master)

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

Die Architektur des Sun UltraSPARC T2 Prozessors, Anwendungsszenarien

Wissenschaftliches Rechnen in der Praxis: Hardware und Hardware-orientierte Programmierung

Transkript:

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

Ablauf Einführung GPGPU Die GPU GPU Architektur Die Programmierung Programme Fazit 2

Was ist GPGPU? GPU zweckentfremden Anwendungsfelder: nicht nur auf graphische Probleme beschränken sondern Nutzung für allgemeine rechenintensive Vorgänge. 3

Warum GPGPU? 1. Performance Parallelität ist die Zukunft CPU hat 2 Prozessoren (dual core) wenig Parallelität serielles Modell GPU hat > 24 Prozessoren (GeForce 6 Serie) hochgradig parallel Unterschied: serielle Prozessoren arbeiten auf beliebigen Datenelementen, geringe Latenz. parallele Stream-Prozessoren arbeiten auf großen homogenen Datenmengen, auf hohen Durchsatz optimiert. 2. Lastenverteilung GPU übernimmt eigene Aufgaben und muss nicht mehr auf die CPU 4 warten.

Performance Vergleich nvidia GeForce 6800 60 GFlops Pentium 4 12 GFlops Abbildung 1: Vergleich GFlops [2] nvidia GeForce 6800 Ultra hat 220 Mio. Transistoren AMD Athlon 64 hat 105,9 Mio. Transistoren 5

Vorteil GPUs sind billig aber leistungsfähig niedrige Kosten pro GFLOP 6

Die GPU im System Komponente GPU Memory Interface PCI Express Bus ( 16) CPU Memory Interface (800 MHz Front-Side Bus) CPU 1st Level Cache Bandbreite 35 GB/sec 8 GB/sec 6.4 GB/sec max. 35 GB/sec (Keine Angaben zu Mainboards bzw. Zeitpunkten) Abbildung 2: Architektur der GeForce 6 Serie [1] 7

GPU Architektur GeForce 6 Serie (zu ATI kaum Infos!) frei programmierbar! Abbildung 2: Architektur der GeForce 6 Serie [1] 8

Die Geometrieeinheit [ Vertex-Prozessor / Vertex-Shader] mehrere Parallele Prozessoren nebeneinander nutzen SIMD & MIMD-Parallelisierung aus 3 Vertices wird Dreieck errechnet hat einen eigenen Befehlssatz und ist frei programmierbar! Vertex-Cache Abbildung 3: Vertex-Prozessor einer GeForce 6 Serie [1] 9

Die Textur- und Fragmenteinheit [Fragment-Prozessor / Pixel-Shader] nach SIMD Parallelisierung arbeitender Spezialprozessor in der GPU (analog Vertex Shader) belegt die Bildpunkte mit Eigenschaften wie Farbe, Transparenz, Reflexionsverhalten usw. Texture-Cache Abbildung 4: Fragment-Prozessor 10

Stream-Modell Abbildung 5: GPU Streams Effiziente Berechnungen durch Parallelität Basis für Programmierung auf GPUs Stream-Prozessoren arbeiten auf kompletten Datenströmen (Streams) und sind damit schnell Für Programmierung meist Fragment-Prozessoren 11

Wieso CPU nicht durch GPU ersetzen? GPU kann nur auf bestimmten Arten von Daten schnelle Operationen ausführen. Operationen müssen parallel verarbeitet werden können...., weil GPU darauf ausgelegt ist, auf kompletten Datenströmen (Streams) zu arbeiten! GPU ist als Stream-Prozessor konzipiert. 12

C g - C for Graphics Von NVIDIA entwickelt, basiert auf C, ähnliche Syntax Datentypen wurden für GPGPU ergänzt: Datentyp float half int fixed bool Beschreibung 32 Bit Fließpunktzahl 16 Bit Fließpunktzahl 32 Bit Integer 12 Bit Fixpunktzahl Boolean Variable Vorteile: Leichter als Assembler zu erlernen, programmieren, lesen und zu verstehen. Auf viele verschiedene Plattformen portierbar Code kann von Compilern optimiert werden 13

Programme (1) ATI Avivo Xcode Video-Encoder von ATI, der die Rechenpower der Grafikkarte nutzt und so das Umrechnen von Filmen in andere Formate drastisch beschleunigt. Quelle: [3] Abbildung 3: ATI Avivo Xcode Benutzeroberfläche 14

Programme (2) GPULab Matlab-ähnliche Sprache für lineare Algebra, welche die GPU nutzt. Quelle: [4] Abbildung 4: GPULab Benutzeroberfläche 15

Programme (3) FFFF - Fast Floating Fractal Fun Verschiedene Optimierungen Benchmarkfunktion Quelle: [6] Abbildung 5: Mandelbrotmenge mit FFFF 16

Programme (4) GPUSort Sortieralgorithmus in der GPU implementiert Läuft momentan nur auf NVIDIA Karten Quelle: [7] 17

Programme (5) Brook Sprache zur GPU Programmierung Projekt, welches einen Compiler und eine Laufzeitumgebung bereitstellt, um moderne Grakkarten zu programmieren. nutzt intern Cg Quelle: [8] 18

Fazit GPU teilweise deutlich schneller als CPU Programmierung nicht trivial Bei Vielzahl von Programmen neueste Hardware erforderlich 19

Quellen [1] The GeForce 6 Series GPU Architecture: http://download.nvidia.com/developer/gpu_gems_2/gpugems2_ch30.pdf [2] Wikipedia http://de.wikipedia.org/wiki/gpgpu [3] ATI Avivo Xcode http://www.chip.de/downloads/c1_downloads_18000750.html [4] GPUlab http://gpulab.sourceforge.net/ [5] Dominik Göddeke -- GPGPU::Basic Math Tutorial http://www.mathematik.uni-dortmund.de/%7egoeddeke/gpgpu/tutorial.html [6] Fast Floating Fractal Fun http://sourceforge.net/projects/ffff [7] GPUSort http://gamma.cs.unc.edu/gpusort/ [8] Brook http://graphics.stanford.edu/projects/brookgpu/ [9] GPGPU http://gpgpu.org 21