GPU Architectures: GeForce 8, GeForce 9 and Future

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

Übersicht Anzeigegeräte Framebuffer Grundlagen 3D Computergrafik
Programmieren im Großen von Markus Schmidt und Benno Kröger.
< CUDA implementation>
Constantin Timm Informatik 12 TU Dortmund
Maurer, Karl-Heinz Moderne Grafikkarten & Features DVT-Referat am
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Holger Harms, Harald Widiger,
Arbeitsbereich Technische Aspekte Multimodaler Systeme Universität Hamburg Fachbereich Informatik Oberseminar TAMS Grundlagen omnidirektionaler Sichtsysteme.
Neuerungen in PalmOS® 5 Florian Schulze (SS 2003).
SAP R/3 - Speichermanagement
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Zentraleinheit CPU, Motherbord, RAM
BUS-Systeme (PCI) Allgemeines über BUS-Systeme Allgemeines zum PCI-Bus
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Algorithmentheorie 04 –Hashing
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
W. Oberschelp G. Vossen Kapitel 7.
2.5. Mikrocontroller-Komponenten
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
4. Mikrocontroller-Komponenten
Displacement Mapping Dynamische Generierung detaillierter Geometrien
AMDs Next Generation Die Hammer Familie Eine Kurzpräsentation von Frank Grümmert bei Herrn Prof. Dr.-Ing. Risse für das RST-Labor.
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
PCI-Express als Grafikschnittstelle
Inhalt Der Cell Prozessor Aufbau des Cells Platine Block Diagramm
Random Heightmap on GPU
Matrix Multiplication on CUDA
< Best practices >
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Beschleunigung Virtueller Privater Netze durch Netzwerkprozessoren
Leitfaden Motivation Was ist CUDA ? NVIDIA Grafikkarte Programmierung
Entwicklung verteilter eingebetteter Systeme - Einführung
Duo- und Quad Prozessor-Architektur
FHP - Fachbereich Bauingenieurwesen
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Clustering mittels Grafikprozessor
Grafikkarten.
INTEL Pentium 4 Prozessor
Thema: Grafikkarten.
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Shader.
3.4 CPU-Chips und Busse CPU-Chips
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Computerorientierte Physik VORLESUNG
Computerarchitektur AMD Athlon und Multikernprozessoren
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Ein Vortrag von Simon Bayer
Die verschiedenen Schnittstellen eines Computers und ihre Verwendung
Multiprozessoren: Herausforderung für die Software
Analyseprodukte numerischer Modelle
Rechnerarchitekturen
Seminarvortrag Grafikkarten der 6. Generation Vortragender: Martin Ley Betreuer: Prof. Dr. Norbert Link.
Central Processing Unit von David Kleuker und Thomas Auner
Central Processing Unit (Zentraleinheit)
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
AGP, PCIE Bus im Vergleich AGP: Accelerated Graphic Port 1997 von Intel entwickelt. Ab 1998 AGP dann in großem Stil in PCs als Grafikkartensteckplatz verwendet.
Die Renderpipeline.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Objektorientierte (OO) Programmierung
Prozessoren (CPU) Ahmet Aktas, HWI I.
Präsentation von Markus Lugbauer
Die Komponenten Von einem PC.
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

GPU Architectures: GeForce 8, GeForce 9 and Future Leander Sturm Daniel Gran Hardware-Software-Co-Design Universität Erlangen-Nürnberg leander.sturm@mb.stud.uni-erlangen.de daniel.gran@gmx.de Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Übersicht Vorstellung der GeForce-Architektur Zukunft Einführung: - GeForce, Quadro, Tesla Architektur - Shader, Threads, Speicher - Allgemeines, Leistungsdaten Zukunft Raytracing als alternativer Renderer - Vor- und Nachteile - Intel Larrabee Weiterentwicklung der GeForce-Serie Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Die verschiedenen GPU-Familien GeForce Grafikkarte für Desktop-PCs Standard-Schnittstellen: Direct3D, OpenGL, CUDA* Quadro Grafikkarte für CAD-Workstations Unterstützung einzelner CAD-Programme, -Features TESLA keine Monitor-/Video-Ausgänge über PCIe an System angebunden ausschliesslich für CUDA Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Gemeinsamkeiten der GPU-Familien Geforce 8800GTX Grundstein für alle aktuellen NVIDIA-GPUs Einführung einer komplett neuen Architektur bis heute Grundlage für alle GPUs: GeForce 8, GeForce 9 Quadro, Tesla Skalierung der Leistung über: Anzahl und Konfiguration der Funktionseinheiten Lokaler Speicher Größe Bit-Breite der Anbindung Taktfrequenzen (Herstellungsprozeß) Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Der G80 G80 GPU in GeForce 8800GTX, Quadro FX4600, TESLA C870 erste und bisher leistungsstärkste GPU Grundlage der nachfolgenden Architektur-Besprechung SCX-D4200A Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Shader-Arten Vertex-Shader Pixel-Shader Geometrie-Shader Operationen auf Vertex-Koordinaten Pixel-Shader Operationen auf Pixel-Werten und neu in Direct3D 10 enthalten und somit auch im G80: Geometrie-Shader Modifikation der Geometrie Vertices hinzufügen/entfernen Tesselation, Subdivision Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Unified Shader I Shader früher: Shader im G80: Technologietreiber: entwickelt aus der klassischen “Rendering Pipeline” Vertex- und Pixel-Shader getrennt und hintereinander Shader im G80: ein Rechenwerk für Vertex-, Geometrie- und Pixel- Operationen: Unified Shader bei nVidia: Stream Processor Technologietreiber: Direct3D 10 (Windows Vista) Geometrie-Shader “Unified Shader”-Programmiermodell Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Unified Shader II Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Stream Processor Aufbau eines Stream Processor Rechengenauigkeit ALU für Standard-Operationen MAD (Multiplikation + Addition) Shader-Operationen nachgeschaltete Special Functions Unit komplexe Befehle (div, sin, rec, pow, ...) in 4+ Takten alternativ ein Mul pro Takt Rechengenauigkeit single precision: 32bit float gemäß IEEE754 Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Shader Cluster - G80 Shader Cluster zwei Multiprozessoren aus je 8 Stream-Prozessoren lokaler Speicher/Cache eigenes Register-File asynchrone Einheiten: Daten-Port (Speicher lesen/schreiben) branching-Einheit vier Textur-Einheiten (Texturdaten laden und filtern) Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Threads I ein Thread pro Multiprozessor 8 Stream-Prozessoren führen gleichzeitig den gleichen Befehl aus Threads sind einem Shader Cluster zugeordnet OP-Code in FIFO, Operanden in Register-File Thread-Wechsel pro Takt möglich Verdecken von Latenzen bei Speicherzugriffen und branching >100 Threads pro Shader Cluster Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Threads II im gesamten G80: bis über 1000 Threads “idle” im G80! 8 Shader Cluster => 16 Threads simultan aktiv globaler FIFO-Puffer für Threads globaler Thread Scheduler: verteilt Threads auf die Shader Cluster bis über 1000 Threads “idle” im G80! Verdecken von Speicher- und anderen Latenzen Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

G80 - Blockdiagramm Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Load Balancing globaler Thread Scheduler: lokal in Shader Clustern: Verteilen der Threads auf die Shader Cluster lokal in Shader Clustern: lokale Thread Scheduler in Shader Clustern FIFO-Buffer und Register File sofortiger Thread-Wechsel, wenn Daten fehlen Reduktion der Thread-Anzahl, wenn Register File voll G80: Load Balancing in Hardware! Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Branching G80-Shader Branching ~10-stufige Pipeline aber keine branch prediction! Branching kostet 4 Takte bzw. 32 Operationen entspricht Granularität von 16 Vertex- bzw. 32 Pixel-Objekten Vergleich G70: 880 Objekte! die Vorteile des G80: asynchrone branching unit thread-Wechsel pro Takt möglich getrennte shader cluster Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Speicher im G80 G80 pro Shader Cluster Streaming Architektur schneller lokaler Speicher: sechs 64-bit Controller globaler Cache globaler Textur- und Konstanten-Puffer (read only) pro Shader Cluster lokaler Cache lokales Register File Streaming Architektur extrem schnelle Busse und Interfaces weniger Puffer – mehr Rechen-Einheiten => gezielte Programmierung nötig für gute Effizienz! Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

G80: Leistungsdaten Rechenleistung Speicherbandbreite 128 Streamprozessoren * 3 Operationen * 1,35 GHz = 518 GFlops 2x Cell/PS3 (256 GFlops in 8 SPEs) in realen Applikationen >300 GFlops erreichbar! Speicherbandbreite 384 bit * 1,8 GHz = 86,4 GByte/s 3x Cell/PS3 (25,6 Gbyte/sec.) Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Grafik-spezifische Funktionen I 24 ROPs Render Output Unit Lesen und Schreiben in Bild-Puffern Pixel Blending zwischen allen Int- und float-Formaten Anti-Aliasing (8x Multisampling auf 4bit Subpixel-Gitter) “depth check”: ignoriert verdeckte Pixel jeweils fest an einen der Speicher-Controllern gebunden Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Grafik-spezifische Funktionen II Texture Units an Shader-Cluster gebunden Textur-Adressierung Textur-Filterung: bilinear, trilinear, anisotrop NVIO separater Chip beim G80, später integriert enthält RAMDAC: Bildwandler DVI, Video-I/O Video-Engine: Decoder, Skalierung, Filterung SLI-Koppelung zu weiteren GPUs Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

G80: Blockdiagramm Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

G80: Rasterizer Rendering in einem Rasterizer: Dreieck als Grundelement zeichnet Dreieck für Dreieck Farbwert-Berechnungen für jeden Pixel im Dreieck Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Raytracing I Raytracing als Renderer ray: Lichtstrahl, tracing: Verfolgung -> “Lichstrahlverfolgung” Lichtstrahl vom Bildschirmpixel ins Auge des Betrachters Rückwärtsverfolgung in zu zeichnende 3D-Szenerie Reflektion – Weiterverfolgung Refraktion zu Lichtquellen – globale Beleuchtung Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Raytracing II Einschränkungen und Nachteile 3D-Geometriedaten für Pixelberechnung nötig schlechte Partitionierbarkeit der Szene (Lichtstrahl kann überallhin reflektiert werden) erzeugt globale Beleuchtung, aber: nur theoretisch optimal praktisch nahezu optimal, aber nur mit sehr hohem Aufwand es existiert derzeit kein sinnvoller Ansatz für realtime- taugliche globale Beleuchtung! selbst Pixar verwendet nur partiell Raytracing Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Raytracing III Raytracing für Echtzeit-3D nach Aussagen vieler Fachleute als alleiniger Renderer ungeeignet Probleme mit bewegten/interagierenden Objekten Probleme mit Anti-Aliasing mögliche Entwicklung: Mischform mit Rasterizern verwendet z.B. von Pixar (“Toy Story”) hier sind laut Fachleuten tatsächliche Vorteile zu erwarten Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Intel Larrabee I Larrabee: Codename der derzeit entwickelten Intel-GPU erscheint 2009 einzige zukünftige GPU, deren Daten ein bißchen bekannt sind Eigenschaften: 16 oder mehr Kerne mit IA-Befehlssatz (ähnlich x86) in-order 4 Threads 256bit AVX-Vektoreinheiten Nachfolger des SSE-Befehlssatzes: auch in zukünftigen Intel-CPU’s drei-Operanden-Synthax vier double-Operationen pro Takt maskierter/geordneter Speicherzugriff Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Intel Larrabee II Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Intel Larrabee III besser geeignet für Raytracing mehr gleichzeitige Threads besser bei skalarem Code: Raytracing: je nur 1 Strahl G80: 8 parallele Befehle pro Thread wären nötig für gute Auslastung besser geeignet für: Misch-Renderer Physik-Berechnung grafischer Objekte GPGPU Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Zukunft der GeForce-Architektur I GT200 im Juni gleicher Architektur-Ansatz wie G80: 16 Streamprozessoren pro Shader Cluster 16 Shader Cluster leistungsgesteigerte Shader > 2x Leistung der G80: Teraflop! double precision: 64bit float Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

Zukunft der GeForce-Architektur II längerfristig: leider nichts bekannt! nVidia allgemein: schon immer möglichst direkte Direct3D-Implementierungen Direct3D 11: “compute shader” CUDA-artige herstellerunabhängige Schnittstelle? vorstellbare Entwicklungsrichtung: leistungsfähiger bei skalarem Code besseres branching mit prediction -> Physik, Raytracing, flexibleres GPGPU allgemein weiter gesteigerte Programmierbarkeit Flexibilität, Zukunfts- und Investitionssicherheit Unsicherheit bezüglich kommender Rendering-Verfahren Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig

The End Wir sagen Danke für’s Zuhören und Eure Geduld! Fragen offen? Jetzt fragen! Referenzen beyond3d.com Wikipedia 3dcenter.de Friedrich-Alexander-Universität Erlangen-Nürnberg Frank Hannig