Programmation GPU

Pour quel type d'accès la mémoire constante de CUDA est-elle particulièrement rapide ?

  1. ALorsque tous les threads d'un warp lisent la même adresse (une seule lecture diffusée à tous)
  2. BLorsque chaque thread d'un warp écrit à une adresse différente
  3. CLorsque chaque thread d'un warp lit aléatoirement une adresse différente
Afficher la réponse et l'explication

Réponse : A. Lorsque tous les threads d'un warp lisent la même adresse (une seule lecture diffusée à tous)

La mémoire constante est une petite zone non modifiée pendant l'exécution du noyau, dotée d'un cache dédié. Lorsque tous les threads d'un warp lisent la même adresse, le résultat d'une seule lecture est diffusé à tous, ce qui est très rapide. Elle convient aux valeurs utilisées par tous les threads, comme les coefficients d'un filtre d'image ou les paramètres d'une simulation physique. Si les adresses sont dispersées, les lectures se scindent et deviennent au contraire plus lentes.

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

Autres questions sur Programmation GPU

  1. Quelle est la caractéristique générale des caches GPU par rapport à ceux des CPU ?
  2. Quel est un exemple de mécanisme de programmation pour le calcul parallèle sur GPU et autres, utilisable aussi sur des GPU autres que NVIDIA ?
  3. Sur GPU, on veut extraire d'un tableau les seuls éléments satisfaisant une condition et les écrire de façon compacte dans un autre tableau (chaque thread produit 0 ou 1 sortie). Quel calcul parallèle est couramment utilisé pour déterminer l'adresse d'écriture de chaque thread ?
  4. Quelle hypothèse faut-il respecter lors de l'écriture d'un noyau GPU ?
  5. Lors de la transposition d'une grande matrice sur GPU (b[j][i] = a[i][j]), quel est l'objectif principal du passage par la mémoire partagée ?

Comparatifs sur ce thème