GPU-programmeren

Welk voorbeeld van een programmeermechanisme voor parallelle berekeningen op GPU's e.d., dat ook voor andere GPU's dan die van NVIDIA kan worden gebruikt, is juist?

  1. AHTML
  2. BSQL
  3. COpenCL
Antwoord en toelichting tonen

Antwoord: C. OpenCL

CUDA is een mechanisme voor NVIDIA-GPU's, maar OpenCL is een door een branchevereniging vastgestelde standaardspecificatie die kan worden gebruikt op GPU's van meerdere bedrijven, CPU's, FPGA's e.d. Andere voorbeelden zijn SYCL, dat in C++ kan worden geschreven, en HIP voor AMD-GPU's, met een schrijfwijze die dicht bij CUDA ligt. Ook al is de schrijfwijze verschillend, de principes zijn gemeenschappelijk: de hiërarchie van threads, shared memory, coalesced toegang en het gelijk maken van sprongen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Op een GPU wil men alleen de elementen die aan een voorwaarde voldoen uit een array halen en in een andere array compact wegschrijven (elke thread levert 0 of 1 uitvoer). Welke parallelle berekening wordt veel gebruikt om het schrijfadres van elke thread te bepalen?
  2. Welke uitspraak over een uitgangspunt dat bij het schrijven van GPU-kernels moet worden aangehouden, is juist?
  3. Wat is het belangrijkste doel van het laten lopen via shared memory bij het transponeren van een grote matrix op een GPU (b[j][i] = a[i][j])?
  4. Welke uitspraak is in het algemeen juist over wat er in CUDA gebeurt direct nadat het programma aan de CPU-zijde een kernel start?
  5. Welke uitspraak over het verschil in ontwerpfilosofie tussen CPU en GPU is juist?

Vergelijkingen bij dit onderwerp