Programmation GPU
Dans un noyau CUDA, l'indice i de chaque thread est obtenu par l'expression ci-dessus. Que vaut i pour le thread tel que blockIdx.x=2, blockDim.x=256 et threadIdx.x=5 ?
int i = blockIdx.x * blockDim.x + threadIdx.x;
- A517
- B263
- C2565
Afficher la réponse et l'explication
Réponse : A. 517
blockIdx.x est l'indice du bloc dans la grille, blockDim.x le nombre de threads par bloc et threadIdx.x l'indice du thread dans le bloc. Le bloc 0 traite 0 à 255 et le bloc 1 256 à 511 ; le thread 5 du bloc 2 a donc l'indice 2×256+5=517. Cette expression attribue à tous les threads un numéro global sans recouvrement, qui détermine l'élément du tableau dont chacun est chargé.