1 / 30

GPU Architectures: GeForce 8, GeForce 9 and Future Leander Sturm Daniel Gran

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. Übersicht. Vorstellung der GeForce-Architektur Einführung: - GeForce, Quadro, Tesla

albin
Download Presentation

GPU Architectures: GeForce 8, GeForce 9 and Future Leander Sturm Daniel Gran

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Übersicht • Vorstellung der GeForce-Architektur • 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

  3. 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

  4. 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ß)

  5. Der G80 • G80 • GPU in GeForce 8800GTX, Quadro FX4600, TESLA C870 • erste und bisher leistungsstärkste GPU • Grundlage der nachfolgenden Architektur-Besprechung SCX-D4200A

  6. Shader-Arten • Vertex-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

  7. Unified Shader I • Shader früher: • 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

  8. Unified Shader II

  9. Stream Processor • Aufbau eines Stream Processor • 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

  10. 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)

  11. 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

  12. Threads II • im gesamten 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

  13. G80 - Blockdiagramm

  14. Load Balancing • globaler Thread Scheduler: • 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!

  15. Branching • G80-Shader • ~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

  16. Speicher im G80 • G80 • 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!

  17. G80: Leistungsdaten • Rechenleistung • 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.)

  18. 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

  19. 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

  20. G80: Blockdiagramm

  21. G80: Rasterizer • Rendering in einem Rasterizer: • Dreieck als Grundelement • zeichnet Dreieck für Dreieck • Farbwert-Berechnungen für jeden Pixel im Dreieck

  22. 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

  23. 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

  24. 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

  25. 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

  26. Intel Larrabee II

  27. 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

  28. 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

  29. 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

  30. The End • Wir sagen Danke für’s Zuhören und Eure Geduld! • Fragen offen? Jetzt fragen! • Referenzen • beyond3d.com • Wikipedia • 3dcenter.de

More Related