GPU-Programmierung

Welches Merkmal beschreibt Aufgaben, die sich auf der GPU schnell verarbeiten lassen, am besten?

  1. AEine sequenzielle, verkettete Berechnung, die das vorherige Ergebnis für die nächste Berechnung nutzt
  2. BDieselbe, voneinander unabhängige Berechnung für jedes Element einer großen Datenmenge
  3. CBerechnungen mit wenig Daten und sehr vielen bedingten Verzweigungen
Antwort und Erläuterung anzeigen

Antwort: B. Dieselbe, voneinander unabhängige Berechnung für jedes Element einer großen Datenmenge

Die GPU verteilt dieselbe Verarbeitung auf Tausende Threads und führt sie parallel aus; sie spielt ihre Stärke daher bei Aufgaben aus, in denen viele Elemente unabhängig berechnet werden können (Datenparallelität), etwa bei der Verarbeitung der Pixel eines Bildes, Matrixmultiplikationen und Vektoroperationen. Bei sequenziellen Berechnungen, die vom vorherigen Ergebnis abhängen, oder bei Berechnungen mit wenig Daten und vielen Verzweigungen ist der parallelisierbare Anteil gering, und die CPU ist oft schneller.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu GPU-Programmierung

  1. Welche Verarbeitung läuft auf der GPU tendenziell ineffizient?
  2. Welche Aussage zum „Kernel“ in der GPU-Programmierung, etwa mit CUDA, ist richtig?
  3. Welche Kombination der Thread-Hierarchie in CUDA ist richtig (von groß nach klein)?
  4. In einem CUDA-Kernel wird die Nummer i jedes Threads mit der oben gezeigten Formel bestimmt. Welchen Wert hat i für den Thread mit blockIdx.x=2, blockDim.x=256 und threadIdx.x=5?
  5. Ein Array mit 1000 Elementen soll mit 256 Threads pro Block verarbeitet werden, wobei jeder Thread ein Element bearbeitet. Wie viele Blöcke müssen gestartet werden?

Vergleiche zu diesem Thema