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 :

  1. Architecture des GPU (1.5 h)
  2. Bases d’algorithmique de programmation CUDA (1.5 h)
  3. Coalescence et mémoire partagée (1.5 h)
  4. Optimisations avancées en CUDA (1.5 h)

TD :

  1. Conception et estimation de performances d’un code CUDA (1.5 h)
  2. Optimisation et accélération d’un code CUDA (1.5 h)
  3. K-means sur GPU (1.5 h)

TP :

  1. Produit de matrices en CUDA : implantation et expérimentation (3.0 h)
  2. Produit de matrices en CUDA : optimisation et mesure de gain (3.0 h)
  3. K-means sur GPU : conception, implantation et expérimentation (3.0 h)
  4. K-means sur GPU : optimisations multiples (3.0 h)