Pour économiser la batterie, les applications embarquées doivent consommer le minimum d’énergie et fonctionner avec une faible empreinte mémoire. D’où la nécessité d’optimiser le code afin d’alléger le travail du processeur. Dans ce domaine, des résultats de recherche d’Inria et de l’IETR vont aboutir à la création d’une startup autour d’un compilateur facilitant l’identification du meilleur compromis qualité/performance.
Aéronautique, automobile, téléphonie, internet des objets : en vingt ans, les systèmes embarqués se sont multipliés. Ils accomplissent déjà toutes sortes de tâches. Les concepteurs et les utilisateurs leur en demandent toujours plus. Mais cette boulimie se heurte à une limite : le peu d’énergie disponible pour faire tourner les processeurs. D’où la nécessité d’optimiser non seulement la partie matérielle de ces puces mais aussi les applications qui les utilisent. Et c’est justement ce à quoi travaille Justine Bonnot, qui a terminé une thèse à Rennes au laboratoire IETR/Insa (1).
Son thème : l’approximate computing. En clair : l’art et la manière de “relaxer la précision dans les calculs pour pouvoir fonctionner avec une architecture moins gourmande.” Donc “diminuer sciemment la qualité en sortie de l’application embarquée au bénéfice de sa performance énergétique.” Et ce n’est pas gênant ? “Non, à condition de trouver le bon compromis. Il faut identifier le niveau de dégradation acceptable et qui va permettre ensuite d’économiser de l’énergie.”
Et pas qu’un peu. “En diminuant le nombre de bits utilisés pour un calcul, on réduit la consommation électrique de façon quadratique, explique Olivier Sentieys, responsable de Cairn, une équipe Inria (2) spécialisée dans la recherche des architectures frugales. Le but est de transformer du code C utilisant la virgule flottante en spécification utilisant l’arithmétique virgule fixe. Si vous parvenez à convertir, par exemple, du 64 bits à virgule flottante en 12 bits à virgule fixe, alors le gain devient énorme.” Pour ce faire, les chercheurs de Cairn ont conçu TypEx, un prototype de compilateur qui prend le code existant d’une application et l’optimise en fonction du niveau de compromis qualité/performance défini par le développeur.
Explorer un champ de solutions
En pratique, “l’outil va explorer un champ de conception. Dans ce champ, il détermine plein de points de compromis et sélectionne le meilleur par rapport à la demande. Ce point doit se situer au-dessus de la qualité exigée mais avec un coût le plus faible possible. Cela peut concerner l’énergie, l’empreinte mémoire ou la surface de silicium. Jusqu’à présent, pour effectuer son exploration, cet outil avait besoin de beaucoup d’heures. Les travaux de thèse de Justine ont permis de réduire significativement le temps nécessaire. À cela s’ajoutent les contributions du chercheur Inria Tomofumi Yuki et l’étudiant en thèse Van-Phu Ha pour réduire la complexité de l’exploration. Leur approche consiste à décomposer une application complexe en différents noyaux et à utiliser des méthodes d’apprentissage automatique pour combiner des optimisations locales.”
Cette amélioration arrive dans un contexte où “plusieurs outils de l’équipe ont atteint un certain niveau de maturité.” D’où l’idée de créer une entreprise afin de les introduire dans l’industrie. À l’issue de sa thèse (3), Justine Bonnot s’apprête donc à rejoindre l’incubateur de start-up d’Inria pour y faire mûrir ce projet dont elle prend la direction. “Inria finance également un ingénieur pendant 12 mois. Par ailleurs, nous sommes soutenus par l’Insa Rennes, ainsi que par la SATT Ouest Valorisation qui finance une étude de marché et nous a aidé pour un dépôt de brevet.”
FPGA
À quel domaine applicatif s’adressera ce nouvel outil ? “Plutôt les accélérateurs matériels à base de FPGA sur lesquels on peut ajuster la précision, ainsi que les processeurs embarqués, répond Olivier Sentieys. Actuellement, il n’existe pas de logiciel aussi générique que le nôtre dans l’industrie de la CAO.” Et les efforts manuels d’optimisation restent très chronophages. “Passer du 64 bit flottant fonctionnant dans MatLab sur PC à une implémentation sur un FPGA ou un processeur embarqué qui n’a pas d’unité flottante, c’est long. Cela peut représenter 50% du temps d’implémentation et mobiliser énormément d’ingénieurs. Le passage à une précision réduite demeure une étape critique dans la conception de systèmes embarqués.”
Les 18 mois qui viennent vont permettre d’industrialiser le prototype. “L’idée, c’est aussi de définir un cahier des charges qui permette de coller le mieux possible aux besoins des entreprises, ajoute Justine Bonnot. Durant ma thèse, j’ai d’ailleurs interviewé une quinzaine d’industriels confrontés à ces problèmes-là pour bien mesurer les attentes.”
Intéressé par de vrais cas d’usage
Avant de commercialiser le logiciel, la start-up s’en servira en interne pour proposer des prestations de services. “Dans cette phase de démarrage, nous cherchons des industriels qui souhaiteraient nous confier l’optimisation d’applications leur posant problème. Cela nous permettrait d’éprouver nos outils sur de vraies applications industrielles.”
|