CUDA
HPC-HPDA sur GPU en CUDA
Description : Ce cours a pour objectif de présenter l’algorithmique et la programmation à haute performance sur GPU, avec des mises en oeuvre sur des algorithmes de Machine Learning, et sur des plates-formes de calculs équipées de GPU.
Contenu : Architecture des GPU Principes algorithmiques du parallélisme de données à grain fin sur GPU (modèles SIMD et SIMT) Programmation en CUDA Utilisation de la bibliothèque CUBLAS Optimisations de codes GPU et CPU-GPU, en CUDA Conception et mise en oeuvre d’un algorithme de K-means sur GPU
Prérequis : Cours commun de 1A : Systèmes d’Information et Programmation (1CC1000) Cours commun de 1A : Algorithmique & Complexité (1CC2000) Cours de Programmation Avancée en C++ (3MD1020) de la mention SDI à Metz Cours d’Apprentissage Automatique (3MD1040) de la mention SDI à Metz
Acquis d’apprentissage : A la fin de ce cours les élèves seront en mesure : AA1 : d’analyser l’adéquation d’une solution mathématique avec une implantation et une exécution sur GPU, AA2 : de concevoir un algorithme sur GPU, ou d’adapter un algorithme pour qu’il soit plus efficace sur GPU, AA3 : de concevoir des algorithmes hybrides CPU-GPU avec des recouvrement des transferts de données et des calculs AA4 : d’implanter des algorithmes et de mettre au point des codes sur GPU AA5 : d’analyser et de décrire synthétiquement des solutions sur GPU
Moyens : Plateforme de développement et d’exécution : serveurs de GPU du Data Center d’Enseignement du campus de Metz de CentraleSupélec. Environnements de développement CUDA de NVIDIA.
Modalités d’évaluation : Evaluation à partir des TP des parties 2 et 3 Comptes rendus des TP des parties 2 et 3 (le contenu et le nombre de pages des comptes rendus sont contraints, afin de forcer les étudiants à un effort de synthèse et de clarté) En cas d’absence non justifié à un TP la note de 0 sera appliquée, en cas d’absence justifiée la moyenne des autres TPs sera appliquée. L’examen de rattrapage sera un examen oral qui constituera 100% de la note de rattrapage.
Compétences évaluées :
- Être opérationnel, responsable et innovant dans le monde numérique
- Savoir convaincre
Responsable de cours : Stéphane Vialle
Identifiant Geode : 3MD4030
CM :
- Architecture des GPU (1.5 h)
- Bases d’algorithmique de programmation CUDA (1.5 h)
- Coalescence et mémoire partagée (1.5 h)
- Optimisations avancées en CUDA (1.5 h)
TD :
- Conception et estimation de performances d’un code CUDA (1.5 h)
- Optimisation et accélération d’un code CUDA (1.5 h)
- K-means sur GPU (1.5 h)
TP :
- Produit de matrices en CUDA : implantation et expérimentation (3.0 h)
- Produit de matrices en CUDA : optimisation et mesure de gain (3.0 h)
- K-means sur GPU : conception, implantation et expérimentation (3.0 h)
- K-means sur GPU : optimisations multiples (3.0 h)