Programmation GPU

Combien d'étapes faut-il pour sommer 1024 valeurs par une réduction en arbre ?

  1. A10
  2. B512
  3. C1023
Afficher la réponse et l'explication

Réponse : A. 10

Le nombre de valeurs étant divisé par deux à chaque étape, 1024→512→256→…→1, il faut 10 divisions par deux pour arriver à 1. Le nombre d'étapes vaut donc log2 1024=10. Le nombre total d'additions, 512+256+…+1=1023, est le même qu'avec un seul thread additionnant séquentiellement, mais avec seulement 10 étapes, le calcul est très rapide si les threads sont suffisamment nombreux.

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

Autres questions sur Programmation GPU

  1. Dans un programme utilisant un GPU discret, quel énoncé est généralement correct au sujet de la mémoire côté CPU et côté GPU ?
  2. Envoyer des données au GPU pour un traitement léger, comme une seule addition par élément d'un tableau, peut être plus lent qu'un calcul sur CPU. Quelle en est la raison principale ?
  3. Pourquoi le transfert vers le GPU est-il plus rapide lorsque la mémoire CPU est épinglée (verrouillée en pages) ?
  4. Quel est l'objectif principal de l'utilisation de plusieurs flux (streams) CUDA ?
  5. Un programme qui lance des milliers de fois de suite des noyaux très petits est lent. Quelle amélioration est la plus appropriée ?

Comparatifs sur ce thème