SlideShare une entreprise Scribd logo
1  sur  18
PROGRAMMATION PARALLÈLE
AVEC « CUDA »
Présenté par:
•MATOUGAfaf
•KEBIR Nour El Houda
Module: Informatique parallèle et distribuée
1
PLAN DETRAVAIL:
 Introduction.
 CUDA.
 Domaine D’application.
 Le calcul parallèle avec CUDA
 GPU vs CPU.
 Fonctionnement.
 Structure du code.
 Compilation.
 Comparaison avec OpenMP.
 Conclusion.
2
INTRODUCTION:
Il existe plusieurs API pour le calcul parallèle telle que : OpenMP,
MPI, OpenCl et Cuda .
3
CUDA:
 Acronyme de Compute Unified Device Architecture.
 Développé par Nvidia pour ses cartes graphiques (GPU) .
 Utilisé pour le traitement massivement parallèle.
 Utilisable avec les langages : C, C++, Fortran. Et les
plateformes:Windows, Linux et MAC.
4
DOMAINE D’APPLICATION:
Traitement des images et vidéos.
Calcul matriciel.
L’ analyse sismique.
Simulation de dynamique moléculaire.
5
LE CALCUL PARALLÈLE AVEC CUDA:
 CUDA utilise un processeur graphique (GPU) pour exécuter des calculs
généraux à la place du processeur CPU.
 Un processeur graphique, ou GPU est un circuit intégré présent sur une
carte graphique et assurant les fonctions de calcul de l'affichage.
6
LE CALCUL PARALLÈLE AVEC CUDA:
GPUVS CPU:
• Les GPU ont beaucoup de petites unités arithmétiques et logiques (ALUs),
comparé à quelques plus grands sur le CPU.
• Cela permet de nombreux calculs parallèles, comme calculer une couleur
pour chaque pixel sur l'écran.
7
LE CALCUL PARALLÈLE AVEC CUDA:
FONCTIONNEMENT :
• Le GPU exécute un kernel (fonction) à la fois.
• Chaque Kernel a des blocs, qui sont des groupes
indépendants d'ALU.
• Chaque bloc est composé de threads, qui sont
le niveau de calcul
• Les threads dans chaque bloc travaillent généralement
ensemble pour calculer une valeur.
8
LE CALCUL PARALLÈLE AVEC CUDA:
STRUCTURE DU CODE :
 Un programme CUDA est constitué d'une partie qui s'exécute sur l'hôte
(CPU) et d'une partie qui s'exécute sur le device (GPU).
 Les phases séquentielles sont exécutées sur l'hôte/ host .
 Les phases massivement parallèles sont exécutées sur le périphérique.
9
LE CALCUL PARALLÈLE AVEC CUDA:
STRUCTURE DU CODE :
 La Runtime CUDA est une extension du langage C/C++. Cette extension inclut les
éléments suivants:
 Mots clés : ils permettent de définir par quel composant la fonction sera appelée,
ainsi où celle-ci sera appelée.
 __global__ : kernel exécuté sur le GPU mais appelé par le CPU
 __device__ : kernel exécuté et appelé par le GPU
 __host__ : fonction exécutée et appelée par le CPU.

Variables : elles permettent d'identifier le thread en cours d'exécution. Elles sont
de type dim3.
 blockIdx : index du bloc dans la grille
 threadIdx : index du thread dans le bloc
 blockDim : nombre de threads par bloc
10
LE CALCUL PARALLÈLE AVEC CUDA:
STRUCTURE DU CODE :
 Les fonctions dans CUDA :
 cudaMalloc(): pour définir la mémoire à allouer en mémoire globale.
 cudaFree() : pour liberer cette mémoire en mémoire globale.
 cudaMemcpy(): une fonction de copie de mémoire.
 cudaMemcpyHostToDevice : copie de l'hôte vers le périphérique
 cudaMemcpyHostToHost : copie de l'hôte vers l'hôte
 cudaMemcpyDeviceToHost : copie du périphérique vers l'hôte
 cudaMemcpyDeviceToDevice : copie du périphérique vers le périphérique.
11
LE CALCUL PARALLÈLE AVEC CUDA:
STRUCTURE DU CODE :
 Le lancement d'un kernel s'effectue de la maniére suivante :
 kernel<<< dimGrid, dimBlock ,[ dimMem ]>>>(params);
 Kernel: nom de la fonction
 dimGrid: taille de la grille (en nombre de blocs)
 dimBlock: taille de chaque blocs (en nombre de threads)
 dimMem (optienel): taille de la mémoire partagée allouée par bloc.
 Les biblioteques associées: cuda.h et cuda_runtime.h.
12
Kernel à exécuter
dans le GPU
Allocation des
matrices de données à
traiter par le GPU
Envoi de données
vers le GPU
exécution du Kernel
dans le GPU
13
LE CALCUL PARALLÈLE AVEC CUDA:
COMPILATION :
 La compilation est réalisée grâce au compilateur NVCC, fournie dans le toolkit de
CUDA.
 CUDA est prévu pour le compilateur deVisual Studio, sousWindows.
 Sous Linux : nvcc mon_essai.cu
14
COMPARAISON AVEC OPENMP:
 CUDA est spécifique.
 OpenMP est générale.
 CUDA est plus rapide.
 OpenMP est moins rapide.
 CUDA est rattaché a NVIDIA.
15
CONCLUSION:
CUDA permet d’accélérer le temps d’execution des instructions
grâce à la notion de parallélisme.
16
BIBLIOGRAPHIE:
 http://igm.univ-mlv.fr/~dr/XPOSE2011/CUDA/caracteristiques.html
 https://youtu.be/2EbHSCvGFM0
17
PARTIE PRATIQUE
SousWindows
18

Contenu connexe

Tendances

Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Developer Network
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1oussamada
 
AMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor ArchitectureAMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor ArchitectureAMD
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning Niji
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Michelle Holley
 
Slides de présentation de la thèse du doctorat
Slides de présentation de la thèse du doctoratSlides de présentation de la thèse du doctorat
Slides de présentation de la thèse du doctoratZyad Elkhadir
 
Cours éthique et droit liés aux données numériques
Cours éthique et droit liés aux données numériquesCours éthique et droit liés aux données numériques
Cours éthique et droit liés aux données numériquesmarysesalles
 
Conception et réalisation d’un système d’information pour l’automatisation du...
Conception et réalisation d’un système d’information pour l’automatisation du...Conception et réalisation d’un système d’information pour l’automatisation du...
Conception et réalisation d’un système d’information pour l’automatisation du...Odel Odeldz
 

Tendances (20)

Chap2 dsp
Chap2 dspChap2 dsp
Chap2 dsp
 
Chapitre3 prog dsplf3
Chapitre3 prog dsplf3Chapitre3 prog dsplf3
Chapitre3 prog dsplf3
 
Tech Talk NVIDIA CUDA
Tech Talk NVIDIA CUDATech Talk NVIDIA CUDA
Tech Talk NVIDIA CUDA
 
Cuda
CudaCuda
Cuda
 
Cuda tutorial
Cuda tutorialCuda tutorial
Cuda tutorial
 
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia SolutionsQualcomm Hexagon SDK: Optimize Your Multimedia Solutions
Qualcomm Hexagon SDK: Optimize Your Multimedia Solutions
 
It's Time to ROCm!
It's Time to ROCm!It's Time to ROCm!
It's Time to ROCm!
 
Programmation des pic_en_c_part1
Programmation des pic_en_c_part1Programmation des pic_en_c_part1
Programmation des pic_en_c_part1
 
AMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor ArchitectureAMD EPYC™ Microprocessor Architecture
AMD EPYC™ Microprocessor Architecture
 
Cours de c
Cours de cCours de c
Cours de c
 
Userspace networking
Userspace networkingUserspace networking
Userspace networking
 
Processeur FPGA
Processeur FPGAProcesseur FPGA
Processeur FPGA
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...
 
Slides de présentation de la thèse du doctorat
Slides de présentation de la thèse du doctoratSlides de présentation de la thèse du doctorat
Slides de présentation de la thèse du doctorat
 
Machine-learning-FR.pdf
Machine-learning-FR.pdfMachine-learning-FR.pdf
Machine-learning-FR.pdf
 
Cours éthique et droit liés aux données numériques
Cours éthique et droit liés aux données numériquesCours éthique et droit liés aux données numériques
Cours éthique et droit liés aux données numériques
 
Cours uml
Cours umlCours uml
Cours uml
 
Conception et réalisation d’un système d’information pour l’automatisation du...
Conception et réalisation d’un système d’information pour l’automatisation du...Conception et réalisation d’un système d’information pour l’automatisation du...
Conception et réalisation d’un système d’information pour l’automatisation du...
 

Similaire à CUDA

Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiKhalid EDAIG
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpGaëtan Trellu
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...Paris Open Source Summit
 
Softshake 2013 - Vivre en parallèle
Softshake 2013 - Vivre en parallèleSoftshake 2013 - Vivre en parallèle
Softshake 2013 - Vivre en parallèleOCTO Technology
 
Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013Henri Tremblay
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis GroupIBM France Lab
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsPhilippeBrogi
 
Graphics card as computation engine
Graphics card as computation engineGraphics card as computation engine
Graphics card as computation enginevalery brasseur
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introductionsabrine_hamdi
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solutionCynapsys It Hotspot
 
GPGPU facile avec JavaCL, et trivial avec ScalaCL !
GPGPU facile avec JavaCL, et trivial avec ScalaCL !GPGPU facile avec JavaCL, et trivial avec ScalaCL !
GPGPU facile avec JavaCL, et trivial avec ScalaCL !ochafik
 
Presentation Pascal
Presentation PascalPresentation Pascal
Presentation Pascalguestb3a127
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAPôle Systematic Paris-Region
 
Chapitre 2- Présentation Structure de base d_un ordinateur
Chapitre 2- Présentation Structure de base d_un ordinateurChapitre 2- Présentation Structure de base d_un ordinateur
Chapitre 2- Présentation Structure de base d_un ordinateurYounesAziz3
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linuxThierry Gayet
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124loffyhacker
 

Similaire à CUDA (20)

Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpiCreation de cluster (Master et deux slave ) nfs, htcondor, mpi
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
 
Analyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dumpAnalyse d'un kernel (crash, core) dump
Analyse d'un kernel (crash, core) dump
 
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
OWF12/PAUG Conf Days Render script, sylvain galand, software engineer at geny...
 
Softshake 2013 - Vivre en parallèle
Softshake 2013 - Vivre en parallèleSoftshake 2013 - Vivre en parallèle
Softshake 2013 - Vivre en parallèle
 
Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013Vivre en parallèle - Softshake 2013
Vivre en parallèle - Softshake 2013
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 
Sizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloadsSizing PoC LSF & PowerAI for Engineers schools workloads
Sizing PoC LSF & PowerAI for Engineers schools workloads
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
Graphics card as computation engine
Graphics card as computation engineGraphics card as computation engine
Graphics card as computation engine
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introduction
 
Presentaion fpga µc µp quelles est la solution
Presentaion  fpga µc µp quelles est la solutionPresentaion  fpga µc µp quelles est la solution
Presentaion fpga µc µp quelles est la solution
 
Android NDK
Android   NDKAndroid   NDK
Android NDK
 
GPGPU facile avec JavaCL, et trivial avec ScalaCL !
GPGPU facile avec JavaCL, et trivial avec ScalaCL !GPGPU facile avec JavaCL, et trivial avec ScalaCL !
GPGPU facile avec JavaCL, et trivial avec ScalaCL !
 
Presentation Pascal
Presentation PascalPresentation Pascal
Presentation Pascal
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
 
Chapitre 2- Présentation Structure de base d_un ordinateur
Chapitre 2- Présentation Structure de base d_un ordinateurChapitre 2- Présentation Structure de base d_un ordinateur
Chapitre 2- Présentation Structure de base d_un ordinateur
 
Utilisation de dkms
Utilisation de dkmsUtilisation de dkms
Utilisation de dkms
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124
 

Plus de Afaf MATOUG

Implémentation d’un gestionnaire de parc automobile
 Implémentation d’un gestionnaire de parc automobile Implémentation d’un gestionnaire de parc automobile
Implémentation d’un gestionnaire de parc automobileAfaf MATOUG
 
Rapport de Stage Obligatoire d’imprégnation
Rapport de Stage Obligatoire d’imprégnation   Rapport de Stage Obligatoire d’imprégnation
Rapport de Stage Obligatoire d’imprégnation Afaf MATOUG
 
Systeme distribue
Systeme distribueSysteme distribue
Systeme distribueAfaf MATOUG
 
Reconnaissance d'ecriture manuscrite
Reconnaissance d'ecriture manuscriteReconnaissance d'ecriture manuscrite
Reconnaissance d'ecriture manuscriteAfaf MATOUG
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSAfaf MATOUG
 

Plus de Afaf MATOUG (10)

Implémentation d’un gestionnaire de parc automobile
 Implémentation d’un gestionnaire de parc automobile Implémentation d’un gestionnaire de parc automobile
Implémentation d’un gestionnaire de parc automobile
 
Rapport de Stage Obligatoire d’imprégnation
Rapport de Stage Obligatoire d’imprégnation   Rapport de Stage Obligatoire d’imprégnation
Rapport de Stage Obligatoire d’imprégnation
 
Systeme distribue
Systeme distribueSysteme distribue
Systeme distribue
 
Reconnaissance d'ecriture manuscrite
Reconnaissance d'ecriture manuscriteReconnaissance d'ecriture manuscrite
Reconnaissance d'ecriture manuscrite
 
Systeme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOSSysteme d’exploitation embarqué eCOS
Systeme d’exploitation embarqué eCOS
 
Elton mayo
Elton mayoElton mayo
Elton mayo
 
Mehari
MehariMehari
Mehari
 
Working moms
Working momsWorking moms
Working moms
 
Joomla
JoomlaJoomla
Joomla
 
Metaweb
MetawebMetaweb
Metaweb
 

CUDA

  • 1. PROGRAMMATION PARALLÈLE AVEC « CUDA » Présenté par: •MATOUGAfaf •KEBIR Nour El Houda Module: Informatique parallèle et distribuée 1
  • 2. PLAN DETRAVAIL:  Introduction.  CUDA.  Domaine D’application.  Le calcul parallèle avec CUDA  GPU vs CPU.  Fonctionnement.  Structure du code.  Compilation.  Comparaison avec OpenMP.  Conclusion. 2
  • 3. INTRODUCTION: Il existe plusieurs API pour le calcul parallèle telle que : OpenMP, MPI, OpenCl et Cuda . 3
  • 4. CUDA:  Acronyme de Compute Unified Device Architecture.  Développé par Nvidia pour ses cartes graphiques (GPU) .  Utilisé pour le traitement massivement parallèle.  Utilisable avec les langages : C, C++, Fortran. Et les plateformes:Windows, Linux et MAC. 4
  • 5. DOMAINE D’APPLICATION: Traitement des images et vidéos. Calcul matriciel. L’ analyse sismique. Simulation de dynamique moléculaire. 5
  • 6. LE CALCUL PARALLÈLE AVEC CUDA:  CUDA utilise un processeur graphique (GPU) pour exécuter des calculs généraux à la place du processeur CPU.  Un processeur graphique, ou GPU est un circuit intégré présent sur une carte graphique et assurant les fonctions de calcul de l'affichage. 6
  • 7. LE CALCUL PARALLÈLE AVEC CUDA: GPUVS CPU: • Les GPU ont beaucoup de petites unités arithmétiques et logiques (ALUs), comparé à quelques plus grands sur le CPU. • Cela permet de nombreux calculs parallèles, comme calculer une couleur pour chaque pixel sur l'écran. 7
  • 8. LE CALCUL PARALLÈLE AVEC CUDA: FONCTIONNEMENT : • Le GPU exécute un kernel (fonction) à la fois. • Chaque Kernel a des blocs, qui sont des groupes indépendants d'ALU. • Chaque bloc est composé de threads, qui sont le niveau de calcul • Les threads dans chaque bloc travaillent généralement ensemble pour calculer une valeur. 8
  • 9. LE CALCUL PARALLÈLE AVEC CUDA: STRUCTURE DU CODE :  Un programme CUDA est constitué d'une partie qui s'exécute sur l'hôte (CPU) et d'une partie qui s'exécute sur le device (GPU).  Les phases séquentielles sont exécutées sur l'hôte/ host .  Les phases massivement parallèles sont exécutées sur le périphérique. 9
  • 10. LE CALCUL PARALLÈLE AVEC CUDA: STRUCTURE DU CODE :  La Runtime CUDA est une extension du langage C/C++. Cette extension inclut les éléments suivants:  Mots clés : ils permettent de définir par quel composant la fonction sera appelée, ainsi où celle-ci sera appelée.  __global__ : kernel exécuté sur le GPU mais appelé par le CPU  __device__ : kernel exécuté et appelé par le GPU  __host__ : fonction exécutée et appelée par le CPU.  Variables : elles permettent d'identifier le thread en cours d'exécution. Elles sont de type dim3.  blockIdx : index du bloc dans la grille  threadIdx : index du thread dans le bloc  blockDim : nombre de threads par bloc 10
  • 11. LE CALCUL PARALLÈLE AVEC CUDA: STRUCTURE DU CODE :  Les fonctions dans CUDA :  cudaMalloc(): pour définir la mémoire à allouer en mémoire globale.  cudaFree() : pour liberer cette mémoire en mémoire globale.  cudaMemcpy(): une fonction de copie de mémoire.  cudaMemcpyHostToDevice : copie de l'hôte vers le périphérique  cudaMemcpyHostToHost : copie de l'hôte vers l'hôte  cudaMemcpyDeviceToHost : copie du périphérique vers l'hôte  cudaMemcpyDeviceToDevice : copie du périphérique vers le périphérique. 11
  • 12. LE CALCUL PARALLÈLE AVEC CUDA: STRUCTURE DU CODE :  Le lancement d'un kernel s'effectue de la maniére suivante :  kernel<<< dimGrid, dimBlock ,[ dimMem ]>>>(params);  Kernel: nom de la fonction  dimGrid: taille de la grille (en nombre de blocs)  dimBlock: taille de chaque blocs (en nombre de threads)  dimMem (optienel): taille de la mémoire partagée allouée par bloc.  Les biblioteques associées: cuda.h et cuda_runtime.h. 12
  • 13. Kernel à exécuter dans le GPU Allocation des matrices de données à traiter par le GPU Envoi de données vers le GPU exécution du Kernel dans le GPU 13
  • 14. LE CALCUL PARALLÈLE AVEC CUDA: COMPILATION :  La compilation est réalisée grâce au compilateur NVCC, fournie dans le toolkit de CUDA.  CUDA est prévu pour le compilateur deVisual Studio, sousWindows.  Sous Linux : nvcc mon_essai.cu 14
  • 15. COMPARAISON AVEC OPENMP:  CUDA est spécifique.  OpenMP est générale.  CUDA est plus rapide.  OpenMP est moins rapide.  CUDA est rattaché a NVIDIA. 15
  • 16. CONCLUSION: CUDA permet d’accélérer le temps d’execution des instructions grâce à la notion de parallélisme. 16