CUDA tutorial/fr: Difference between revisions

Created page with "Le modèle CUDA est un modèle hétérogène qui utilise à la fois le CPU et le GPU. Le code CUDA peut gérer les deux types de mémoire, la mémoire principale du CPU et la..."
(Created page with "Category:Software =Introduction= Dans ce tutoriel, nous présentons le composant de calcul hautement parallèle qu'est le processeur graphique (ou GPU pour ''graphic proce...")
(Created page with "Le modèle CUDA est un modèle hétérogène qui utilise à la fois le CPU et le GPU. Le code CUDA peut gérer les deux types de mémoire, la mémoire principale du CPU et la...")
Line 35: Line 35:
*'''*Composant''' :  désigne le GPU et sa mémoire
*'''*Composant''' :  désigne le GPU et sa mémoire


The CUDA programming model is a heterogeneous model in which both the CPU and GPU are used.
Le modèle CUDA est un modèle hétérogène qui utilise à la fois le CPU et le GPU.
CUDA code is capable of managing memory of both CPU and GPU as well as executing GPU functions, called kernels. Such kernels are executed by many GPU threads in parallel. Here is the 5-steps recipe of a typical CUDA code:
Le code CUDA peut gérer les deux types de mémoire, la mémoire principale du CPU et la mémoire du composant GPU le code exécute aussi les fonctions du GPU appelées noyaux (''kernels''). Ces fonctions  sont exécutées en parallèle par plusieurs fils GPU. Le processus comporte cinq étapes :
* Declare and allocate both the Host and Device memories
* déclaration et allocation de la mémoire principale et de la mémoire du composant
* Initialize the Host memory
* initialisation de la mémoire principale
* Transfer data from Host memory to Device memory
* transfert des données de la mémoire principale à la mémoire du composant
* Execute GPU functions (kernels)  
* exécution des fonctions GPU (noyaux)  
* Transfer data back to the Host memory
* retour des données à la mémoire principale
=CUDA Execution Model=
=Modèle d'exécution=
Simple CUDA code executed on GPU is called KERNEL. There are several questions we may ask at this point:
* How do you run a Kernel on a bunch of streaming multiprocessors (SMs) ?
* How do you make such run massively parallel ?
Here is the execution recipe that will answer the above questions:
* each GPU core (streaming processor) execute a sequential '''Thread''', where '''Thread''' is a smallest set of instructions handled by the operating system's schedule.
* all GPU cores execute the kernel in a SIMT fashion (Single Instruction Multiple Threads)
Usually the following procedure is recommended when it comes to executing on GPU:
1. Copy input data from CPU memory to GPU memory
2. Load GPU program (Kernel) and execute it
3. Copy results from GPU memory back to CPU memory


= CUDA Block-Threading Model =
= CUDA Block-Threading Model =
rsnt_translations
56,430

edits