GPU-programmeren

Bij welke toegang werkt CUDA constant memory bijzonder snel?

  1. AWanneer alle threads van een warp hetzelfde adres lezen (één leesactie kan aan iedereen worden uitgedeeld)
  2. BWanneer de threads van een warp elk naar een ander adres schrijven
  3. CWanneer de threads van een warp elk willekeurig een ander adres lezen
Antwoord en toelichting tonen

Antwoord: A. Wanneer alle threads van een warp hetzelfde adres lezen (één leesactie kan aan iedereen worden uitgedeeld)

Constant memory is een klein gebied dat tijdens de uitvoering van de kernel niet wordt herschreven en een eigen cache heeft. Als alle threads van een warp hetzelfde adres lezen, kan het resultaat van één leesactie in één keer aan iedereen worden uitgedeeld, zodat zeer snel wordt gelezen. Het is geschikt voor gevallen waarin alle threads dezelfde waarde gebruiken, zoals filtercoëfficiënten van beelden of parameters van natuurkundige simulaties. Bij verspreide adressen splitsen de leesacties zich en wordt het juist trager.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Welke uitspraak is juist over een kenmerk van GPU-caches in vergelijking met CPU's?
  2. 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?
  3. 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?
  4. Welke uitspraak over een uitgangspunt dat bij het schrijven van GPU-kernels moet worden aangehouden, is juist?
  5. 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])?

Vergelijkingen bij dit onderwerp