au sommaire
On imagine bien souvent l'informatique comme une science qui cherche à atteindre la précision la plus fine dans ses calculs. En théorie, mais aussi en pratique : imaginez seulement qu'un calculateur, au moment de réaliser vos comptes trimestriels, décide de croire qu'additionner 1 à 1 ne ferait plus 2. L'horreur, n'est-ce pas ? Pour la plupart des utilisations d'un ordinateur, ce serait une hérésie. Mais pour certaines tâches qui demandent beaucoup de ressources à un processeur classique, concevoir un processeur qui, matériellement, peut affirmer que 1 + 1 ne font pas 2, mais 2,1, 1,9 ou 1,6 peut avoir un intérêt.
C'est exactement l'idée derrière le processeur Singular de Joseph Bates, récemment financé par la Darpa. L'engin a été conçu et assemblé pour que les résultats qu'il donne soient matériellement imprécis, sans impact négatif pour les logiciels qui n'ont pas besoin d'une précision d'horlogerhorloger. Toute la subtilité, c'est de trouver des tâches à lui donner qui, aujourd'hui, rendent les calculs des processeurs traditionnels extrêmement complexes. Pour bien saisir l'avancée, prenons l'exemple qui a été testé par les équipes de Bates pour démontrer les capacités de son processeur.
Aujourd'hui, il est très difficile pour un ordinateur de reconnaître un objet sur une vidéo, par exemple des voituresvoitures en mouvementmouvement. Un logiciel de reconnaissance visuelle va être développé spécifiquement pour faire des approximations. Il va prendre sur la vidéo des groupes de pixels plutôt que des pixels individuels et va pouvoir dire, par exemple, que tel groupe correspond à une voiture.
Le processeur conçu par Singular Computing s’adapte plus facilement aux informations imprécises qui sont utilisées par les logiciels de reconnaissance d’image. © Singular Computing
Cent fois plus rapide qu’un processeur classique
Ce n'est pas l'assemblage de tous les milliers de pixels les uns à côté des autres qui va être interprété, mais la forme globale de tous ces pixels. On a donc, du côté de la programmation logicielle, créé un programme qui, pour ne pas avoir besoin de trop de ressources, doit brouiller l'information parfaite transmise par le processeur. Le résultat final est bon car l'ordinateur sait dire que ce-groupe-de-pixels-imprécis-ressemble-à-une-voiture-c'est-donc-peut-être-une-voiture. Reste au développeur à renseigner son programme petit à petit pour lui apprendre à être de plus en plus fiable - sans jamais avoir pensé à la consommation énergétiqueconsommation énergétique du processeur ni à l'utilisation des ressources de celui-ci.
Imaginez maintenant qu'un tel logiciel ait été développé pour tourner avec un processeur dont les résultats sont imparfaits par essence. Le résultat va être le même (il saura toujours détecter une voiture), mais il sera obtenu, d'après les tests faits avec Singular, 100 fois plus rapidement qu'avec un processeur classique. Les informations qu'il traite sont déjà brouillées par du bruit : s'adapter à ces informations imprécises plutôt que de chercher à rendre imparfaits les résultats d'un processeur classique est bien plus efficace. Pour cette tâche, Singular a utilisé 2 % de l'énergieénergie utilisée par un processeur classique à qui on a demandé la même chose.
Et à mesure que se développe le deep learning, notamment du côté des intelligences artificielles, un tel outil pourrait résoudre les problèmes que rencontre aujourd'hui l'informatique quand on cherche à lui faire analyser le réel, tous ses aléas et ses imprécisions. Au lieu de faire la course à la puissance pour traiter de plus en plus d'informations dont la nature est de plus en plus complexe, Bates a donc choisi de revoir la manière dont on calcule dans des domaines où la perfection n'est pas de rigueur. Non, Singular ne fera pas votre comptabilité, mais il pourrait comprendre bien plus facilement ce qui se passe s'il était amené à devenir le cerveaucerveau derrière les yeuxyeux d'un robot.