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

Ähnliche Dokumente
Grafikkarten-Architektur

Eine Einführung in die Architektur moderner Graphikprozessoren

Thema: Hardware-Shader

Untersuchung und Vorstellung moderner Grafikchiparchitekturen


(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

Shader zur Bildbearbeitung

Jörn Loviscach Hochschule Bremen

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

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

Multicore-Architekturen

Grundlagen der Spieleprogrammierung

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

Kapitel 5: Graphikhardware und Parallelisierung

Cell Broadband Engine

Seminar Game Development Game Computer Graphics. Einleitung

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

Seminar: Grafikprogrammierung

Outline. Cell Broadband Engine. Application Areas. The Cell

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

Seminar: Programmierung von Grafikkarten (SS 2006)

OpenGL. (Open Graphic Library)

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

Current and Emerging Architectures Multi-core Architectures and Programming

moderne Prozessoren Jan Krüger

Texture Based Direct Volume Rendering

GPGPU mit NVIDIA CUDA

MULTICORE- UND GPGPU- ARCHITEKTUREN

Seminar GPU-Programmierung/Parallelverarbeitung

Der Aufbau der Fusion-APU von AMD

Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen

World of Warcraft. Mindestvoraussetzungen

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

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

Vergleich von Forward und Deferred Rendering

Friedrich Hoermann Hauptseminar Grafikprogrammierung. Grundlagen und Aufbau einer Grafikkarte

VHDL - Grundlagen des Pointrenderings

Benchmarking Intel Pentium III-S vs. Intel Pentium 4

Rechner Architektur. Martin Gülck

Softwareprojekt Spieleentwicklung

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Praktikum Computergrafik

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

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

Instruktionen pro Takt

Seminar - Paralleles Rechnen auf Grafikkarten

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Interaktives Motion-Capturing zur Echtzeitanimation virtueller Agenten

Grafik- Programmierung

Spezialarchitekturen I (GPGPU: Architektur, Programmierung und Anwendungen)

4. Mensch-Maschine Schnittstellen

OpenCL Implementierung von OpenCV Funktionen

Die Architektur des Sun UltraSPARC T2 Prozessors, Anwendungsszenarien

IT für Führungskräfte. Zentraleinheiten Gruppe 2 - CPU 1

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

GPU-Computing. Michael Vetter

GPU Programmierung. Thorsten Grosch

4. Kapitel 3D Engine Geometry

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

Shadingalgorithmen zur Visualisierung nanostrukturierter Oberflächen

Stream Processing und High-Level GPGPU Sprachen

Ankermann PC Dokumentation

GPU Programmierung. Thorsten Grosch

Heute. Motivation. Verfügbarkeit. Programmierbare Hardware-Shader. Technische Entwicklung von Grafikhardware. Grafikpipeline (DirectX9)

Computergrafik. Peter Rösch Hochschule Augsburg University of Applied Sciences. Sommersemester Version: 24. März 2014

Universität Osnabrück Fachbereich Mathematik / Informatik. 5. Vorlesung ( )

Was sind Computerspiele? (c) 2013, Peter Sturm, Universität Trier

-,N. ep S ät KW 32/33

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

Leistungsverteilung im Rechner

Entwicklung eines Partikelsystems auf Basis moderner 3D-Grafikhardware

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

D-Texturen. Reflectance Mapping 3D-Texturen. Farbtexturen

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Einführung in die Computergrafik

Grafikkarten. Institut für Informatik, LMU München Seminar: Medientechnik, SoSe 2003 LS Prof. Hussman Referentin: Milena Velikova

Einleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.

computer graphics & visualization

Acer Notebooks. Preisliste gültig ab Inhaltsverzeichnis:

Fakultätsname XYZ Fachrichtung XYZ Institutsname XYZ, Professur XYZ. Big.LITTLE-Processing mit ARM- Cortex-Prozessoren. E. Zenker

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Samsungs Exynos 5 Dual

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

Hochleistungsberechnungen für Industrie und Weltraum

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

TecNews: Sandy Bridge

Aktuelle Grafikleistungen

HW/SW Codesign 5 - Performance

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

Grakkarten - Programmierung

20 Jahre. acadgraph CADstudio GmbH Fritz-Hommel-Weg München Seite 1 von 11

Erfolg mit Embedded Vision Systemen. Dipl.-Ing. Carsten Strampe Embedded Vision Systeme 1

Philipp-Melanchthon-Gymnasium Bautzen Lk Mathematik Kl. 11. Schwerpunkt: Aufgaben ohne HM Abitur Sachsen

Echtzeitfähige Rekonstruktion für die Flachdetektor- Computertomographie auf Grafikhardware

Computer in Meiderich Computer in Meiderich. Einstecken und fertig! Windows bereits installiert. Monitor, Tastatur und Mouse einstecken und loslegen!

BACHELORARBEIT. Herr Mario Gienapp. GPGPU Computing - Parallele Programmierung mit CUDA und OpenCL

Tutorium Rechnerorganisation

Opteron und I/O. Toni Schmidbauer. 11. Mai Zusammenfassung. Eine kurze Beschreibung der AMD Opteron Architektur.

Echtzeit-Raytracing algebraischer Flächen auf der Graphics Processing Unit

Transkript:

SS08, LS12, Friedrich-Alexander-Universität Erlangen Florian Hänel, Frederic Pollmann HS Multicore Architectures and Programming GPU EVOLUTION (until Geforce 7 Series) 1

ÜBERSICHT Grafikpipeline Verlagerung der Berechnung von CPU auf GPU Shadermodel 3.0 Architektur nvidia NV40 im Detail 2

GRAFIKPIPELINE (1) Was haben wir? Geometrie beschrieben durch Dreiecke bzw. deren Eckpunkte Attribute der Eckpunkte für visuelle Eigenschaften wie Farbe, Lichteinfall usw. Texturen liefern visuelle Details 3

GRAFIKPIPELINE (2) Wo wollen wir hin? Monitore sind Rasterdisplays Diskretisierung durch feste Anzahl an Pixeln nur zweidimensionale Abbildung (noch) 4

GRAFIKPIPELINE (3) Vereinfachter Aufbau der sog. Fixed-Function Pipeline 5

GRAFIKPIPELINE (4) Transformation: Matrixmultiplikation Vertexdaten werden mehrfach transformiert Model- nach Weltkoordinaten Welt- nach View-Koordinaten Projektive Transformation 6

GRAFIKPIPELINE (5) Dreiecke und andere Grafikprimitiven werden auf Fragmente (=Pixelkandidaten) abgebildet Diskretisierung der mathematischen Konstrukte Algorithmus von Bresenham Erweiterung um z.b. Beleuchtungsberechnung Werte nur an Eckpunkten bekannt Zwischenwerte werden interpoliert 7

PARALLELITÄT Grafikpipeline ist embarrassingly parallel Datenverarbeitung in allen Stufen parallelisierbar Vertices sind nicht voneinander abhängig Primitive können unabhängig gerastert werden Fragmentdaten sind unabhängig mehr Ausführungseinheiten = mehr Geschwindigkeit (3dfx SLI, ATI Crossfire, nvidia SLI) 8

0%&-1(23/7&%89&%$ : ;("2<&(%/=>?5/@5A?BC *DE/F$"$%&#$3 )(8$+ 3(F"&<G screen application geometry rasterization CPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 9

0%&-1(23/7&%89&%$ : *+,,+8+%$ 6;< *=>/9%(#$3?%&,$ @.??$%A B%&-1(23 21(- B$"$%&#$3 )(8$+ 3(B"&C screen application geometry rasterization CPU GPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 10

0%&-1(23/7&%89&%$ : ;#&%(/<=> 0?@/3.--+%#3 3(,-A$/BC/D%&-1(23 +-$%&#(+"3 screen application geometry rasterization CPU GPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 11

0%&-1(23/7&%89&%$ : ;0!/!"8<= 0>?/8+$3 %&3#$%(@&#(+" +A/ #%(&"BC$3 screen application geometry rasterization CPU GPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 12

0%&-1(23/7&%89&%$ : ;0!/< = > 0?@/&A3+/8+$3 #%&"3B+%,&#(+"3 screen application geometry rasterization CPU GPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 13

0%&-1(23/7&%89&%$ : ;0!/<"=>?/"@(8(& 0$A+%2$5BBB 0CD/8+$3 $"#(%$ -(-$E("$ screen application geometry rasterization CPU GPU!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 14

0%&-1(23/7&%89&%$ : ;(%3#/<$"$%&#(+"/-%+<%&,,&=>$/0?@3A "B(8(& 0$C+%2$CDE/FG!/H&8$+"E III 3("<>$ 3#&<$3 &%$ -%+<%&,,&=>$ $I<I/J/)$%#$K/-%+2$33+%3/&"8/6J/-(K$>/-%+2$33+%3 screen application geometry rasterization CPU GPU... DP4 o[hpos], c[0], v[opos] DP4 o[hpos], c[1], v[opos]...!"#$%&'#()$ *+,-.#$%/0%&-1(23/4!"#%+ 56 VERLAGERUNG VON CPU AUF GPU Folien entnommen aus der Vorlesung Interaktive Computergrafik, Stamminger, LS9 15

GPU UND SHADER GPU übernimmt mehr Aufgaben Wechsel von Fixed-Function-Pipeline zu programmierbaren Funktionseinheiten (Vertex-, Fragmentprogramme) Shader: Programm, das direkt auf GPU läuft und Vertex- bzw. Fragmentdaten ändern kann 16

SHADER MODELS Verschiedene Featuresets bzgl. Programmierbarkeit (sog. Shader-Model) 1.0: spezieller Assemblerdialekt 1.5: GLSL, Hochsprache aus OpenGL 2.0: cg, HLSL; (stark) begrenzte Instruktionszahl 3.0: dynamic flow control, hohe Instruktionsanzahl 4.0: geometry shader, unified shader model 17

PERFORMANCE-ENTWICKLUNG Überblick von 1994 bis 2004 (Release NV40) 18

GEFORCE 6 SERIES NV40: 222 Mio. Transistoren, 130nm Strukturbreite, 400 MHz (Athlon64 Newcastle: 68,5 Mio. Transistoren, 2.0 GHz) Shader-Model 3.0 Peak-Performance: hundreds of gigaflops (single precision) erscheint 2004 Ab Mitte 2005 Ablösung durch Geforce 7 (NV44) 19 Geforce 6800, Prozessor-Die

NV40 BANDBREITEN Northbridge to GPU: PCIe 16x; Northbridge to CPU/System DRAM: 800MHz FSB GPU to Graphics DRAM: 550MHz DDR x 256 bit x 2 transfers per clock cycle = 35 GB/s 20

N V 4 0 I M D E TA I L Blockdiagramm der Geforce6-Architektur 21

N V 4 0 V E RT E X P R O C E S S O R Alle (Vektor-)Komponenten werden mit 32-bit Fließkommzahlen berechnet 22

VERTEX PROCESSOR Genauigkeit: fp32, fp16 eine SIMD-MADD-Instruktion und eine Skalarfunktion pro Taktzyklus Skalarfunktionen: exponential: exp, lit, log reziprok: rcp, rsq trigonometrisch: sin, cos Zugriff auf bis zu vier Texturen; nur nearest neighbor Filtering 23

NV40 FRAGMENT PROCESSOR Bearbeitet Blöcke der Größe 2x2 24

FRAGMENT PROCESSOR 4 Komponenten SIMD- Instruktionen Genauigkeit: fp32, fp16 3:1 coissue, 2:2 coissue dual issue dynamic flow control multiple render targets (MRT) 25

DATENFORMATE NV40 Texturzugriff sowohl von Vertex- als auch Fragmentprogramm möglich Formate: 1D, 2D, 3D, Cubemap mit fp16x2, fp16x4, fp32x1, fp32x2, fp32x4 Interpolation: nearest neighbor (Vertex Processor) bilinear, trilinear, anisotropic in 2D und Cubemap- Texturen (Fragment Processor) zusätzlich quad-linear für 3D-Texturen 26

GRAPHICS PIPELINE VS. GPGPU 27

GEFORCE 7 SERIES Geforce7 (NV44) basiert auf Geforce6-Design (NV40) Unterschiede: Takt (650 MHz vs. 400 MHz) Speichertakt (1,6 GHz statt 1,1 GHz) Mehr Ausführungseinheiten (24 statt 16 Pixelshader-Units, 8 statt 6 Vertex Pipelines) Spätere Geforce7-Modelle haben neue Chip-Revision: G70 28

FAZIT (1) Grafikhardware kann für General Purpose-Zwecke verwendet werden Umsetzung von Algorithmen jedoch schwierig Beispiel: Navier-Stokes Flüssigkeitssimulation auf Intel Pentium 4 2 GHz, NV35, NV40 29

FAZIT (2) Performance-Boost durch Parallelisierung Früher: Spezialisierung, heute: Generalisierung der Funktionseinheiten Trend setzt sich mit neueren Architekturen (G80) weiter fort 30

FRAGEN, ANMERKUNGEN? 31

QUELLEN Marc Stamminger: Folien zur Vorlesung Interaktive Computergrafik, Erlangen, 2006. Matt Pharr, Randima Fernando: GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation, 2005 32