GPU-Programmierung

Welche Aussage zu den Caches der GPU im Vergleich zur CPU ist im Allgemeinen richtig?

  1. ADie GPU hat überhaupt keine Caches
  2. BAuch die GPU hat L1- und L2-Caches, doch da sehr viele Threads gleichzeitig laufen, ist die Cache-Kapazität pro Thread viel kleiner
  3. CDie Caches der GPU sind pro Thread um ein Vielfaches größer als bei der CPU
Antwort und Erläuterung anzeigen

Antwort: B. Auch die GPU hat L1- und L2-Caches, doch da sehr viele Threads gleichzeitig laufen, ist die Cache-Kapazität pro Thread viel kleiner

Auch die GPU besitzt einen L1-Cache je SM und einen vom gesamten Chip geteilten L2-Cache; da jedoch zehntausende Threads gleichzeitig laufen, ist die je Thread nutzbare Kapazität um Größenordnungen kleiner als bei einem Thread der CPU. Der Gedanke der GPU besteht nicht darin, Latenz über den Cache zu verringern, sondern sie durch das Umschalten zwischen vielen Warps zu verbergen und die Speichernutzung durch Coalescing und Shared Memory geschickt zu gestalten.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu GPU-Programmierung

  1. Welches ist ein Beispiel für einen Programmiermechanismus für paralleles Rechnen auf GPUs usw., der auch auf anderen GPUs als denen von NVIDIA verwendet werden kann?
  2. Auf der GPU sollen nur die Elemente eines Arrays, die eine Bedingung erfüllen, herausgenommen und kompakt in ein anderes Array geschrieben werden (jeder Thread gibt 0 oder 1 Wert aus). Welche parallele Berechnung wird häufig verwendet, um die Schreibadresse jedes Threads zu bestimmen?
  3. Welche Voraussetzung gilt es beim Schreiben von GPU-Kerneln zu beachten?
  4. Was ist der Hauptzweck, beim Transponieren einer großen Matrix auf der GPU (b[j][i] = a[i][j]) über den Shared Memory zu gehen?
  5. Welche Aussage zum Verhalten unmittelbar nach dem Start eines Kernels durch das CPU-seitige Programm in CUDA ist im Allgemeinen richtig?

Vergleiche zu diesem Thema