GPU-programmeren
Een array van 1000 elementen moet worden verwerkt met 256 threads per block en één element per thread. Welk aantal blocks dat moet worden gestart is juist?
- A3
- B4
- C1000
Antwoord en toelichting tonen
Antwoord: B. 4
1000÷256≈3,9; als naar beneden wordt afgerond tot 3 blocks, worden slechts 256×3=768 elementen verwerkt en blijft de rest liggen. Er worden daarom naar boven afgerond 4 blocks (1024 threads) gestart, en de overgebleven 24 threads moeten niets doen. In het algemeen rondt men naar boven af met een berekening zoals '(n + 256 - 1) / 256'. Binnen de kernel moet het nummer worden gecontroleerd, zodat de overgebleven threads niet buiten de array lezen of schrijven.