Thèse Co-Optimisation Architecture-Compilateur pour une Gestion Efficace de la Mémoire dans les Systèmes Hétérogènes H/F - Doctorat.Gouv.Fr
- CDD
- Doctorat.Gouv.Fr
Les missions du poste
Établissement : Université de Montpellier École doctorale : I2S - Information, Structures, Systèmes Laboratoire de recherche : Laboratoire d'Informatique, de Robotique et de Micro-électronique de Montpellier Direction de la thèse : David NOVO ORCID 0000000255104152 Début de la thèse : 2027-03-01 Date limite de candidature : 2026-10-15T23:59:59 Les systèmes de calcul modernes intègrent de plus en plus d'accélérateurs spécialisés, tels que des réseaux systoliques, des processeurs vectoriels ou des accélérateurs proches de la mémoire. Cette hétérogénéité permet d'améliorer les performances et l'efficacité énergétique, mais complique fortement le déploiement des applications, l'association entre noyaux de calcul et ressources matérielles, ainsi que l'optimisation des mouvements de données.
Cette thèse s'inscrit dans le projet COACH du PEPR PHOENIX, dont l'objectif est de développer un écosystème open source pour la conception et l'optimisation de systèmes de calcul hétérogènes. Le sujet porte plus spécifiquement sur l'utilisation de MLIR comme représentation intermédiaire pour analyser, transformer et compiler des noyaux de calcul vers des accélérateurs matériels, en mettant l'accent sur les transformations de flux de données et l'optimisation mémoire.
Le doctorant développera des méthodes permettant d'exploiter la sémantique de haut niveau disponible dans MLIR afin d'identifier les mouvements de données, d'exposer différentes variantes de parallélisme et de localité mémoire, et de générer du code ou des descriptions matérielles adaptées à des accélérateurs de type réseau systolique, vectoriel ou RISC-V. Les méthodes proposées seront évaluées sur des applications représentatives du projet COACH, en lien avec les outils d'exploration de l'espace de conception et les plateformes de simulation développés dans les autres lots.
Les résultats attendus incluent un flot de compilation basé sur MLIR, des transformations de données adaptées aux architectures hétérogènes ciblées, des modèles permettant d'évaluer les compromis performance/énergie/surface, ainsi que des contributions logicielles open source intégrables à l'écosystème COACH. Les architectures hétérogènes à base de processeurs généralistes et d'accélérateurs spécialisés offrent des gains importants en performance et en efficacité énergétique, mais leur conception et leur programmation restent difficiles. L'espace de conception devient très large, car il faut choisir les accélérateurs adaptés, répartir les noyaux de calcul, gérer les mouvements de données et évaluer les compromis performance/consommation/surface.
Le projet COACH vise à fournir un écosystème de co-conception matériel-logiciel pour ces systèmes, depuis la représentation des applications jusqu'à la simulation détaillée. MLIR constitue un support particulièrement adapté pour ce travail, car il permet de manipuler des représentations intermédiaires à plusieurs niveaux d'abstraction et de développer des transformations réutilisables dans un flot open source. L'objectif de la thèse est de développer un flot de compilation basé sur MLIR permettant d'optimiser le déploiement de noyaux de calcul sur des architectures hétérogènes intégrant des accélérateurs spécialisés. Le travail visera en particulier à réduire les mouvements de données et à améliorer l'exploitation de la hiérarchie mémoire par des transformations de flux de données, tout en conservant la capacité à générer du code ou des descriptions matérielles pour des accélérateurs de type réseau systolique, vectoriel ou RISC-V. La thèse suivra une approche expérimentale combinant compilation, modélisation et évaluation architecturale. Le doctorant commencera par étudier les dialectes MLIR pertinents pour les applications ciblées, notamment linalg, SCF et affine, puis développera des transformations permettant d'exposer différentes variantes de flux de données et de localité mémoire.
Ces transformations seront ensuite reliées à des modèles d'accélérateurs représentatifs, en particulier des réseaux systoliques, des processeurs vectoriels et des accélérateurs couplés à un processeur RISC-V. Le flot sera évalué à partir de métriques telles que la performance, les mouvements de données, l'énergie et la surface. Les résultats seront intégrés progressivement à l'écosystème logiciel du projet COACH et validés sur des cas d'étude représentatifs.
Le profil recherché
Le candidat devra être titulaire d'un master ou diplôme équivalent en informatique, architecture des ordinateurs, systèmes embarqués, microélectronique ou domaine proche.
Les compétences recherchées incluent une bonne maîtrise de la programmation en C/C++ et/ou Python, des connaissances en architecture des ordinateurs, systèmes embarqués ou conception matérielle, ainsi qu'un intérêt pour les architectures hétérogènes, les accélérateurs matériels, RISC-V et les outils open source. Une expérience avec LLVM/MLIR, CIRCT, HLS, RTL, gem5 ou des simulateurs architecturaux serait un atout, mais n'est pas obligatoire.
Le candidat devra faire preuve d'autonomie, de rigueur scientifique, d'une bonne capacité de communication, et d'un intérêt pour le travail collaboratif dans un projet national impliquant plusieurs partenaires académiques.
Les compétences recherchées incluent une bonne maîtrise de la programmation en C/C++ et/ou Python, des connaissances en architecture des ordinateurs, systèmes embarqués ou conception matérielle, ainsi qu'un intérêt pour les architectures hétérogènes, les accélérateurs matériels, RISC-V et les outils open source. Une expérience avec LLVM/MLIR, CIRCT, HLS, RTL, gem5 ou des simulateurs architecturaux serait un atout, mais n'est pas obligatoire.
Le candidat devra faire preuve d'autonomie, de rigueur scientifique, d'une bonne capacité de communication, et d'un intérêt pour le travail collaboratif dans un projet national impliquant plusieurs partenaires académiques.
Compétences requises
- Python
- C++
- Autonomie
- Systèmes embarqués