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
Présentation de l'application de test et évaluation des résultats sur le CPU.
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
Installation de CUDA, création d'un projet et validation de l'installation.
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
Ajout d'une séquence de code à exécuter sur le GPU à l'application de test, comparaison des résultats avec l'existant en C++11. Utilisation du débogueur de NSIGHT.
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
Manipulation des différentes options dans l'application de test. Recherche de la meilleure solution selon un cas étudié.
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.
Etude de cas
Exploration des solutions complémentaires et alternatives, comparaison à l'aide de l'application de test.
Conclusion
- Le champ d'application de l'utilisation du GPU comme alternative au CPU.
- Les bonnes pratiques.