Thèse soutenue

Génération automatique de modèles de performance pour architectures hétérogènes

FR  |  
EN
Auteur / Autrice : Nicolas Derumigny
Direction : Fabrice RastelloLouis-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

FR  |  
EN

Résumé

FR  |  
EN

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.