Programmation GPU
On veut traiter un tableau de 1000 éléments à raison d'un élément par thread, avec 256 threads par bloc. Combien de blocs faut-il lancer ?
- A3
- B4
- C1000
Afficher la réponse et l'explication
Réponse : B. 4
1000÷256≒3,9 ; en arrondissant à 3 blocs, seuls 256×3=768 éléments seraient traités et le reste serait omis. On arrondit donc à 4 blocs (1024 threads) et les 24 threads excédentaires ne font rien. On calcule généralement l'arrondi supérieur sous la forme « (n + 256 - 1) / 256 ». Il faut vérifier l'indice dans le noyau pour que les threads excédentaires ne lisent ni n'écrivent hors du tableau.