- Cours pratique
- Informatique
Formation CUDA - Prise en main
Compute Unified Device Architecture

- Durée
- 3 jours
- Niveau
- Intermédiaire
- Modalités
- Distanciel
Description de la formation CUDA Prise main
CUDA (Compute Unified Device Architecture) est une plateforme de calcul parallèle développée par NVIDIA qui permet aux développeurs d'exploiter la puissance des GPU (processeurs graphiques) pour accélérer les calculs intensifs. Contrairement aux CPU classiques, les GPU sont optimisés pour exécuter simultanément des milliers de threads, ce qui les rend particulièrement efficaces pour des tâches comme le machine learning, le rendu 3D, la simulation scientifique et le traitement d’image.
CUDA repose sur une extension du langage C/C++ et fournit une API permettant d’exécuter des programmes directement sur le GPU. Il comprend des outils comme cuBLAS (calcul matriciel optimisé), cuDNN (accélération des réseaux neuronaux) et Thrust (bibliothèque de programmation parallèle).
Grâce à CUDA, les développeurs peuvent écrire du code optimisé pour exploiter pleinement le potentiel des architectures GPU, ce qui est largement utilisé dans des domaines comme l’intelligence artificielle, la finance et la bioinformatique.

Objectifs pédagogiques
Objectifs pédagogiques :
À l'issue de cette formation CUDA Prise en main, vous aurez acquis les connaissances et compétences nécessaires pour :
- Comprendre l’écosystème nVIDIA et CUDA
- Savoir coder des kernels CUDA et optimiser des algorithmes pour GPU
- Être capable de déboguer et analyser les performances d’un programme CUDA
- Connaître les limites et bonnes pratiques pour écrire du code GPU efficace
Objectifs opérationnels
Objectif opérationnel :
Savoir approfondir la programmation CUDA et en comprendre son optimisation.
Programme
Contenu du cours, module par module
3 modules
- Objectif : Comprendre l’évolution de CUDA, installer CUDA et exécuter un 1er programme simple
Introduction générale (1h)
- L’histoire de nVIDIA : de la création sur les banquettes d'un Denny’s au géant de la tech
- (valorisé à 1000 milliards de dollars)
- Jensen Huang et ses associés
- Le succès des cartes graphiques : du gaming au GPGPU
- L’avènement de CUDA (Compute Unified Device Architecture) et son impact sur l’industrie
Présentation de CUDA et des GPU modernes (1h)
- Différences CPU vs GPU
- Pourquoi les GPU sont adaptés au calcul massivement parallèle ?
- Introduction au GPGPU et aux architectures nVIDIA
Installation et premiers tests (2h - 25% de la journée en TP)
- Installation des drivers nVIDIA et de CUDA Toolkit
- Vérification du support CUDA avec nvidia-smi
- Compilation et exécution d’un premier programme simple pour récupérer l’indice CUDA
Concepts fondamentaux de CUDA (2h)
- API CUDA : présentation et philosophie
- Modèle de programmation CUDA : Host vs Device, Grids, Blocks, Threads
- Mémoire globale, partagée, locale et registre
- Bonnes pratiques pour éviter les goulots d’étranglement
- Objectif : Approfondir la programmation CUDA et comprendre l’optimisation
Rappels et questions sur la veille (30 min)
- Résumé des points clés de la première journée
- Problèmes rencontrés lors de l’installation et du premier programme
Optimisation d’algorithmes (2h)
- Pourquoi un bon algo en O(n²) ne devient pas magique avec CUDA ?
- Expliquer l’algorithme du calcul des arêtes du bord d’un maillage de triangles
- Passage d’une complexité O(n²) à O(n) avec hachage
- Démonstration et implémentation sur CPU
Présentation des outils de programmation parallèle (1h)
- OpenMP vs CUDA : approche simple et indépendante vs architecture GPU
- Les concurrents de CUDA : Intel OneAPI et pourquoi Intel peine à rivaliser
- Pourquoi le GPU n’a pas les mêmes contraintes qu’un CPU (gestion des threads, ndisk)
- Le rôle du mining de l’Ethereum dans le succès de CUDA (PoWork vs PoStake)
Programmation CUDA avancée (2h - 50% de la journée en TP)
- Lancement d’un kernel et gestion des threads
- Synchronisation et impact sur la performance
- Réduction parallèle : introduction et implémentation en TP
- Objectif : Mettre en pratique les concepts et explorer des cas réels d’utilisation
Rappels et questions (30 min)
- Résumé des points essentiels du jour précédent
- Échanges sur les problèmes rencontrés en TP
Exercices pratiques sur l’optimisation (3h - 50% de la journée en TP)
- Différents exemples de réduction parallèle
- Optimisation des accès mémoire (mémoire partagée vs mémoire globale)
- Débogage et analyse des performances
Discussion sur les architectures GPU (1h)
- Logical model vs Physical model
- Impact des nouvelles architectures sur la compatibilité CUDA
- Les évolutions annuelles et leurs implications pour les développeurs
Débriefing et conclusion (1h)
- Questions/réponses sur les concepts abordés
- Exemples d’applications industrielles de CUDA
- Comment continuer après la formation : ressources, forums et documentations utiles
Travaux pratiques
Programme mis à jour le 19/12/2025
Public concerné
Ce cours s’adresse aux développeurs ou aux chefs de projet pratiquant la programmation procédurale ou orientée objet, nécessitant des ressources de calcul. Le public visé cherche à comprendre l’approche mise en œuvre par nVIDIA avec CUDA pour réaliser des calculs d’ordinaire affectés au CPU. Cette formation intéressera également tout développeur désirant être plus à l’aise dans l’utilisation et/ou la conception d’algorithmes parallèles.

Prérequis
Les participants doivent avoir une solide maîtrise de la programmation en C++, y compris des connaissances sur les pointeurs, les tableaux, les structures de données et les bases de la gestion mémoire. Une expérience préalable en programmation parallèle serait un plus pour comprendre les concepts avancés de CUDA. Une compréhension de la différence entre CPU et GPU, la gestion de la mémoire est aussi un prérequis important. Les participants doivent également être à l’aise avec les outils de développement tels que les compilateurs et les éditeurs de code.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.