Ce cours vise à fournir une compréhension approfondie du calcul sur les unités de traitement graphique (GPU) en informatique.
Les objectifs principaux incluent :
Compréhension des architectures GPU modernes.
Maîtrise des techniques de programmation parallèle sur GPU.
Application des concepts de calcul GPU dans divers domaines tels que l'apprentissage profond, la simulation scientifique, etc.
Développement de compétences pratiques à travers des travaux dirigés et des projets.
Plan du cours
Chapitre 1 : Introduction au calcul GPU
Historique et évolution des architectures GPU.
Différences entre CPU et GPU.
Avantages et limitations du calcul GPU.
Chapitre 2 : Architecture GPU
Composants clés d'une architecture GPU (CUDA Cores, Tensor Cores, etc.).
Mémoire GPU et hiérarchie de mémoire.
Modèles de programmation parallèle (CUDA, OpenCL, etc.).
Chapitre 3 : Programmation GPU
Fondamentaux de la programmation CUDA.
Gestion de la mémoire sur le GPU.
Techniques avancées de parallélisme et d'optimisation.
Chapitre 4 : Applications du calcul GPU
Calcul scientifique et simulations.
Traitement d'images et de vidéos.
Apprentissage profond et réseaux neuronaux.
Chapitre 5 : Projets et Travaux Pratiques (TP)
Implémentation de calculs parallèles sur GPU.
Utilisation d'outils de développement GPU (CUDA, cuDNN, etc.).
Réalisation de projets applicatifs en groupes.
Description des TP
TP1 : Introduction à CUDA
Installation et configuration de l'environnement de développement.
Premiers pas avec la programmation parallèle en CUDA.
TP2 : Gestion de la mémoire sur GPU
Compréhension et utilisation efficace de la mémoire GPU.
Techniques d'optimisation de la gestion mémoire.
TP3 : Optimisation et parallélisme avancé
Techniques avancées de parallélisme sur GPU.
Stratégies d'optimisation pour des performances accrues.
TP4 : Projet applicatif
Réalisation d'un projet concret impliquant le calcul GPU dans un domaine spécifique (simulation, apprentissage profond, etc.).
Présentation des résultats et analyses.
Connaissances requises
Connaissance approfondie des langages de programmation (C/C++, Python, etc.).
Compréhension des concepts fondamentaux de l'architecture informatique.
Notions de base en calcul parallèle et algorithmes parallèles.
RSE (Responsabilité Sociale et Environnementale)
Thèmes:
Aspects RSE dans le cours sur le calcul GPU :
Efficacité énergétique : Étudier les performances des GPU en termes de rendement énergétique (performance par watt) et optimiser les algorithmes pour réduire la consommation.
Optimisation des ressources : Apprendre à minimiser les ressources nécessaires pour un calcul donné, réduisant ainsi l’empreinte écologique.
Applications sociétales : Proposer des projets liés à la santé, à l’énergie ou à la modélisation climatique pour montrer l’impact positif des GPU.
Durabilité des matériels : Discuter de la durée de vie, du recyclage et des impacts écologiques des composants électroniques comme les GPU.
Éthique des usages : Débattre des implications des applications controversées (minage de cryptomonnaies, IA énergivore, reconnaissance faciale).
Sobriété numérique : Introduire des pratiques pour quantifier et réduire l’impact écologique des calculs GPU.