Sous la supervision de l’équipe de recherche, l’ingénieur aura les responsabilités clés suivantes :
Conception et implémentation d’annotations textuelles avancées (priorité haute)
Analyser et prioriser les besoins des développeurs pour la compréhension des métriques de performance et des informations d’assembleur issues de GUS.
Développer des mécanismes d’annotation textuelle pour enrichir l’affichage de l’assembleur brut. Ces annotations incluront l’intégration directe de métriques de performance (ex: cycles CPU, cache misses) à côté des instructions concernées.
Mettre en œuvre des techniques pour reconstruire et afficher textuellement des abstractions de haut niveau (le “raising conceptuel” de la thèse). Cela pourrait se traduire par l’identification et l’annotation de structures de contrôle (boucles optimisées), de blocs fonctionnels, ou de patterns d’accès mémoire spécifiques au deep learning.
Établir et afficher textuellement le lien sémantique avec le code source original (“l’alignement conceptuel”). Cela implique des références textuelles, des numéros de ligne, ou des portions de code source annotées directement dans la vue assembleur.
Développement d’une interface textuelle interactive
Concevoir et implémenter des mécanismes d’interaction basés sur le texte pour naviguer au sein des annotations et des différentes couches d’information. Par exemple, des liens cliquables dans le texte pour “déplier” des détails, des filtres pour afficher ou masquer certains types d’annotations, ou des fonctions de recherche contextuelle.
L’objectif est de permettre une exploration guidée et approfondie des données sans quitter la vue textuelle.
Documentation et veille applicative
Documenter de manière exhaustive les nouvelles fonctionnalités, les formats d’annotations et les choix techniques.
Effectuer une veille ciblée sur les approches innovantes d’analyse de texte pour le code, de rétro-ingénierie textuelle et de présentation d’informations techniques complexes.