GPU-Programmierung

Wie heißt bei NVIDIA-GPUs die Einheit, in der 32 Threads zu einem Bündel zusammengefasst werden und dieselbe Anweisung gleichzeitig ausführen?

  1. AWarp
  2. BGrid
  3. CPage
Antwort und Erläuterung anzeigen

Antwort: A. Warp

Die Threads eines Blocks werden in der Hardware in Warps zu je 32 Threads aufgeteilt, und die 32 Threads eines Warps führen dieselbe Anweisung gleichzeitig auf unterschiedlichen Daten aus. Diese Methode, als Threads geschriebene Programme in Bündeln mit derselben Anweisung auszuführen, heißt SIMT. Bei AMD-GPUs heißt eine ähnliche Einheit Wavefront und umfasst 64 oder 32 Threads. Grundsätzlich sollte die Blockgröße ein Vielfaches von 32 sein.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu GPU-Programmierung

  1. Welche Aussage zum Unterschied zwischen dem SIMT-Verfahren (Single Instruction, Multiple Threads) der GPU und SIMD-Befehlen der CPU ist richtig?
  2. Innerhalb eines Warps teilt sich durch eine bedingte Verzweigung eine Hälfte der Threads auf die if-Seite und die andere Hälfte auf die else-Seite auf (Warp Divergence). Wie wird dies im Allgemeinen ausgeführt?
  3. Beide Varianten (1) und (2) oben lassen eine Hälfte der Threads A und die andere Hälfte B ausführen. Welche Aussage zur Warp-Effizienz ist richtig (ein Warp habe 32 Threads)?
  4. Welche Aussage zum Memory Coalescing der GPU ist richtig?
  5. Wird, wie oben gezeigt, mit der Thread-Nummer i ein Array in Abständen von 32 Elementen gelesen, ist dies langsamer als das Lesen von a[i]. Was ist der Hauptgrund?

Vergleiche zu diesem Thema