Image de NordWood Themes

C++, Programmer avec CUDA sous Visual Studio
Utiliser le GPU pour améliorer les performances
 

Objectifs

Cette formation vous propose de découvrir, d'évaluer et de manipuler le SDK CUDA de la société NVIDIA, leader en matière d'utilisation du GPU, pour améliorer les performances du parallélisme de données. Vous acquerrez toutes les connaissances nécessaires à la mise en œuvre de CUDA.

A qui s'adresse cette formation

Participants :

Concepteurs et développeurs d'applications en C/C++, architectes logiciels.

 

Pré-requis :

Bonnes connaissances du langage C/C++ et des threads, expérience requise. Connaissances de base du C++11.

Contenu du cours

Introduction

  • Présentation de l'utilisation du GPU comparée au CPU.

  • Le SDK CUDA de la société NVIDIA.

  • Les alternatives et compléments à CUDA.
     

Démonstration
 

Installation de CUDA

  • Installation du driver spécifique et du SDK de CUDA.

  • Installation de NSIGHT, l'environnement spécifique de CUDA sous Visual Studio.

  • Exploration des exemples d'application.

  • Récupération des capacités des cartes graphiques installées.

Travaux pratiques

La mise en œuvre de base

  • Les fondamentaux de l'exécution d'une fonction kernel.

  • La création d'une fonction kernel.

  • L'appel d'une fonction kernel.

  • Les transferts de mémoire entre le host et le GPU.

  • L'exécution asynchrone d'une séquence de code GPU.

  • Le débogage du code exécuté sur le GPU.

Travaux pratiques
 

L'utilisation des différentes options de mémoire de CUDA

  • La mémoire partagée à l'intérieur d'un bloc de threads, les différentes options.

  • L'optimisation entre la mémoire consacrée aux données et la taille du code à exécuter.

  • Les allocations mappées entre la mémoire du host et la mémoire de la carte graphique.

  • L'utilisation de la mémoire portable entre le host et plusieurs cartes graphiques.

Travaux pratiques
 

Les autres utilisations de CUDA

  • L'utilisation des Streams, exécution en parallèle sur différentes cartes graphiques.

  • L'utilisation de CUDA en C++ avec Thrust.

  • Les alternatives ou compléments à CUDA comme le C++ AMP, OpenCL, OpenAPP.

Étude de cas

Conclusion

  • Le champ d'application de l'utilisation du GPU comme alternative au CPU.

  • Les bonnes pratiques.
     

Modalités d’évaluation des acquis

L'évaluation des acquis se fait :

  • En cours de formation, par des études de cas (fil rouge) ou travaux pratiques,

  • Cette formation ne fait pas l’objet d’une évaluation des acquis en fin de formation.