Skip to content. | Skip to navigation

Emergences

Lettre d'information n° 28

Image emergences pour impression
Personal tools
You are here: Home 2013 Lettre d'information n° 28 Améliorer l'efficacité énergétique des processeurs embarqués
Document Actions

Améliorer l'efficacité énergétique des processeurs embarqués

Consommer moins d'énergie pour faire durer la batterie. Ce leitmotiv régente l'univers des micro-processeurs embarqués, qu'ils soient logés dans nos téléphones ou nos voitures. Oui, mais comment y parvenir ? En développant des architectures programmables spécialisées et minimalistes. Puis en optimisant les applications qui s'exécuteront sur celles-ci. Une équipe de recherche Inria peaufine deux nouveaux outils conçus pour optimiser le code C++ ou Matlab avant la synthèse matérielle de haut niveau aboutissant à la création des circuits intégrés.

Consommer moins d'énergie pour faire durer la batterie. Ce leitmotiv régente l'univers des micro-processeurs embarqués, qu'ils soient logés dans nos téléphones ou nos voitures. Oui, mais comment y parvenir ? En développant des architectures programmables spécialisées et minimalistes. Puis en optimisant les applications qui s'exécuteront sur celles-ci. Une équipe de recherche Inria peaufine deux nouveaux outils conçus pour optimiser le code C++ ou Matlab avant la synthèse matérielle de haut niveau aboutissant à la création des circuits intégrés.

Nous travaillons sur l'architecture des processeurs embarqués dans des domaines présentant des contraintes liées à l'énergie comme les téléphones portables ou les réseaux de capteurs par exemple, explique Olivier Sentieys, responsable de Cairn, une équipe de recherche localisée à Lannion et Rennes (1). La meilleure manière de maintenir une faible consommation, c'est de spécialiser le matériel à l'application qu'il exécute.” Autrement dit : tailler sur mesure des systèmes sur puces (SoC) complètement dédiés à un domaine particulier. La plupart de ces systèmes utilisent des FPGA (2), c'est-à-dire des circuits programmables que l'on peut personnaliser en spécialisant chacun des transistors. Ainsi programmés, les circuits effectueront les tâches pour lesquelles ils sont conçus, mais rien de plus. Il faudra une reconfiguration dynamique du matériel pour apporter de la flexibilité au niveau applicatif.

Voilà pour le principe. Toute la difficulté consiste ensuite à composer une architecture idéale en fonction du programme et de son code. C'est ce qu'on appelle la synthèse matérielle de haut niveau (HLS). Des logiciels commerciaux existent pour effectuer ce travail à partir des spécifications C/C++. Mais les chercheurs estiment pouvoir encore gagner en efficacité. Dans les dernières années, ils ont donc élaboré  Gecos et ID.Fix, deux outils de transformations source-à-source (3) conçus précisément pour mieux optimiser le code.

Plus de parallélisme

Gecos agit, entre autres choses, comme un transformateur de boucles afin d'exposer plus de parallélisme. Pourquoi ? Parce que dans l'exécution d'un programme, le parallélisme permet justement d'améliorer l'efficacité énergétique. De son côté, ID.Fix s'intéresse d'abord à la précision des calculs. Son objectif : 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 d'énergie devient énorme.” À partir de ce constat, une nouvelle question s'impose : de quel niveau de précision a-t-on vraiment besoin ? “La réponse dépend énormément du type d'application. Ainsi pour du traitement d'images, on n'a pas forcément besoin d'opérations à 64 bits. Donc ID.Fix va produire en sortie du code C à virgule fixe qui prend en compte le degré de précision ciblé et contraint par l’utilisateur. Chaque variable du programme peut être traitée par un additionneur spécifique : 12 bits pour celle-ci, 13 pour celle-là, etc...  À notre connaissance, il n'y a pas d'autre outil de ce type dans le monde.

ID.Fix et Gecos se trouvent encore au stade du prototype. Tous deux  “reposent sur des formalisations mathématiques. Nous recourons à un modèle analytique du programme. Les solutions commerciales, elles, s'appuient sur de la simulation ou du profilage, ce qui s'avère bien plus long. À l'inverse, grâce au modèle, nous partons d'un plus haut niveau. Cela permet d'explorer automatiquement plus de solutions et de déterminer les performances selon les différents scénarios. Voilà pourquoi ces outils sont si efficaces” et si uniques.

------
Notes :
(1) Cairn est une équipe de recherche Inria/ENS Cachan, Université Rennes 1, CNRS, commune à l'Irisa (UMR CNRS 6074).
(2) Field-programmable gate array
(3) Un logiciel qui prend en entrée du code dans un langage puis produit en sortie soit du code optimisé dans le même langage soit du code dans un autre langage.