• Votre sélection est vide.

    Enregistrez les diplômes, parcours ou enseignements de votre choix.

Multicoeurs et accélérateurs de calcul

  • Composante

    ENSEIRB-MATMECA

Code interne

EI9IT390

Description

Le cours est décomposé en 2 parties. L'une sur le fonctionnement des multicoeurs généralistes, l'autre sur le fonctionnement des accélérateurs graphiques.
L'objectif de ce cours sera d'une part de présenter ces architectures, et d'autre part d'apprendre à les programmer efficacement à l'aide :
 
 - de flags de compilation
 - d'extensions du compilateur (SIMD, fonction intrinsèques),
 - d'annotations de code (OpenACC),
 - de langages specifiques (CUDA),
 - de bibliothèques optimisées (CUBLAS),
 - d'outils d'analyse de performances,
 - de support d'exécution à base de tâches (StarPU) pour articuler les multicoeurs généralistes et les accélérateurs graphiques.

La description du fonctionnement de ces architectures sera mise en oeuvre par le biais de microbenchmarks, pour bien comprendre le lien entre le code écrit, le code généré par les compilateurs et leurs performances.
Des TPs seront consacrés à l'écriture, au debug, et à l'optimisation de code accéléré sur GPU et sur multicoeurs, ainsi qu'a l'analyse des performances.

Lire plus

Pré-requis obligatoires

Notions de parallélisme.
Connaissance du C/C++ (en particulier la gestion de la mémoire)

Lire plus

Informations complémentaires

Fonctionnement et optimisation de code pour les multicoeurs et les accélérateurs de calcul de type GPU.

Lire plus

Modalités de contrôle des connaissances

Évaluation initiale / Session principale - Épreuves

Type d'évaluationNature de l'épreuveDurée (en minutes)Nombre d'épreuvesCoefficient de l'épreuveNote éliminatoire de l'épreuveRemarques
ProjetTravail sur machine1
ProjetSoutenance1