Le CEA-List développe un ensemble d’outils d’aide à la conception (prototypage, exploration d’espace de conception, analyse, génération de modèles) et à la validation (simulation, analyse de code, analyse de performance, etc.) qui facilite l’implémentation et l’optimisation des nouvelles architectures. Ces outils permettent de réaliser des preuves de concept virtuelles d’architectures logicielles et matérielles de calcul sur les technologies existantes et/ou futures et de valoriser les modèles.
Il est possible de modéliser les contraintes d’environnement logiciel pour optimiser l’outillage d’exécution (compilateurs, runtime, bibliothèques).
Le List a développé un savoir-faire dans les méthodes formelles de modélisation et de vérification de code, à la fois au niveau logiciel et matériel.
Côté logiciel, les deux outils phares de vérification formelles sont Frama-C, pour l’analyse de code C et BINSEC, pour l’analyse de code exécutable binaire. Le lien avec les spécificités matérielles des architectures (jeux d’instructions, opérateurs dédiés) est assuré par des décodeurs issus de l’outil d’analyse dynamique de code binaire UniSIM-VP.
Le framework LEAF permet quant à lui la vérification formelle de propriétés temporelles et de sécurité de l’ensemble logiciel et matériel d’un système embarqué.
Cette expertise est mobilisée par le programme, notamment pour valider les propriétés fonctionnelles et extra-fonctionnelles dans l’objectif d’adapter le logiciel à l’environnement matériel, conformément aux spécifications au niveau du système.
La conception d’architectures de calcul numériques étant de plus en plus complexe, le nombre de paramètres à prendre en compte croit et il est nécessaire d’explorer rapidement l’espace des possibles pour trouver la meilleure configuration. Les équipes développent et utilisent les outils VPSim (prototypage virtuel et simulation) & A-DECA (exploration automatique de l’espace de conception), pour accompagner la conception d’architectures numériques issues des travaux de recherche. VPSim permet ainsi la simulation et la validation rapide des systèmes complexes avec le meilleur compromis entre le temps d’exécution de la simulation et la précision des paramètres évalués. Il fournit ainsi une évaluation fidèle des différentes performances du système.
A-DECA (Automated Design space Exploration for Computing Architectures) est un outil d’aide à la décision modulaire qui s’interface avec des simulateurs (en particulier VPSim) et combine les résultats avec des formulations analytiques pour une évaluation pertinente des architectures. Il permet l’exploration automatique et efficace de l’espace de conception en intégrant les différentes contraintes et objectifs de conception traditionnels (performance, consommation, surface) ainsi que des critères innovants comme la sécurité et l’empreinte environnemental. Son but est de proposer des configurations pertinentes répondant à des critères d’optimisation multi-objectifs.
Simuler précisément les propriétés extra-fonctionnelles telles que la performance ou la consommation est un enjeu clé de la simulation et l’exploration d’architectures numériques. Le CEA-List développe kMLeon, un outil permettant de générer automatiquement par apprentissage machine des modèles représentatifs de ces propriétés qui, couplés à des modèles fonctionnels, rendent la simulation d’architectures numériques plus précise. Le CEA-List cherche ainsi à exploiter au mieux les technologies d’intelligence artificielle au service de la conception d’architectures de calcul.
Les technologies utilisées par le CEA-List sont nombreuses et variées :
Avec l’augmentation croissante des besoins en calcul numérique, en particulier tirés par l’essor des applications faisant appel à l’intelligence artificielle, nous devons repenser les processus de développement et proposer des méthodologies innovantes et des outils performants pour simplifier la conception des nouvelles architectures.