Génération automatique de modèles de performance pour architectures hétérogènes
Auteur / Autrice : | Nicolas Derumigny |
Direction : | Fabrice Rastello, Louis-Noël Pouchet |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 13/12/2023 |
Etablissement(s) : | Université Grenoble Alpes en cotutelle avec Colorado state university |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire d'informatique de Grenoble |
Equipe de recherche : Equipe-projet Compiler optimization and run-time systems (Montbonnot, Isère ; 2014-....) | |
Jury : | Président / Présidente : Frédéric Pétrot |
Examinateurs / Examinatrices : Ayal Zaks | |
Rapporteurs / Rapporteuses : Sebastian Hack, Erven Rohou |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Tout au long des 40 dernières années, la loi de Moor a permi d'augmenter de façon exponentielle la densité des transistors des circuits intégrés. En conséquence, les appareils informatiques - allant des processeurs centraux aux accélérateurs dédiés, sont devenus de plus en plus complexes du fait de la multiplicité croissante de leurs unités de calcul.Par conséquent, à la fois le design de puces et l'optimisation logicielle (qu'elle soit manuelle, en assembleur, ou effectuée par un compilateur) doivent résoudre le problème de l'association efficace des calculs variés du programmes aux unités présentes sur le matériel. Or, les caractéristiques de ces unités ne sont pas toujours disponibles. Devant la diversité des CPU du commerce (Intel, AMD, Arm ayant chacun leurs microarchitectures), nous nous attaquons ici au problème de la génération automatique de modèles de performance, applicables lors de l'optimisation à grain fin de programme réguliers.De plus, dans les cas où des gains de multiples ordre de grandeur sont désirés, des accélérateurs spécifiques doivent être utilisé, ce qui pose une question similaire au niveau de l'organisation de la puce. Pour faire face à ces questions, nous proposons deux approches complémentaires : d'une part, l'étude d'accélérateurs haute performances spécialisés pour une application et, d'autre part, la génération automatique d'architectures semi-spécialisées pour accélérer une famille d'applications.