Optimiser la consommation des applications embarquées

Date :
Mis à jour le 08/04/2020
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.
Ce projet a d'ailleurs gagné un i-PhD BPI France. Un concours, et un prix, qui vise à soutenir les jeunes Docteurs souhaitant valoriser leurs travaux de recherche, à aider la création d’entreprises mettant en œuvre des innovations de rupture.

Optimiser la consommation des applications embarquées

A_Bonnot_720x540
© Inria / Photo A. Crenn
© Inria / Photo A. Crenn

© Inria / Photo A. Crenn

Crédit © Inria / Photo A. Crenn

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.

L'Institut d’électronique et de télécommunications de Rennes (IETR) est une unité mixte (UMR 6164) regroupant des équipes de recherche de l'INSA Rennes, de l'Université de Rennes 1, de CentraleSupélec, de l'Université de Nantes et du CNRS.

 

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 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.

Cairn est une équipe de recherche Inria, ENS Rennes, Université Rennes 1, CNRS, commune à l'Irisa (UMR CNRS 6074).

 

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, 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.

Qui est Justine Bonnot ?

Justine Bonnot
© Inria / Photo A. Crenn
© Inria / Photo A. Crenn

© Inria / Photo A. Crenn

Crédit © Inria / Photo A. Crenn

Justine Bonnot a un parcours atypique et beaucoup de détermination. Dès le collège, suite à une première rencontre avec le brevet d’initiation aéronautique, elle a pour ambition de devenir pilote de ligne. Bien plus tard, elle nourrit ce projet, qui ne l'a pas quitté depuis, avec une formation en maths sup maths spé. « Être pilote, c’est devoir faire toutes sortes de calculs mentaux très rapidement. » Elle arrive ensuite à l’INSA Rennes, s'ensuit alors sa deuxième rencontre "coup de foudre" : avec la recherche. « Ça m’a vraiment plu, j’ai commencé à travailler très vite sur mon sujet actuel. » Enchainement sur une thèse en mathématiques et STIC, intitulé « Analyse des erreurs dans le cadre de l'implémentation de calculs approximés.» Ses plans de vies ont été changés mais elle a su rapidement reprendre les calculs pour modifier sa trajectoire et retrouver le contrôle avec brio. Tous l'enjeu de son travail de recherche ? « Tolérer les erreurs.» La dimension écologique de ce travail est un de ses moteurs. « Ça donne du sens à ce que nous faisons. En un an, un smartphone consomme plus que certains réfrigérateurs ! Le nombre d'objets connectés augmente tellement que nous ne serons plus capables de produire assez d'énergie pour les alimenter d'ici 2040. » Avec ses derniers travaux, elle découvre un intérêt utile et concret, pouvant s’appliquer à l’industriel, d’où le projet de start-up à l'Inria Start-up Studio. Elle a d'ailleurs gagné un prix iPhd BPI France pour son projet Embed It Easy. Si nous demandons à Justine Bonnot à quoi ressemble sa vie actuellement, elle conclut : « Je pense que je suis au bon endroit, que je fais ce que je suis censé faire. »