GPU-Programmierung

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?

  1. AHTML
  2. BSQL
  3. COpenCL
Antwort und Erläuterung anzeigen

Antwort: C. OpenCL

CUDA ist ein Mechanismus für NVIDIA-GPUs, OpenCL dagegen ein von einem Branchenverband festgelegter Standard, der auf GPUs und CPUs mehrerer Hersteller sowie auf FPGAs usw. verwendet werden kann. Weitere sind SYCL, das in C++ geschrieben wird, und HIP für AMD-GPUs mit einer CUDA ähnlichen Schreibweise. Auch bei unterschiedlicher Schreibweise sind die Prinzipien wie Thread-Hierarchie, Shared Memory, Memory Coalescing und das Angleichen von Verzweigungen gemeinsam.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu GPU-Programmierung

  1. 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?
  2. Welche Voraussetzung gilt es beim Schreiben von GPU-Kerneln zu beachten?
  3. 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?
  4. Welche Aussage zum Verhalten unmittelbar nach dem Start eines Kernels durch das CPU-seitige Programm in CUDA ist im Allgemeinen richtig?
  5. Welche Aussage zum Unterschied in der Entwurfsphilosophie von CPU und GPU ist richtig?

Vergleiche zu diesem Thema