GPU-programmeren

Welke algemene richtlijn voor het bepalen van het aantal threads per block in CUDA is juist?

  1. AEen veelvoud van de warpgrootte van 32 (zoals 128 of 256)
  2. BAltijd 1
  3. CAltijd een priemgetal
Antwoord en toelichting tonen

Antwoord: A. Een veelvoud van de warpgrootte van 32 (zoals 128 of 256)

De threads van een block worden in warps van 32 verdeeld, dus bij bijvoorbeeld 100 threads gebruikt de laatste warp er maar 4 en gaan de uitvoeringsplaatsen van de overige 28 verloren. Met een veelvoud van 32 kan elke warp volledig worden benut. In de praktijk worden vaak circa 128 tot 256 threads gebruikt, bijgesteld aan de hand van occupancy en het gebruik van shared memory.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Welk voordeel van het schrijven van een kernel met een lus zoals hierboven (grid-stride loop) is juist?
  2. Bij welke toegang werkt CUDA constant memory bijzonder snel?
  3. Welke uitspraak is juist over een kenmerk van GPU-caches in vergelijking met CPU's?
  4. 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?
  5. 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?

Vergelijkingen bij dit onderwerp