architektur und programmierung von grafik- und ... filearchitektur und programmierung von gra k- und...

26
Architektur und Programmierung von Grafik- und Koprozessoren Die Grafik Pipeline Stefan Zellmann Lehrstuhl f¨ ur Informatik, Universit¨ at zu K¨ oln SS2019

Upload: doanh

Post on 21-Aug-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Architektur und Programmierung von Grafik- undKoprozessorenDie Grafik Pipeline

Stefan Zellmann

Lehrstuhl fur Informatik, Universitat zu Koln

SS2019

Page 2: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

Page 3: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

I Unterschiedlich je nach Architektur (Hersteller / Chipset).

I Nicht fur alle Architekturen bekannt.I Referenzen:

I AMD: GDC2016: Right On Queue, Stephan Hodes, DanBaker, Dave Oldcorn.

I Nvidia: Life of a triangle - NVIDIA’s logical pipeline

Page 4: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

Beispiel AMD Graphics Core Next Architektur (2012).

CommandProcessor

ShaderControl

L1

TextureUnits

L1

FrameBuffer

L1

L1I/D

CU

L1

CU

L1 16kb VectorData Cache16kb Scalar D

32kb Instr.

L2

CU

L1

CU

L1

DDR3

DMAEngines

Data Crossbar

Abbildung: vgl. White Paper AMD Graphics Cores Next (GCN)Architecture & GDC2016: Right on Queue.

Page 5: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

CommandProcessor

ShaderControl

L1

TextureUnits

L1

FrameBuffer

L1

L1I/D

CU

L1

CU

L1 16kb VectorData Cache16kb Scalar D

32kb Instr.

L2

CU

L1

CU

L1

DDR3

DMAEngines

Data Crossbar

I Exemplarisch an GCN. Keinesymmetrische CacheHierarchie wie bei CPUNUMA.

I Compute Units (CU) (a.k.a.Core a.k.a. SM). Lokalerund geteilter L1.

I Manche funktionaleEinheiten haben L1, derdirekt an Speicherangebunden.

I DMA Engines umgehenCache vollstandig.

Page 6: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

CommandProcessor

ShaderControl

L1

TextureUnits

L1

FrameBuffer

L1

L1I/D

CU

L1

CU

L1 16kb VectorData Cache16kb Scalar D

32kb Instr.

L2

CU

L1

CU

L1

DDR3

DMAEngines

Data Crossbar

I In Wirklichkeit nochkomplizierter: mehrereTexture Units und ROPs.

I Nicht ein großer L2 Cache.

I Cache Koharenz - L1 Cachesder CUs werden durchFlushes nach L2 koharentgehalten.

I Synchronisation durchkomplexe Speicherhierarchienoch schwieriger ⇒moderne APIs: BarrierSynchronisation Teil derApplikation, nicht Treiber.

Page 7: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

GPU Cache Hierarchien

Pipeline Stages / Raster Engines etc. kommunizieren nur uberCaches. Nvidia: Crossbar koordiniert die Kommunikation.Framebuffer in VRAM.

L1 & L2 Caches

VertexFetch

VertexStage ... Rasterizer Fragment

StageROP

DRAM

Abbildung: vgl: Life of a triangle - NVIDIA’s logical pipeline

Page 8: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Last vs. Sort-Middle Architekturen

Page 9: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

I Auch: Tile-Based Rendering (nicht zu verwechseln mitKacheln bei Raster Engines!)

I Desktop GPUs implementieren traditionell Immediate-ModeRendering: Verarbeitung orientiert sich an Reihenfolge, in derDreiecke submittiert wurden (nicht zu verwechseln mitImmediate-Mode APIs!)

I Tile-Based Rendering hauptsachlich auf Mobile Architekturen.

I Mobile GPUs haufig limitiert durch externe SpeicherbandbreiteI Mobile Architekturen konzentrieren sich auf minimalen

Energieverbrauch.I Nvidia setzt Tile-Based Rendering seit Maxwell auch fur

Desktop GPUs ein (vgl. https://www.realworldtech.com/tile-based-rasterization-nvidia-gpus/ undhttps://www.youtube.com/watch?time_continue=324&v=

Nc6R1hwXhL8)

Page 10: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Immediate-Mode Rendering

Page 11: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Immediate-Mode Rendering

Page 12: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Immediate-Mode Rendering

Page 13: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Immediate-Mode Rendering

Page 14: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 15: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 16: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 17: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 18: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 19: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 20: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 21: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 22: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

Tile-Based Rendering

Page 23: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

I Tile-Based Rendering: Sort-Middle mit vergleichsweise großenKacheln (z. B. 128× 128 oder großer).

I Erfordert weiteren Schritt in der Grafik Pipeline: Binning.I Vor Scan Konvertierung muss ermittelt werden, welche

Dreiecke welche Kacheln uberdecken ⇒ Latenz: es mussgewartet werden, bis alle Dreiecke submittiert wurden.

Page 24: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Sort-Middle Architectures

I Vorteile:I Reduziert Speicherbandbreitebedarf - wegen raumlicher

Lokalitat innerhalb Kachel wird Cache besser ausgenutzt.I Weniger Speicherzugriffe ⇒ geringerer Energieverbrauch (vgl.

Vorlesung zu dynamischem Speicher).

I Nachteile:I Latenz - Scan Konvertierung kann erst beginnen, wenn alle

Dreiecke submittiert wurden.I Lastimbalanzen im Fall, dass Dreiecke das Anzeigerechteck

ungleichmaßig uberlappen.

Page 25: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Recap

I GPUs exponieren Parallelismus entlang der gesamten GrafikPipeline:I Asynchrones Host Interface.I Parallele Vertex Phase.I Mehrere Raster Engines.I Parallele Fragment Phase.

I Wichtiges Charakteristikum von Speicheroperationen aufGPUs:I Hohe Bandbreite, hohe Latenz.I Daher Kompressionsverfahren, Cache Hierarchien etc.

integraler Bestandteil von GPUs.

I Grafik Pipeline in Teilen als Fixed-Function Pipeline (ScanKonvertierung, Render Output) und in Teilen als freiprogrammierbare Pipeline (Vertices, Fragmente, Geometrie)implementiert.

Page 26: Architektur und Programmierung von Grafik- und ... fileArchitektur und Programmierung von Gra k- und Koprozessoren Die Gra k Pipeline Stefan Zellmann Lehrstuhl f ur Informatik, Universit

Literaturempfehlungen

I Matthew Eldridge, Homan Igehy, Pat Hanrahan:Pomegranate: A Fully Scalable Graphics Architecture,Siggraph 2000.

I Diverse “Grey Literature” (vgl. IHV Whitepapers und sonstigeOnline-Quellen in Folien). Außerdem:I Fabian Giesens Blog “A trip through the graphics pipeline”:

https://fgiesen.wordpress.com/2011/07/09/

a-trip-through-the-graphics-pipeline-2011-index/I GPU Framebuffer Memory: Understanding Tiling (Samsung):

https://developer.samsung.com/game/gpu-framebuffer