Programmation GPU

Quel est l'objectif principal de l'utilisation de plusieurs flux (streams) CUDA ?

  1. AAugmenter le flux d'air de refroidissement du GPU
  2. BRecouvrir les transferts de données et l'exécution des noyaux pour réduire le temps total
  3. CAméliorer la qualité de diffusion vidéo
Afficher la réponse et l'explication

Réponse : B. Recouvrir les transferts de données et l'exécution des noyaux pour réduire le temps total

Un flux est une file ordonnée de traitements envoyés au GPU (transferts et lancements de noyaux). Au sein d'un même flux, l'exécution suit l'ordre, mais les traitements de flux différents peuvent progresser simultanément. En découpant les données pour transférer la deuxième partie pendant le calcul de la première, l'essentiel des temps de transfert et de calcul se recouvre et le temps total diminue.

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

Autres questions sur Programmation GPU

  1. Un programme qui lance des milliers de fois de suite des noyaux très petits est lent. Quelle amélioration est la plus appropriée ?
  2. Quelle est la définition de la mémoire unifiée (unified memory) de CUDA ?
  3. Lors de l'addition élément par élément de deux grands tableaux sur GPU (c[i] = a[i] + b[i]), qu'est-ce qui détermine principalement les performances ?
  4. Pourquoi, sur de nombreux GPU grand public pour le jeu, les performances en double précision (FP64) sont-elles bien inférieures (par exemple quelques dizaines de fois) à celles en simple précision (FP32) ?
  5. Quelle est la caractéristique des Tensor Cores (unités de calcul matriciel) des GPU récents ?

Comparatifs sur ce thème