GPU-programmeren

Hoeveel stappen zijn nodig om 1024 waarden met een reductie in boomvorm te sommeren?

  1. A10
  2. B512
  3. C1023
Antwoord en toelichting tonen

Antwoord: A. 10

In elke stap wordt het aantal waarden gehalveerd: 1024→512→256→…→1, dus tot 1 wordt 10 keer gehalveerd. Het aantal stappen is dus log2 1024=10. Het totale aantal optellingen is 512+256+…+1=1023, hetzelfde als wanneer één thread achter elkaar optelt, maar omdat er maar 10 stappen zijn, is het met voldoende threads zeer snel klaar.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over GPU-programmeren

  1. Welke uitspraak is in het algemeen juist over het geheugen aan de CPU-zijde en dat aan de GPU-zijde bij een programma dat een discrete GPU gebruikt?
  2. Bij lichte bewerkingen zoals het één keer optellen van array-elementen kan het sturen van data naar de GPU trager zijn dan rekenen op de CPU. Wat is de belangrijkste reden?
  3. Welke reden waarom overdracht naar de GPU sneller gaat nadat het CPU-geheugen is vastgepind (page-locked), is juist?
  4. Wat is het belangrijkste doel van het gebruik van meerdere CUDA-streams?
  5. Een programma dat duizenden keren achter elkaar zeer kleine kernels start is traag. Welke verbetermethode is het meest passend?

Vergelijkingen bij dit onderwerp