Compilation et optimisation de code [T9ES543M]

Compilation et optimisation de code [T9ES543M]

En pratique

Nature
Elément constitutif
Volume horaire de TP
12
Volume horaire de CM
6
Volume horaire de travail personnel
12
Langue d'enseignement
Français

Description du contenu de l'enseignement

Ce cours donne les éléments de compréhension cocernant les mécanismes de compliation et d'optimisation de code  en vue de poroduire des implémentations d'applicatiosn efficace sur des architectures de proceseurs modernes.

Organisation

Modalités d'organisation et de suivi

Le cours est organisé en trois parties :

  1. Flot de compilation
    1. Organisation du flot de compilation GCC
    2. Outil Makefile
    3. Exécution d'un programme
  2. Mesure de performance d'un code
    1. instrumentation : profilage invasif/non invasif
    2. quelques outils : gprof, valgrind
  3. Optimisation de code
    1. place des optimisations dans le flot de compilation
    2. optimisation avec GCC
    3. optimisation en lien avec la hiérarchie mémoire

Informations pédagogiques

Compétences à acquérir

L'objectif de de cours est de comprendre et maîtriser les étapes de la compilation de codes écrits en langage C, de savoir mesurer les performances d'un programme et d'identifier les goulets d’étranglement.
A l’issue de cours, les étudiants seront en mesure de comprendre les techniques de compilation et d’optimisation de code disponibles dans les compilateurs récents, et cela en vue de réaliser des implémentations efficaces tant d’un point de vue temps d’exécution que d’un point de vue énergétique.
Les grandes catégories d’optimisation de code seront étudiées,  en particulier celles tenant compte de la hiérarchie mémoire. Des analyses d’exécution permettront aux étudiants de faire le lien entre les architectures des processeurs et leur impact sur l’exécution de leur code.

Pré-requis recommandés

  • Connaissance des architectures des processeurs modernes
  • Connaissance des techniques pipeline, exécution multi-threads, hiérarchie mémoire, etc
Dernière modification : ven, 08/01/2021 - 15:41