Programmation GPU
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 ?
- ALa transposition de matrice
- BLa somme préfixe (scan, somme cumulée depuis le début)
- CLa transformée de Fourier rapide
Afficher la réponse et l'explication
Réponse : B. La somme préfixe (scan, somme cumulée depuis le début)
En représentant par 0 ou 1 le fait que chaque thread produise une sortie et en calculant la somme cumulée depuis le début (somme préfixe exclusive), la valeur de chaque thread devient « le nombre de threads produisant une sortie avant lui », qui est directement son adresse d'écriture. Le scan se calcule en parallèle en arbre, comme la réduction. C'est l'outil de base pour écrire de façon compacte, en restant parallèle, des traitements dont le nombre de sorties varie selon l'élément.