CUDA tutorial/fr: Difference between revisions

no edit summary
(Created page with "Il manque certainement quelque chose; ce code n’a pas une allure parallèle… Comme solution, modifions le contenu du kernel entre <<< et >>>. <syntaxhighlight lang="cpp"...")
No edit summary
Line 58: Line 58:
[[File:Cuda-threads-blocks.png|thumbnail|Figure 1. Les fils sont groupés en blocs qui forment une grille. ]]
[[File:Cuda-threads-blocks.png|thumbnail|Figure 1. Les fils sont groupés en blocs qui forment une grille. ]]
Pour obtenir un parallélisme intensif, on doit utiliser le plus le fils possible; puisqu'un ''kernel'' CUDA comprend un très grand nombre de fils, il faut bien les organiser. Avec CUDA, les fils sont groupés en blocs de fils, eux-mêmes formant une grille. Diviser les fils fait en sorte que :
Pour obtenir un parallélisme intensif, on doit utiliser le plus le fils possible; puisqu'un ''kernel'' CUDA comprend un très grand nombre de fils, il faut bien les organiser. Avec CUDA, les fils sont groupés en blocs de fils, eux-mêmes formant une grille. Diviser les fils fait en sorte que :
*les fils groupés coopèrent via la mémoire partagée,
*les fils groupés coopèrent via la mémoire partagée,
*les fils d'un bloc ne coopèrent pas avec les fils des autres blocs.
*les fils d'un bloc ne coopèrent pas avec les fils des autres blocs.
 
Selon ce modèle, les fils dans un bloc travaillent sur le même groupe d'instructions (mais peut-être avec des jeux de données différents) et s'échangent les données via la mémoire partagée. Les fils dans les autres blocs font de même (voir la figure).
 
[[File:Cuda_threads.png|thumbnail|Intercommunication via la mémoire partagée des fils dans un bloc. ]]
In this model the threads within a block work on the same set of instructions (but perhaps with different data sets) and exchange data between each other via shared memory. Threads in other blocks do the same thing (see the figure).  
[[File:Cuda_threads.png|thumbnail|Threads within a block intercommunicate via shared memory. ]]


Each thread uses IDs to decide what data to work on:
Each thread uses IDs to decide what data to work on:
rsnt_translations
56,430

edits