Programmation GPU

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 ?

  1. AHTML
  2. BSQL
  3. COpenCL
Afficher la réponse et l'explication

Réponse : C. OpenCL

CUDA est destiné aux GPU NVIDIA, tandis qu'OpenCL est une norme définie par un consortium industriel, utilisable sur les GPU, CPU, FPGA, etc. de plusieurs fabricants. Il existe aussi SYCL, qui s'écrit en C++, et HIP, destiné aux GPU AMD avec une écriture proche de CUDA. Malgré des syntaxes différentes, les principes sont communs : hiérarchie des threads, mémoire partagée, accès coalescé, uniformisation des branchements.

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

Autres questions sur Programmation GPU

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

Comparatifs sur ce thème