Comment rendre les objets connectés moins énergivores ?

On comptait 11 milliards d’objets connectés dans le monde en 2017. Alvaro Reyes/Unsplash

Cet article est publié dans le cadre de la Fête de la Science 2018 dont The Conversation France est partenaire. Retrouvez tous les débats et les événements de votre région sur le site Fetedelascience.fr


Les objets connectés (smartphones, GPS, tablettes, montres connectées…) ont envahi notre quotidien. De 500 millions en 2003, leur nombre dépassait les 11 milliards dans le monde en 2017.

Leur croissance est si forte que, d’après une étude, l’énergie nécessaire pour les utiliser dépassera l’énergie mondiale produite d’ici 2040. Aujourd’hui, des solutions sont recherchées pour faire face à cette situation préoccupante, tout particulièrement dans le domaine de la santé, où l’usage des appareils connectés devrait connaître une très forte croissance.

Les objets connectés et les applications qu’ils hébergent remplissent différentes fonctionnalités pour lesquelles ils effectuent des calculs. Ils récupèrent ainsi les données de leur environnement à l’aide, par exemple, de capteurs qui traitent ces données.

Ces traitements peuvent consister en du filtrage (pour améliorer la qualité d’une image), de la compression (pour réduire la quantité d’informations à envoyer sur le réseau ; c’est ce que permet la norme de codage vidéo HEVC utilisée pour vous permettre de regarder des vidéos sur YouTube), ou encore pour transmettre l’information.

Le volume de données à traiter, ainsi que la complexité des calculs effectués, impactent la consommation énergétique de vos appareils du quotidien et finit par peser lourd.

Simplifier les calculs

Pour réduire la consommation énergétique des applications, de nouvelles méthodes de calcul ont été proposées : qu’il s’agisse de calcul « stochastique » (remplaçant les valeurs dans les calculs par des suites de 0 et de 1 aléatoires), « probabiliste » (liant l’énergie dépensée à effectuer les calculs à leur probabilité d’être correct), ou « approximé » (introduisant délibérément des simplifications dans les calculs), ces nouvelles façons de calculer visent à réduire l’énergie consommée par nos objets connectés.

Ces techniques se basent toutes sur une même constatation : la qualité offerte par nos objets connectés est généralement très supérieure à la qualité utile et perceptible par et pour l’utilisateur.

Pour réduire l’énergie consommée par les différents traitements effectués par les objets connectés, au sein de l’équipe de recherche Vaader, nous nous sommes penchés sur ce que l’on nomme l’approximate computing.

L’approximate computing consiste à introduire délibérément des simplifications dans les calculs pour en réduire la consommation énergétique. Ces simplifications peuvent cependant induire des erreurs. La difficulté, lors de la mise en place de simplifications, porte sur le fait de simplifier les calculs suffisamment pour en voir l’impact sur la consommation énergétique, tout en maîtrisant l’erreur commise sur la qualité du résultat final.

Pour introduire de telles simplifications, différentes techniques ont été proposées : on peut par exemple utiliser des opérateurs arithmétiques plus simples, en les substituant aux traditionnels additionneurs, multiplieurs. On peut également réduire le volume de données à traiter, ou bien modifier la précision de codage de nos données impactant la précision de notre résultat final.

Reste que la perte de qualité sur la sortie de l’application (image filtrée, signal compressé, etc.) doit être quantifiée et maîtrisée.

La question des tests

Mon travail de recherche au quotidien consiste à quantifier ces pertes en représentant l’erreur induite par les simplifications à l’aide d’un modèle mathématique. Une fois qu’un modèle de l’erreur a été défini, il est plus facile d’identifier les applications tolérantes aux pertes de qualité.

Par exemple, lors de la compression d’une vidéo à l’aide du CODEC HEVC, l’œil humain ne sera pas forcément capable de déceler une perte de qualité à moins qu’elle n’excède une certaine limite. Dans ce cas, il devient possible de simplifier de façon importante les calculs sans avoir d’impact sur la qualité visuelle perçue en sortie.

Lors de l’introduction d’approximations dans une application, il faut s’assurer que l’espace des erreurs générées reste dans la marge d’erreur tolérée par l’application. En effet, l’utilisateur doit conserver un usage « transparent » de l’application, c’est-à-dire ne pas se rendre compte des simplifications utilisées. La solution qui vient instantanément à l’esprit serait de tester tous les cas possibles avec l’application dite « approximée » (simplifiée).

Dans de nombreux cas cependant, ces tests exhaustifs s’avèrent impossibles, car bien trop longs.

Une solution proposée par les concepteurs d’opérateurs arithmétiques approximés consiste à tester un nombre de cas important mais limité, considérant que cela est suffisant pour rencontrer toutes les situations d’erreurs possibles. Il faut donc identifier un sous-ensemble de cas représentatifs à tester afin d’avoir une vue précise du comportement de l’application approximée.

Pour cela, je me base sur les statistiques et j’ai pu développer une méthode automatisée sur ordinateur permettant de déterminer et tester un sous-ensemble représentatif. Cette méthode s’adapte à différentes techniques de simplification. Un utilisateur potentiel de simplifications peut dès lors demander une caractérisation des erreurs avec une certaine confiance, tout en ne testant qu’un sous-ensemble des cas possibles. Cela fait par exemple passer la durée des tests pour une application de traitement d’images de 8 heures à 10 minutes !

De nombreuses recherches ont été menées afin de trouver des techniques de simplification. Il est néanmoins nécessaire de pouvoir caractériser précisément les erreurs induites par ces simplifications pour pouvoir les utiliser réellement dans les objets de la vie quotidienne.