Programmation GPU

Quelle est la définition du « noyau » (kernel) en programmation GPU, par exemple en CUDA ?

  1. ALa partie centrale du système d'exploitation du GPU
  2. BUne fonction exécutée simultanément par de nombreux threads sur le GPU
  3. CUn composant refroidissant la puce GPU
Afficher la réponse et l'explication

Réponse : B. Une fonction exécutée simultanément par de nombreux threads sur le GPU

En programmation GPU, un noyau est une fonction lancée depuis le programme côté CPU et dont le même code est exécuté par de nombreux threads sur le GPU. Chaque thread utilise son propre indice pour choisir l'élément de données dont il est chargé. Pour une addition de tableaux par exemple, on écrit le noyau pour qu'un thread additionne un élément, et l'on lance autant de threads que d'éléments. Le mot est le même que pour le noyau d'un système d'exploitation, mais le sens diffère.

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

Autres questions sur Programmation GPU

  1. Quelle est la hiérarchie correcte des threads en CUDA (du plus grand au plus petit) ?
  2. Dans un noyau CUDA, l'indice i de chaque thread est obtenu par l'expression ci-dessus. Que vaut i pour le thread tel que blockIdx.x=2, blockDim.x=256 et threadIdx.x=5 ?
  3. On veut traiter un tableau de 1000 éléments à raison d'un élément par thread, avec 256 threads par bloc. Combien de blocs faut-il lancer ?
  4. Pourquoi le noyau CUDA ci-dessus contient-il « if (i < n) » ?
  5. Comment appelle-t-on, sur les GPU NVIDIA, l'unité regroupant 32 threads qui exécutent simultanément la même instruction ?

Comparatifs sur ce thème