Thèse Evaluation Robuste de la Performance des Processeurs Généralistes Basée sur la Simulation H/F - Doctorat.Gouv.Fr
- CDD
- Doctorat.Gouv.Fr
Les missions du poste
Établissement : Université Grenoble Alpes École doctorale : MSTII - Mathématiques, Sciences et technologies de l'information, Informatique Laboratoire de recherche : Techniques de l'Informatique et de la Microélectronique pour l'Architecture des systèmes intégrés Direction de la thèse : Arthur PERAIS ORCID 0000000257572507 Début de la thèse : 2027-04-01 Date limite de candidature : 2026-10-30T23:59:59 L'utilisation de prototypes matériels pour la conception de systèmes de calcul n'est pas raisonnable vu la durée et le coût impliqués dans la manufacture d'un tel prototype. De ce fait, des modèles logiciels sont utilisés pour déterminer et raffiner la microarchitecture de chaque composant ainsi que de l'architecture du système complet. Ces modèles (simulateurs) peuvent modéliser un unique composant (CPU, GPU) ou le système entier, à différents niveaux d'abstraction. Par exemple, un modèle fonctionnel de CPU simule uniquement la sémantique des instructions et permet l'étude du jeu d'instruction (par ex., mix d'instructions dans les programmes). D'un autre côté, un modèle temporel de CPU va modéliser la microarchitecture qui exécute les instructions et le temps necéssaire à cette exécution. Cela permet d'évaluer les fonctionnalités qui impactent la performance. Obtenir des informations pertinentes via la simulation de CPU est cependant difficile, et implique deux problèmes principaux.
Premièrement, valider un simulateur temporel est compliqué car ce qui est 'correct' n'est en général pas bien défini. En effet, même si la microarchitecture exécute les instructions correctement (correction niveau architectural), elle peut ne pas le faire aussi rapidement qu'escompté, à cause d'une erreur d'implémentation. Cependant, dans un contexte académique, ce qu'est une implémentation correcte est souvent mal défini car la référence est en général un article scientifique, qui ne fournit pas toujours une spécification complète du mécanisme microarchitectural étudié.
Deuxièmement, le bruit venant de la simulation d'un système complet peut impacter la qualité de la simulation. En effet, le CPU n'exécute pas uniquement le programme étudié de manière ininterrompue. Le système d'exploitation multiplexe plusieurs programmes sur un seul processeur, ce qui peut causer des interférences dans les structures microarchitecturales (par ex. caches, prédicteur de branchement) et impacter la performance du programme étudié. Par conséquent, il faut soit choisir de simuler le programme étudié en isolation, ignorant de ce fait les effets du système d'exploitation et des autres programmes, qui sont pourtant des effets présents dans les systèmes en pratique, ou simuler le système complet, subissant des interférences qui peuvent rendre difficile l'analyse des résultats de l'étude d'une fonctionnalité microarchitecturale en particulier.
Ce projet de thèse vise donc à permettre d'obtenir des informations pertinentes via la simulation de systèmes de calculs en utilisant des simulateurs 'académiques', c'est à dire développés par la communauté scientifique. Un premier effort portera sur le bruit de simulation venant du système, d'abord en le caractérisant en se concentrant notamment sur l'impact de la mémoire virtuelle, et ensuite en proposant des solutions pour réduire ce bruit. Un second effort portera sur la validation de la performance projetée par ces simulateurs en l'absence d'une référence physique. Cela requiert notamment une façon de définir une spécification microarchitecturale qui va plus loin que ce qui est fournit par les articles scientifiques. Concrètement, il s'agit de définir une fonctionnalité microarchitecturale comme un un ensemble d'états et d'opérations de manipulation de ces états, ainsi qu'un ordonnancement entre ces opérations.
Cette thèse s'inscrit dans le contexte du projet Phoenix de l'agence de programmes ASIC, et plus particulièrement dans le projet cible COACH qui vise à concevoir une plateforme virtuelle permettant l'exploration de l'espace de conception de systèmes sur puces hétérogènes. L'objectif global est de pouvoir explorer différents déploiements d'applications sur différentes organisation matérielle afin de tirer parti au mieux des capacités d'accélération dudit matériel. Ce projet possède donc un volet sur la méthodologie de simulation, car pour déterminer les déploiements les plus pertinents, la simulation doit être rapide et surtout correcte (ou a minima avec des limites connues et caractérisées).
Le profil recherché
- Maîtrise des concepts fondamentaux de l'architecture des processeurs (pipeline, caches, spéculation)
- Maîtrise du C++ (OOP, gestion mémoire). Générer du code via les outils d'IA générative sans comprendre les concepts et mécanismes sous-jacents ne sera pas considéré comme 'maîtrise'.
- Autonomie, l'objectif de la thèse étant à terme de pouvoir mener des recherches de façon autonome
- Bonnes capacités rédactionnelles en vue de l'écriture d'articles scientifiques
- Communication: capacité à travailler avec une équipe d'encadrement, c'est à dire à pouvoir faire état de l'avancement du projet, pouvoir identifier les points bloquants et en discuter.
- Maîtrise du C++ (OOP, gestion mémoire). Générer du code via les outils d'IA générative sans comprendre les concepts et mécanismes sous-jacents ne sera pas considéré comme 'maîtrise'.
- Autonomie, l'objectif de la thèse étant à terme de pouvoir mener des recherches de façon autonome
- Bonnes capacités rédactionnelles en vue de l'écriture d'articles scientifiques
- Communication: capacité à travailler avec une équipe d'encadrement, c'est à dire à pouvoir faire état de l'avancement du projet, pouvoir identifier les points bloquants et en discuter.
Compétences requises
- C++
- Intelligence artificielle
- Autonomie
- Compétences rédactionnelles