Des processeurs de deep learning, toujours plus économes
⏱ 6 minL’apprentissage profond (deep learning) du fait de son utilisation de plus en plus importante, a considérablement accru les préoccupations énergétiques des datacenters. Des processeurs spécifiques ont été développés, adaptés aux différentes phases de calcul de ces algorithmes. Plusieurs autres pistes sont à l’étude comme des puces neuromorphiques ou des puces optiques. Plongée dans les GPU, TPU, FPU et autres OPU !
Les datacenters, notamment ceux utilisés pour la simulation numérique (ou HPC, voir l’article « Ce qu’il reste à gagner côté datacenters » de notre dossier), facturent désormais les calculs au Wattheure, selon la consommation électrique. Google a été un des premiers à prendre conscience qu’il fallait équiper ses serveurs de nouveaux processeurs adaptés au deep learning, à base de réseaux de neurones profonds. Rien que pour la reconnaissance vocale, la firme américaine avait anticipé qu’il lui faudrait sinon doubler le nombre de ses serveurs. Les « accélérateurs de calcul » que Google a mis au point en 2015, les TPU (Tensor Processing Unit) dont la seconde génération, les Cloud TPU, a été dévoilée en 2017, sont plus rapides que les processeurs graphiques GPU (Graphical Processing Unit) et les puces de calcul CPU (Central Processing Unit) contemporains et consomment moins. « Un module de 64 TPU de seconde génération peut traiter jusqu’à 11,5 Petaflops 1015 soit 10 millions de milliards d’opérations en virgule flottante par seconde, la virgule flottante étant une méthode d’écriture de nombres réels. pour entraîner les modèles d’apprentissage automatique » écrivent des experts de Google.
« Aujourd’hui, Google, Facebook, Baidu ou encore Fujitsu avec ses DLU (Deep Learning Unit) développent ou projettent de développer de tels processeurs spécialisés pour le deep learning », ajoute Marc Duranton, chercheur au CEA, spécialiste du deep learning. Aucune de ces entreprises n’était pourtant dans le hardware. Mais pour promouvoir les applications de reconnaissance d’images, d’objets ou vocale, elles n’ont pas hésité à financer ces design spécifiques. « Ces puces spécialisés ont désormais quitté le domaine de la recherche pour celui de l’ingénierie », fait même remarquer le chercheur. Dans l’évolution matérielle des 20 dernières années, elles ont pris la suite des premier accélérateurs, les FPU (Floating-Point Unit) pour le calcul en virgule flottante, intégrés maintenant dans les cœurs des processeurs, puis des architectures multicoeurs, qui ont largement augmenté les puissances de calcul mais sont très généralistes, et des GPU, particulièrement adaptés pour du calcul massivement parallèle.
Les GPU, clés du développement de l’IA
Avant de balayer les nombreuses pistes actuellement à l’étude, voyons quels sont les besoins de l’apprentissage profond. Il faut distinguer les deux phases de calcul : d’abord la phase d’apprentissage au cours de laquelle un algorithme cherche l’ensemble des paramètres du modèle (les poids synaptiques des couches de neurones). Puis la phase d’inférence où il s’agit d’effectuer la tâche pour laquelle le modèle a été entraîné lors de la phase d’apprentissage. « L’apprentissage comporte un très grand nombre de calculs (des exaflops ou milliards de milliards d’opérations par seconde en virgule flottante), précise Marc Duranton. Ce sont essentiellement des multiplications de matrices mais qui ne nécessitent pas une grande précision. Un codage virgule flottante en 16 bits peut suffire – les processeurs actuels codent les flottants en 32 bits ou plus, ceux du HPC en 64 voire 128 bits. »
C’est dans ce contexte que les GPU se sont révélées adaptées, tant en termes de puissance de calcul que de volume de données à traiter. Un GPU contient des milliers d’unités de calcul contre une dizaine pour un CPU. De quoi accélérer la vitesse d’apprentissage. D’autant plus que Nvidia, principal fabricant de GPU, a « coupé » ses puces de dernière génération en 2 ou 4 pour faire les calculs encore plus rapidement sur seulement 16 bits. Les technologies comme Tensorflow, PyTorch ou Theano ont émergé de l’utilisation industrielle de ces GPU. Mais même si les GPU utilisées pour le calcul s’avèrent plus économes énergétiquement que les CPU, leur impact environnemental reste peu étudié. Et elles s’avèrent très consommatrices d’énergie.
« Dans la phase d’inférence, on peut faire les calculs sur des entiers,poursuit le chercheur. Un calcul sur 8 ou 16 bits suffit. Cela peut se faire aussi sur des circuits optimisés. » C’est ce que réalisent les premiers TPU. D’après les estimations de Google, leur TPU produit plus de 100 Gflops (milliards d’opérations par seconde en virgule flottante) en 16 bits par watt consommé, ce qui reste malgré tout important en termes de consommation électrique pour des systèmes comportant un grand nombre de circuits.
Les FPGA : un bon compromis pour le futur
Par ailleurs, n’oublions pas que la consommation des processeurs est avant tout due au transfert de données de la mémoire centrale aux mémoires cache successives jusqu’au registre de l’unité de calcul : Nvidia estime que cela consomme 100 fois plus d’énergie que de faire les opérations. « Beaucoup de recherches portent sur des architectures permettant de minimiser ces transferts en faisant les calculs directement dans les mémoires, ce qui est tout particulièrement adapté aux réseaux de neurones pour le calcul des poids synaptiques », explique Marc Duranton.
Parmi les solutions en développement pour l’apprentissage profond, les FPGA (Field-Programmable Gate Array) commencent à être installés notamment par Microsoft et Amazon. « Ces puces reprogrammables sont des solutions intermédiaires entre les systèmes programmables comme les CPU et les puces spécialisées (ASIC), précise-t-il. Elles offrent un bon compromis en termes de flexibilité et de performances. » Un FPGA peut être configuré pour faire un multiplieur ou un chemin de données spécialisé. Il est typiquement 10 fois plus efficace d’un point de vue énergétique qu’un processeur programmable pour une tâche particulière (l’ASIC étant encore 10 fois plus performant).
Le regain d’intérêt pour les FPGA date de 2010 quand Microsoft a étudié le potentiel de ces composants pour accélérer l’indexation de son moteur de recherche, Bing. Une démarche comparable à celle de Google avec ses TPU. Amazon installe progressivement ces ressources dans les serveurs de ses datacenters notamment pour permettre à ses clients d’installer leurs propres réseaux de neurones sur cette architecture, comme une nouvelle couche de services orientée vers l’IA, le ratio entre FPGA et CPU étant choisi en fonction des applications. « Les FPGA sont très efficaces pour des manipulations de bits comme en cryptographie ou pour du tri, ajoute Marc Duranton. Ils sont plus complexes à programmer que les processeurs standards mais un informaticien peut désormais le faire par exemple en langage C grâce à des outils qui traduisent le programme en configuration pour le FPGA. »
En attendant des neurones artificiels électroniques
Deux autres voies de recherche ont le vent en poupe, basées sur un codage qui ne serait plus en nombres entiers ou flottants : les puces neuromorphiques et de nouveaux paradigmes de calcul. Dans le premier cas, le codage est en impulsions (on parle aussi de neurones impulsionnels), dans le second, il est associé à des phénomènes physiques comme l’optique.
De nombreux laboratoires et les géants de l’électronique (IBM, Intel, Qualcomm…) misent sur les puces neuromorphiques qui transposent l’information en temps ou en fréquence. L’engouement pour ces assemblages de composants artificiels mimant neurones et synapses biologiques est essentiellement guidé par l’efficacité énergétique. Ces « neurones électroniques » (en dur cette fois) ont trois avantages majeurs sur les neurones artificiels actuellement utilisé en IA, qui, rappelons-le, sont des fonctions mathématiques (on parle aussi de neurones formels). Primo, calcul et mémoire sont à proximité, ce qui limite les échanges de données. Secundo, ils peuvent effectuer des calculs moins précis que les processeurs mais plus efficaces du point de vue énergétique, en utilisant un faible nombre de bits. Cela permet aussi de faire du codage parcimonieux avec un taux d’informations limité. Tertio, ils permettent des calculs analogiques qui utilisent souvent la physique, et sont bien donc plus « denses » que les calculs avec une unité arithmétique et une logique numérique.
La puce neuromorphique la plus connue est celle d’IBM, TrueNorth, qui a une performance de 46 GSOPS/W (Giga-Synaptic Operation Per Second per Watt) pour l’exécution de réseaux neuronaux. L’apprentissage en ligne avec ces technologies constitue encore un défi de taille. Tout comme le passage à l’échelle avec des circuits comportant des milliers de composants, cela malgré la multitude de matériaux proposés. « Le CEA est maître d’œuvre d’un projet européen d’envergure lancé en 2016 sur le sujet pour 3 ans, ajoute Marc Duranton. Baptisé NeuRAM3, il réunit de nombreux partenaires comme IBM, l’IMEC, l’Université de Zurich ou STMicroelectronics. Notre objectif est de diminuer d’un facteur 50 la consommation énergétique d’applications ciblées par rapport aux puces traditionnelles. » On peut aussi tirer parti de phénomènes biologiques bien connus comme la transmission du signal au niveau des synapses (par STDP ou Spike-Timing-Depend Plasticity) pour faire les calculs de la phase d’apprentissage. « Cela permet de faire des circuits très denses, reconnait-il.Mais, pour l’instant, cette solution ne fonctionne bien que pour les algorithmes non supervisés. »
C’est un peu le même problème pour les puces optiques (ou OPU pour Optical Processing Unit), où les photons remplacent les électrons, de façon particulièrement efficace avec des dispositifs assez simples :« ces puces ne sont néanmoins pas directement adaptées aux algos standards de deep learning développés pour les GPU, précise Marc Duranton. Mais elles peuvent être efficacement utilisées pour d’autres algos de machine learning. » Des start-up misent sur ces solutions comme LightOn qui affiche des économies d’énergie d’un facteur 30 par rapport aux GPU. En février dernier, LightOn a intégré sa solution d’OPU dans un datacenter d’OVH et affirme dans son communiqué de presse : « Lors de l’exécution d’une tâche de type « Transfer Learning », le temps de calcul, qui était de 20 minutes pour un algorithme de l’état de l’art fonctionnant sur un processeur graphique (GPU) du marché, passe maintenant à environ 3,5 minutes avec l’OPU ». Toutes ces solutions sont prometteuses mais la meilleure pour économiser ressources minérales et énergétiques reste d’éviter les calculs inutiles !
Isabelle Bellin