Ensimag Rubrique Formation 2022

Calcul sur GPU (en anglais) - 5MMCGPU7

  • Volumes horaires

    • CM 18.0
    • Projet -
    • TD -
    • Stage -
    • TP -
    • DS -

    Crédits ECTS

    Crédits ECTS 1.5

Objectif(s)

Cet enseignement porte sur l'appropriation des technologies liées aux accélérateurs. Il aborde les aspects matériels (architecture des accélérateurs, niveaux de mémoire), logiciels (CUDA, OpenCL) et les aspects algorithmiques (tiling, reduction, pipelining). Le processus de conception d'une application utilisant des accélérateurs est également introduit.

Responsable(s)

Christophe PICARD

Contenu(s)

  1. Introduction au parallélisme et premiers éléments d'architecture
    Organisation de la mémoire et Organisation des structures de calculs
  2. Présentation de différents outils de programmation
    Elements de langages en OpenCL/CUDA
  3. Optimisations mémoire des calculs
    Hiérarchie de la mémoire et organisation des traitements.
  4. Patrons de programmation parallèle
    Etude de différentes patrons parallèles.
  5. Programmation hétérogène
    Découpage des tâches entre les CPU et les accélérateurs
  6. Projet

Prérequis

Programmation en C/C++, Algorithmique

Contrôle des connaissances

CONTRÔLE CONTINU :
Type d'évaluation (ex : TP, assiduité, participation) :

SESSION NORMALE :
Type d'examen (écrit, oral, examen sur machine) :
Salle spécifique :
Durée :
Documents autorisés (ex : aucun, résumé feuille A4 manuscrite, dictionnaires, tous documents) :
Documents interdits (ex : livres, tous documents) :
Matériel (ex : calculatrices):

  • matériel autorisé, préciser :
  • matériel interdit, préciser :
    Commentaires :

SESSION DE RATTRAPAGE :
Type d'examen (écrit, oral, examen sur machine) :
Salle spécifique :
Durée :
Documents autorisés (ex : aucun, résumé feuille A4 manuscrite, dictionnaires, tous documents) :
Documents interdits (ex : livres, tous documents) :
Matériel (ex : calculatrices):

  • matériel autorisé, préciser :
  • matériel interdit, préciser :
    Commentaires :

Evaluation par projet réalisé en binôme autour d'un sujet proposé par l'enseignant.
Le projet a deux phases: 1 phase commune et 1 phase d'exploration laissée libre.

N1= NPR
N2 = (NPR+E)/2

NPR = Evaluation du projet
E = Examen écrit de rattrapage (écrit)

Calendrier

Le cours est programmé dans ces filières :

  • Cursus ingénieur - Filière MMIS - Semestre 9
  • Cursus ingénieur - Filière MMIS - Semestre 9
  • Cursus ingénieur - Filière MMIS - Semestre 9
cf. l'emploi du temps 2020/2021

Informations complémentaires

Code de l'enseignement : 5MMCGPU7
Langue(s) d'enseignement : FR

Vous pouvez retrouver ce cours dans la liste de tous les cours.

Bibliographie

Parallel Computing: Principles and Practice - T. J. Fountain
Patterns for Parallel Programming - Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill
Introduction to Parallel Computing - Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta
CUDA by Example: An Introduction to General-Purpose GPU Programming - Jason Sanders, Edward Kandrot
Heterogeneous Computing with OpenCL de Benedict Gaster