Programmation GPU

Quelle est la caractéristique générale des caches GPU par rapport à ceux des CPU ?

  1. ALes GPU n'ont aucun cache
  2. BLes GPU ont aussi des caches L1 et L2, mais le nombre de threads simultanés étant très élevé, la capacité de cache par thread est bien plus faible
  3. CLe cache GPU par thread est plusieurs fois plus grand que celui d'un CPU
Afficher la réponse et l'explication

Réponse : B. Les GPU ont aussi des caches L1 et L2, mais le nombre de threads simultanés étant très élevé, la capacité de cache par thread est bien plus faible

Les GPU disposent aussi d'un cache L1 par SM et d'un cache L2 partagé par toute la puce, mais plusieurs dizaines de milliers de threads s'exécutant simultanément, la capacité disponible par thread est d'un ordre de grandeur inférieure à celle d'un thread CPU. La philosophie du GPU n'est pas de compter sur le cache pour réduire la latence, mais de la masquer par le basculement entre de nombreux warps et d'optimiser l'usage mémoire par l'accès coalescé et la mémoire partagée.

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

Autres questions sur Programmation GPU

  1. 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 ?
  2. 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 ?
  3. Quelle hypothèse faut-il respecter lors de l'écriture d'un noyau GPU ?
  4. 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 ?
  5. En CUDA, quel est généralement le comportement juste après le lancement d'un noyau par le programme côté CPU ?

Comparatifs sur ce thème