Cache Kohärenz
Wenn mehrere Kerne eigene Caches besitzen, können dieselben Daten in mehreren Caches liegen. Cache-Kohärenz sorgt dafür, dass diese Kopien konsistent behandelt werden.
Protokoll zur Zustandüberwachung der Caches
MESI
M = Modified -> unterschied Hauptspeicher
E = Exlusive -> Nur im Cache unverändert
S = Shared -> Mehrere Caches unverändert
I = Invalid -> ungültig
Architektur verwendet bei GPUs
SIMT Architektur
Single Instruction, Multiple Threads
eine Sprungvorhersage und keine spekulative Ausführung
➢ Daher nur wenig Kontrollhardware
▪ sehr schnelle Threadwechsel
▪ CPU hingegen benötigt viel Zeit für Threadwechsel bzw.
Erstellung
Sync auf GPU Ebene
WorkgroupBarrier
storageBarrier
Bank conflikts
Shared Memorie in Bänke aufgeteilt. Zugriffe immer nur ganz. 2 Zugriffe werden Serializiert.
Ablauf Scan Algorithmus
Folie 11
Exclusive Scan (Blelloch)
wende für jedes Element den Operator auf alle vorhergehenden Elemente an
Blelloch:
Upsweep
2 immer zusammenrechnen
Downsweep
L -> R mit L+R
R -> L
Inclusive Scan (Hillis/Steele)
wende für jedes Element den Operator auf alle vorhergehenden und das aktuelle Elemente an
Hillis/Steele: Immer zwei zusammenrechnen
Summed Area Table:
Sortieren
Folie 12
Odd-Even-Sort
Radixsort -> Binär nach Spalte Sortieren
Parralel in Blöcke aufteilen
Onesweep
?
Bitonic Merge
(engl. bitonic sequence) ist eine Zahlenfolge, die zuerst monoton steigt und dann monoton fällt oder umgekehrt.
Hashing
Unifromes Gitter
Aufteilen in Grid
Scan
Nachteil: 2 Durchläufe: Wer ist in welcher Cell? Wer ist mit wem in einer Cell
Sorting
Sort Cell mit PixelID
Durchgehen und Cell vergleichen
Spatial Hashing
Aufbau mit Hashtabelle
Double Hashing
Zuletzt geändertvor 9 Tagen