Retour aux cours
AI021 Professional

Guide de programmation CUDA

La ressource officielle et complète destinée aux développeurs pour apprendre le modèle de programmation CUDA et comment écrire un code haute performance exécuté sur les GPU NVIDIA. Ce guide couvre l'architecture de la plateforme, l'interface de programmation, les fonctionnalités avancées du matériel et les spécifications techniques.

5.0
30.0h
1762 étudiants
1 j'aime
Intelligence Artificielle
Commencer à apprendre

Aperçu du cours

📚 Résumé du contenu

La ressource officielle et complète destinée aux développeurs pour apprendre le modèle de programmation CUDA et écrire des codes performants exécutés sur les GPU NVIDIA. Ce guide couvre l'architecture de la plateforme, l'interface de programmation, les fonctionnalités matérielles avancées et les spécifications techniques.

Maîtrisez l'art du calcul parallèle avec le guide de référence de l'industrie pour NVIDIA CUDA.

Auteur : NVIDIA Corporation

Remerciements : Copyright © 2007-2024 NVIDIA Corporation et filiales. Tous droits réservés.

🎯 Objectifs d'apprentissage

  1. Définir les rôles de l'hôte (CPU) et de l'appareil (GPU) au sein d'un système hétérogène.
  2. Expliquer le modèle de programmation SIMT et l'organisation hiérarchique des threads, blocs et grilles.
  3. Différencier le code PTX (Parallel Thread Execution) et le code binaire (cubins), et expliquer comment la compilation Juste-à-temps (JIT) facilite la compatibilité.
  4. Développer et compiler des noyaux CUDA : écrire des fonctions global, configurer l'exécution avec la notation à trois chevrons, et gérer le flux de compilation NVCC.
  5. Optimiser la mémoire et le déplacement des données : distinguer les modèles de mémoire Unifiée, Explicite et Mappée, et implémenter la mémoire hôte verrouillée en pages pour des transferts efficaces.
  6. Gérer l'exécution parallèle : utiliser les flux CUDA, les événements et les groupes coopératifs pour gérer les tâches asynchrones et synchroniser les opérations CPU-GPU.
  7. Effectuer des calculs d'arithmétique de pointeurs complexes et identifier les goulets d'étranglement architecturaux (von Neumann vs. Harvard).
  8. Mettre en œuvre des motifs d'exécution CUDA avancés, notamment les lancements conditionnels de noyaux et les transferts batchés hétérogènes de mémoire.
  9. Utiliser des fonctionnalités spécifiques au matériel comme les champs de thread, les proxys asynchrones et les pipelines afin de maximiser la concurrence.
  10. Configurer et ajuster les performances de la mémoire unifiée grâce à l'anticipation, aux indications d'utilisation et à la gestion de la taille des pages.

Leçons