Programmation GPU

Quelle est la définition de l'occupation (occupancy) d'un GPU ?

  1. ALa proportion de la surface de la puce GPU occupée par les unités de calcul
  2. BLe rapport entre le nombre de warps effectivement chargés et le nombre maximal de warps pouvant être chargés simultanément sur un SM
  3. CLa proportion de la mémoire GPU remplie de données
Afficher la réponse et l'explication

Réponse : B. Le rapport entre le nombre de warps effectivement chargés et le nombre maximal de warps pouvant être chargés simultanément sur un SM

Le nombre de warps qu'un SM peut charger simultanément est plafonné, et le nombre effectivement chargé dépend des registres par thread, de la mémoire partagée par bloc, de la taille des blocs, etc. Ce rapport est l'occupation. Si elle est faible, peu de warps peuvent s'exécuter à la place de ceux qui attendent la mémoire, et les unités de calcul restent facilement inactives. CUDA fournit aussi des outils de calcul de l'occupation.

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

Autres questions sur Programmation GPU

  1. Quelle est la principale méthode par laquelle le GPU masque la longue latence mémoire (plusieurs centaines de cycles) ?
  2. Quel énoncé est correct au sujet de l'occupation d'un GPU ?
  3. Quelle est la relation entre les blocs et les SM (multiprocesseurs de flux) en CUDA ?
  4. En CUDA, on veut, au milieu d'un noyau, attendre que tous les autres blocs aient terminé leur calcul avant de passer à l'étape suivante. Quelle est la méthode usuelle ?
  5. Pour construire sur GPU l'histogramme des valeurs de pixels, faire ajouter directement par tous les threads via atomicAdd dans les 256 cases en mémoire globale peut être lent. Quelle méthode l'améliore ?

Comparatifs sur ce thème