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
Last changed9 days ago