Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
Introduction
- Qu'est-ce que CUDA ?
- CUDA vs OpenCL vs SYCL
- Présentation des fonctionnalités et de l'architecture de CUDA
- Configuration de l'environnement de développement
Pour commencer
- Création d'un nouveau projet CUDA à l'aide de Visual Studio Code
- Exploration de la structure et des fichiers du projet
- Compilation et exécution du programme
- Affichage de la sortie à l'aide de printf et fprintf
API CUDA
- Comprendre le rôle de l'API CUDA dans le programme hôte
- Utilisation de l'API CUDA pour interroger les informations et les capacités des périphériques
- Utilisation de l'API CUDA pour allouer et désallouer la mémoire des périphériques
- Utilisation de l'API CUDA pour copier des données entre l'hôte et le périphérique
- Utilisation de l'API CUDA pour lancer des noyaux et synchroniser des threads
- Utilisation de l'API CUDA pour gérer les erreurs et les exceptions
CUDA C/C++
- Comprendre le rôle de CUDA C/C++ dans le programme du périphérique
- Utilisation de CUDA C/C++ pour écrire des noyaux qui s'exécutent sur le GPU et manipulent des données
- Utiliser les types de données, les qualificateurs, les opérateurs et les expressions de CUDA C/C++.
- Utilisation des fonctions intégrées CUDA C/C++, telles que math, atomic, warp, etc.
- Utilisation des variables intégrées CUDA C/C++, telles que threadIdx, blockIdx, blockDim, etc.
- Utilisation des bibliothèques CUDA C/C++, telles que cuBLAS, cuFFT, cuRAND, etc.
Modèle de mémoire CUDA
- Comprendre la différence entre les modèles de mémoire hôte et périphérique
- Utilisation des espaces mémoire CUDA, tels que global, partagé, constant et local
- Utilisation des objets mémoire CUDA, tels que les pointeurs, les tableaux, les textures et les surfaces
- Utilisation des modes d'accès à la mémoire CUDA, tels que la lecture seule, l'écriture seule, la lecture-écriture, etc.
- Utilisation du modèle de cohérence de la mémoire CUDA et des mécanismes de synchronisation
Modèle d'exécution CUDA
- Comprendre la différence entre les modèles d'exécution de l'hôte et du périphérique
- Utilisation des threads, blocs et grilles CUDA pour définir le parallélisme
- Utilisation des fonctions de thread CUDA, telles que threadIdx, blockIdx, blockDim, etc.
- Utilisation des fonctions de bloc CUDA, telles que __syncthreads, __threadfence_block, etc.
- Utilisation des fonctions de grille CUDA, telles que gridDim, gridSync, groupes coopératifs, etc.
Débogage
- Comprendre les erreurs et les bogues courants dans les programmes CUDA
- Utilisation du débogueur de code Visual Studio pour inspecter les variables, les points d'arrêt, la pile d'appels, etc.
- Utilisation de CUDA-GDB pour déboguer les programmes CUDA sur Linux.
- Utilisation de CUDA-MEMCHECK pour détecter les erreurs et les fuites de mémoire
- Utilisation de NVIDIA Nsight pour déboguer et analyser les programmes CUDA sous Windows
Optimisation
- Comprendre les facteurs qui affectent les performances des programmes CUDA
- Utilisation des techniques de coalescence CUDA pour améliorer le débit de la mémoire
- Utilisation des techniques de mise en cache et de préemption CUDA pour réduire la latence de la mémoire
- Utilisation des techniques de mémoire partagée et de mémoire locale CUDA pour optimiser les accès à la mémoire et la bande passante
- Utilisation d'outils de profilage CUDA pour mesurer et améliorer le temps d'exécution et l'utilisation des ressources.
Résumé et prochaines étapes
Pré requis
- Compréhension du langage C/C++ et des concepts de programmation parallèle
- Connaissance de base de l'architecture des ordinateurs et de la hiérarchie de la mémoire
- Expérience des outils de ligne de commande et des éditeurs de code
Public
- Développeurs souhaitant apprendre à utiliser CUDA pour programmer les processeurs NVIDIAGPU et exploiter leur parallélisme.
- Développeurs souhaitant écrire un code performant et évolutif pouvant être exécuté sur différents périphériques CUDA
- Les programmeurs qui souhaitent explorer les aspects de bas niveau de la programmation GPU et optimiser les performances de leur code.
28 Heures
Nos clients témoignent (2)
Très interactif avec des exemples variés, avec une bonne progression de la complexité entre le début et la fin de la formation.
Jenny - Andheo
Formation - GPU Programming with CUDA and Python
Traduction automatique
L'énergie et l'humour des formateurs.
Tadeusz Kaluba - Nokia Solutions and Networks Sp. z o.o.
Formation - NVIDIA GPU Programming - Extended
Traduction automatique