Programmation GPU

Dans un programme utilisant un GPU discret, quel énoncé est généralement correct au sujet de la mémoire côté CPU et côté GPU ?

  1. ACe sont des mémoires distinctes : les données sont copiées vers le GPU avant le calcul, puis le résultat est recopié vers le CPU
  2. BC'est la même mémoire, aucune copie n'est nécessaire
  3. CLe GPU ne peut pas conserver les résultats de calcul
Afficher la réponse et l'explication

Réponse : A. Ce sont des mémoires distinctes : les données sont copiées vers le GPU avant le calcul, puis le résultat est recopié vers le CPU

Un GPU discret dispose sur sa carte d'une mémoire dédiée GDDR ou HBM, reliée à la mémoire du CPU notamment par PCI Express. Le déroulement de base consiste donc à copier les données de la mémoire CPU vers la mémoire GPU, lancer le noyau, puis recopier le résultat vers la mémoire CPU. Le temps de ces copies conditionne souvent les performances globales.

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

Autres questions sur Programmation GPU

  1. Envoyer des données au GPU pour un traitement léger, comme une seule addition par élément d'un tableau, peut être plus lent qu'un calcul sur CPU. Quelle en est la raison principale ?
  2. Pourquoi le transfert vers le GPU est-il plus rapide lorsque la mémoire CPU est épinglée (verrouillée en pages) ?
  3. Quel est l'objectif principal de l'utilisation de plusieurs flux (streams) CUDA ?
  4. 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 ?
  5. Quelle est la définition de la mémoire unifiée (unified memory) de CUDA ?

Comparatifs sur ce thème