Programmation GPU

Comment appelle-t-on, sur les GPU NVIDIA, l'unité regroupant 32 threads qui exécutent simultanément la même instruction ?

  1. AWarp
  2. BGrille
  3. CPage
Afficher la réponse et l'explication

Réponse : A. Warp

Dans le matériel, les threads d'un bloc sont répartis en warps de 32, et les 32 threads d'un warp exécutent la même instruction simultanément sur des données différentes. Ce mode, qui regroupe un programme écrit sous forme de threads pour l'exécuter avec une même instruction, s'appelle SIMT. Sur les GPU AMD, l'unité équivalente s'appelle wavefront et compte 64 ou 32 threads. La taille de bloc doit en principe être un multiple de 32.

S'entraîner sur ce thème Retour au thème

Autres questions sur Programmation GPU

  1. Quelle est la différence entre le mode SIMT (instruction unique, threads multiples) des GPU et les instructions SIMD des CPU ?
  2. Dans un warp, un branchement conditionnel envoie la moitié des threads dans la branche if et l'autre moitié dans la branche else (divergence de warp). Comment l'exécution se déroule-t-elle généralement ?
  3. Les codes (1) et (2) ci-dessus font tous deux exécuter A à la moitié des threads et B à l'autre moitié. Quelle explication est correcte du point de vue de l'efficacité des warps (32 threads par warp) ?
  4. Quelle est la définition de l'accès mémoire coalescé (coalescing) sur GPU ?
  5. Avec i l'indice de chaque thread, lire le tableau tous les 32 éléments comme ci-dessus est plus lent que lire a[i]. Quelle en est la raison principale ?

Comparatifs sur ce thème