Grafikkarten-Architektur

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

General Purpose Computation on GPUs

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

Thema: Hardware-Shader

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

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

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

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

Seminar Multicore-Programmierung

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

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

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

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

Multicore-Architekturen

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

Compute Unified Device Architecture CUDA

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

Eine kurze Geschichte der Grafikkarten

Computergrafik Universität Osnabrück, Henning Wenke,

Eine Einführung in die Architektur moderner Graphikprozessoren

World of Warcraft. Mindestvoraussetzungen


GPGPU-Programmierung

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

Grundlagen der Spieleprogrammierung

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

Masterpraktikum Scientific Computing

GPGPU-Programmierung

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

K&R Monza Office, Internet und Multimedia-PC!

2 Rechnerarchitekturen

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

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

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

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

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

Verteidigung der Bachelorarbeit, Willi Mentzel

Stream Processing und High- Level GPGPU Sprachen

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

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

Grafikprozessor Grafikspeicher Taktung Kühlung Schnittstellen Ausgänge Treiber Crossfire & SLI ATI Nvidia Matrox PowerVR Technologies Inhaltsverzeichn

Cell and Larrabee Microarchitecture

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

Rheinisch-Westfälische Technische Hochschule Aachen. Seminararbeit

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

Untersuchung und Vorstellung moderner Grafikchiparchitekturen

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

Physikalische Berechnungen mit General Purpose Graphics Processing Units (GPGPUs)

Extrablatt IT. MADE IN GERMANY.

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

MULTICORE- UND GPGPU- ARCHITEKTUREN

1 Einleitung. 2 Parallelisierbarkeit von. Architektur

Acer Desktops, AllInOne, Bundles und Server vom: 22. Tel: Fax:

Volumenakquise. Vortrag von Benjamin Gayer

BRUGO UG (haftungsbeschränkt) Haardtstraße Wiesthal

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

Prozessor- und Rechnerarchitekturen (Master)

GPGPU mit NVIDIA CUDA

Machine Learning Hardware

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze

PC-SHOP DELMENHORST. Kundeninformation - 03/ Delmenhorst

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

Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

MESIF- (links) vs. MESI-Protokoll (rechts)

Predator G3. Premium Design. Advanced Technology. Immersive entertainment

GPU-Computing. Michael Vetter

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

Shader zur Bildbearbeitung

Hochleistungsrechnen auf Grafikkarten für innovative Automotiveanwendungen Simulation der Wasserdurchfahrt eines Serienfahrzeugs

PC-SHOP DELMENHORST PC-SYSTEME - 10/ Delmenhorst

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

GPU Programmierung. Thorsten Grosch

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

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

General-purpose computing on GPUs

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

Vergleich von Forward und Deferred Rendering

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

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Endorsed SI Anwenderbericht: Einsatz von System Platform 2012 R2 in virtualisierten Umgebungen zur Prozessvisualisierung

Architektur und Programmierung von Grafik- und Koprozessoren

Transkript:

> Grafikkarten-Architektur Parallele Strukturen in der GPU Name: Sebastian Albers E-Mail: s.albers@wwu.de

2 > Inhalt > CPU und GPU im Vergleich > Rendering-Pipeline > Shader > GPGPU > Nvidia Tesla-Architektur

3 > Motivation: Warum auf Grafikkarten rechnen? 1000 GT200 NVIDIA GPU Intel CPU Maximalleistung in GFLOPS 750 500 250 NV30 NV35 NV40 G70 G71 G80 Ultra G80 3.0 GHz Core2 Duo G92 3.2 GHz Harpertown GT200 = GeForce GTX 280 G92 = GeForce 9800 GTX G80 = GeForce 8800 GTX G71 = GeForce 7900 GTX G70 = GeForce 7800 GTX NV40 = GeForce 6800 Ultra NV35 = GeForce FX 5950 Ultra NV30 = GeForce FX 5800 0 Jan 2003 Jan 2004 Jan 2005 Jan 2006 Jan 2007 Jan 2008 Quelle: Nvidia, April 2009

4 > CPU und GPU im Vergleich > Central Processing Unit (CPU) > Wenige Kerne, hohe Taktung > Cache-Hierarchien > Niedrige Speicherzugriffszeiten (Latenz) > Beispiel: Intel Core i7-975 > Preis: ca. 900 > 4 Kerne > Taktung: 3.33 GHz > Bandbreite je nach verwendetem RAM > 3 2 GB DDR3-1600: 26.7 GB/s > 3 2 GB DDR3-800: 15.5 GB/s > Graphics Processing Unit (GPU) > 3D-Rendering hochgradig datenparallel GPU für datenparallelen Code optimiert > Viele Prozessoren, niedrige Taktung > Hoher Datendurchsatz (Speicherbandbreite) > Beispiel: Nvidia Geforce GTX 295 (2 GPUs) > Preis: ca. 450 > 2 240 Prozessoren > Taktung: 1.48 GHz > Speicher: 2 896 MB GDDR3 > Bandbreite: 2 111.9 GB/s

5 > Bildsynthese / Rendering > Rendering: Erzeugung eines diskreten 2D-Bildes aus einer 3D-Szene > Programmierer spezifiziert Szene durch Primitive (Dreiecke, Linien, etc.) > Eckpunkt eines Primitivs heißt Vertex > Aus Primitiven werden diskrete Fragmente erzeugt > Fragment enthält Informationen wie 2D-Position, Tiefenwert, Farbe, Alphakanal > Fragmente werden zu Pixeln kombiniert > Rendering findet in einer Pipeline statt > Programmierbare Stages der Rendering-Pipeline definiert durch Shader-Funktionen: > In speziellen Shader-Programmiersprachen geschrieben > Definiert als sequentielle Funktion, die für einzelne Dateneinheit berechnet wird

6 > Shader > Shader-Arten: > Vertex-Shader: Verschiebung von Vertices > 1 Vertex 1 Vertex > Geometry-Shader: Manipulation von Primitiven > 1 Primitiv beliebig viele Primitive > Fragment-Shader / Pixel-Shader: Änderung der Fragment-Farbe > 1 Fragment 1 Fragment > Viel Geometrie, hohe Auflösungen Pro Bild werden sehr viele Shader-Funktionen aufgerufen > Shader-Berechnungen voneinander unabhängig Parallele Berechnung der Shader-Funktionen für verschiedene Daten auf so genannten Shader-Einheiten der Grafikkarte

7 > General Purpose Computing On GPUs (GPGPU) > GPGPU > Nicht-grafikspezifische Berechnungen auf GPUs > Effizient bei hoher Datenparallelität > Anfänge: Verwendung von OpenGL und Shader-Programmiersprachen > Nvidia Tesla-Architektur (ab Geforce 8, Erscheinungsjahr: 2007) > Unified-Shader-Architektur > Jede Shader-Einheit kann sämtliche Shader-Berechnungen durchführen Bessere Auslastung der GPU > Graphics Mode / Compute Mode > Graphics Mode: 3D-Rendering > Compute Mode: Teile der Grafikpipeline deaktiviert

8 > Beispiel: Geforce 8800 GTX > 128 Streaming Processors (Taktung: 1.35 GHz) > Organisiert in 16 Streaming Mulitprocessors > 768 MB GDDR3 (maximale Bandbreite: 86,4 GB/s) > Theoretische Maximalleistung: 518 GFLOPS

9 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

10 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

11 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

12 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

13 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

14 > Geforce 8800 GTX host CPU system GPU host interface SM MT IU shared

15 > Streaming Multiprocessor SM MT IU > Streaming Multiprocessor (SM) > Multithreaded Instruction Unit (MT IU) > Streaming Processor () > Special Function Unit () shared > Shared Memory

16 > Multithreaded Instruction Unit (MI UT) > MI UT verwaltet Ausführung von Threads auf einem SM > 32 Threads werden zu einem Warp zusammengefasst > Bis zu 24 Warps werden von einem SM verwaltet Warp

> Grafikhardware 17 > Hardware-Multithreading > Single Instruction Multiple Thread (SIMT) > Threads eines Warps führen das gleiche Programm aus > Verzweigungen im Programmcode Threads können unterschiedliche Instruktionen ausführen > In Anlehnung an die Flynnsche Klassifikation SIMD > 32 Threads pro Warp > Best case: alle Threads führen identische Instruktionen aus > Worst case: alle Threads führen paarweise verschiedene Instruktionen aus, dann: 1/32 der Maximalleistung > Probleme lassen sich häufig mit wenigen Verzweigungen lösen Meist gute Ausnutzung der Ressourcen möglich

18 > Hardware Multithreading Warps MT IU shared

19 > Hardware Multithreading 1. MT IU wählt Warp zur Ausführung aus Warps MT IU shared

20 > Hardware Multithreading 1. MT IU wählt Warp zur Ausführung aus 2. MT IU wählt Thread aus dem Warp aus Warps MT IU shared

21 > Hardware Multithreading 3. Instruktion dieses Threads wird für den gesamten Warp ausgeführt Warps MT IU 3.1. Threads, welche die Instruktion ausführen müssen, beteiligen sich 3.2. Threads, welche die Instruktion nicht ausführen müssen, warten shared

22 > Zusammenfassung > Moderne GPUs: viele Prozessoren hohes Leistungspotential > Datenparallele Berechnungen lassen sich auf GPUs effizient durchführen > Rendering: parallele Ausführung vieler Shader-Funktionen > Auf GPUs sind auch nicht-grafikspezifische Berechnungen möglich (GPGPU) > Tesla-Architektur > Beispiel: (stark vereinfachter) Aufbau einer Geforce 8800 GTX > Hardware Multithreading > 32 Threads werden zu einem Warp zusammengefasst und gemeinsam auf einem Streaming Multiprocessor ausgeführt (SIMT)

23 Vielen Dank für Ihre Aufmerksamkeit! Noch Fragen?