Programmation GPU
On suppose qu'un SM de GPU possède une seule unité d'émission capable d'émettre à chaque cycle les instructions d'un warp. Chaque warp émet de façon répétée 20 cycles d'instructions, puis attend 400 cycles le résultat d'une lecture en mémoire. Si le changement de warp ne prend pas de temps, combien de warps faut-il au minimum pour supprimer le temps d'inactivité dû aux attentes mémoire (masquage de latence) ?
- A21
- B2
- C420
Afficher la réponse et l'explication
Réponse : A. 21
Un warp ne peut émettre des instructions que pendant 20 cycles sur 420 (20 + 400). Pour occuper en permanence l'unité d'émission, 420 ÷ 20 = 21 warps doivent se relayer : pendant qu'un warp attend 400 cycles, les 20 autres remplissent ce temps en émettant chacun 20 cycles d'instructions. Avec trop peu de warps, l'attente se répercute sur les performances et les unités d'exécution restent inactives. Sur un GPU réel, le nombre nécessaire dépend de la durée d'attente et de la composition des instructions, et l'attente peut aussi être comblée en augmentant, au sein d'un même warp, le nombre d'instructions indépendantes les unes des autres (parallélisme au niveau des instructions).