GPU-programmeren

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?

  1. AMatrixtranspositie
  2. BPrefix sum (scan, cumulatieve som van voren af)
  3. CSnelle Fouriertransformatie
Antwoord en toelichting tonen

Antwoord: B. Prefix sum (scan, cumulatieve som van voren af)

Als voor elke thread met 0 of 1 wordt aangegeven of hij een uitvoer levert en de cumulatieve som van voren af (exclusieve prefix sum) wordt bepaald, wordt de waarde van elke thread 'het aantal threads vóór hem dat een uitvoer levert', en dat is direct het schrijfadres. Een scan kan net als een reductie in boomvorm parallel worden berekend. Het is een basisinstrument om bewerkingen waarvan het aantal uitvoeren per element verschilt, parallel compact weg te schrijven.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Welke uitspraak over een uitgangspunt dat bij het schrijven van GPU-kernels moet worden aangehouden, is juist?
  2. 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])?
  3. Welke uitspraak is in het algemeen juist over wat er in CUDA gebeurt direct nadat het programma aan de CPU-zijde een kernel start?
  4. Welke uitspraak over het verschil in ontwerpfilosofie tussen CPU en GPU is juist?
  5. Welk kenmerk van werk dat op een GPU snel kan worden verwerkt is het meest passend?

Vergelijkingen bij dit onderwerp