Programmation GPU

Quelle est la caractéristique la plus adaptée d'une tâche que le GPU traite rapidement ?

  1. AUn calcul séquentiel en chaîne, où chaque étape utilise le résultat précédent
  2. BUn même calcul, indépendant pour chaque élément, appliqué à de grandes quantités de données
  3. CUn calcul sur peu de données comportant de très nombreux branchements conditionnels
Afficher la réponse et l'explication

Réponse : B. Un même calcul, indépendant pour chaque élément, appliqué à de grandes quantités de données

Le GPU répartit un même traitement sur des milliers de threads exécutés en parallèle ; il excelle donc dans les tâches où de nombreux éléments peuvent être calculés indépendamment (parallélisme de données), comme le traitement de chaque pixel d'une image, la multiplication de matrices ou les opérations vectorielles. Les calculs séquentiels dépendant du résultat précédent, ou les calculs sur peu de données avec beaucoup de branchements, offrent peu de parallélisme, et le CPU y est souvent plus rapide.

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

Autres questions sur Programmation GPU

  1. Quel traitement tend à être peu efficace lorsqu'il est exécuté sur GPU ?
  2. Quelle est la définition du « noyau » (kernel) en programmation GPU, par exemple en CUDA ?
  3. Quelle est la hiérarchie correcte des threads en CUDA (du plus grand au plus petit) ?
  4. 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 ?
  5. 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 ?

Comparatifs sur ce thème