Getty Images/iStockphoto
2018, l'informatique entre dans l'ère des puces neuronales
Du simple smartphone jusqu'au plus puissant supercalculateur, ils seront bientôt partout. Les processeurs neuronaux vont booster le rapport performance/consommation électrique du Deep Learning tant en phase d'apprentissage sur les serveurs, qu'en phase d'exécution (inférence) sur tous types de terminaux.
Alors que les usages du Machine Learning et du Deep Learning se généralisent, une nouvelle génération de processeurs arrive à l'horizon : les NPU pour Neural Processing Unit.
Actuellement pour réaliser l'apprentissage d'un réseau de neurones qui va ensuite identifier les comportements des visiteurs d'un site marchand, analyser le fonctionnement d'un équipement industriel dans le cadre d'une maintenance prédictive, les Data Scientist utilisent des serveurs classiques pour exécuter leurs frameworks. Néanmoins, un processeur x86, et a fortiori, les puces Xeon d'un serveur d'entreprise classique, ne sont pas optimisées pour de tels calculs. Simuler le comportement des neurones virtuels ne nécessite en effet pas la précision en virgule flottante des puces modernes et peut même se contenter de travailler en 16 bits. L'important est de maximiser la vitesse d'échange des données entre un très grand nombre nœuds de calculs, avec la plus faible latence possible.
De ce fait, les développeurs déploient de plus en plus fréquemment les frameworks de Machine Learning et de Deep Learning sur des GPU (des accélérateurs graphiques). Avec leur très grand nombre de cœurs plus simples que les cœurs x86 64 bits des processeurs classiques, les GPU offrent un ratio performance/consommation électrique bien meilleur.
Avec son Deep Learning SDK, NVidia supporte déjà tous les frameworks logiciel d'IA du moment : Caffe créé par les chercheurs de Berkeley, Caffe2, TensorFlow de Google, le Microsoft Cognitive Toolkit (CNTK), Theano.
Les constructeurs de GPU adaptent leurs puces pour l'IA
Les GPU sont actuellement la plateforme la plus facile à mettre en oeuvre pour porter des réseaux de neurones. Mais il est possible de faire mieux avec des cœurs et des architectures de processeurs réellement pensés pour l'IA. C'est la démarche suivie par NVidia et AMD qui ont tour à tour dévoilé de nouvelles architectures pour le Deep Learning. Le premier propose Volta, une puce dotée de 640 cœurs spécialisés baptisés Tensor Cores et de 5 120 cœurs CUDA, plus classiques dans une architecture NVidia.
Selon ses concepteurs, cette architecture est annoncée à une puissance supérieure à 100 TFLOPS. Conçue pour réaliser l'entrainement des réseaux de neurones, cette puce équipe la Volta V100, une carte d'accélération destinée en priorité aux datacenters et disponible en format PCIe. Elle est aussi disponible en SXM2, un format de carte propriétaire qui doit permettre aux concepteurs de calculateurs d'extraire jusqu'à 125 TFLOPS d'une seule cette carte.
AMD, grand rival de NVidia n'est pas en reste puisque l'Américain propose Radeon Instinct, une gamme de GPU devant accélérer les traitements de type Deep Learning. L'Américain livre aux développeurs une version optimisée de la bibliothèque Open Source conçue pour l'accélération du Deep Learning MIOpen ainsi que la couche logicielle ROCm. Cette dernière permet d'exploiter ses cartes Radeon Instinct pour réaliser l'accélération des frameworks Caffe, Tensorflow et le framework Torch, initialement conçu par Facebook.
IBM, le pionnier des puces neuronales
NVidia, tout comme AMD, a fait le choix de la mémoire rapide UMB2 afin de booster les performances de ses cartes, mais celles-ci restent essentiellement des évolutions de ses GPU. C'est sans doute IBM Research qui est le premier des grands acteurs de l'informatique à avoir imaginé concevoir des composants électroniques spécifiques pour porter des réseaux de neurones. Financé par la DARPA, le projet de recherche SyNAPSE a été lancé en 2008 et, après plusieurs étapes de développement a abouti en 2014 par la mise au point de la puce TrueNorth. Encore expérimentale, celle-ci est capable de simuler 16 millions de neurones et 4 milliards de synapses pour une consommation électrique de 2,5 W seulement.
IBM a incontestablement obtenu des résultats significatifs en termes de ratio performance/consommation, mais la diffusion de sa puce reste confidentielle. Seul le laboratoire de recherche atomique américain Lawrence Livermore s'est officiellement doté de cette puce afin d'aider les chercheurs à analyser les résultats de leurs simulations.
IBM est loin d'être le seul à travailler sur la conception d'une puce visant à booster les performances du Deep Learning. Google a ainsi créé la surprise en dévoilant sa puce TPU (Tensor Processing Unit) lors sa conférence développeur Google I/O 2016. Sundar Pichai annonçait alors que cette puce avait un ratio performance/consommations 13 fois supérieur à celui des meilleurs GPU du moment.
Intel s'est offert la technologie pour 400 millions de dollars
Cette annonce a été suffisamment prise au sérieux du côté d'Intel pour que Brian Krzanich, son patron, annonce le rachat d’une startup qui développe une puce comparable. Intel a ainsi pris le contrôle de Nervana Systems pour 400 millions de dollars. Quelques semaine plus tard, lors d'un "AI Day", Intel explicitait sa stratégie d'intégration de la technologie tant hardware que software développée par Nervana Systems. Intel planifie dans un premier temps une puce d'accélération, nom de code Lake Crest, dont la disponibilité est espérée pour le premier semestre 2017, puis un vrai processeur "bootable" à base de Xeon boosté au Nervana, nom de code Knights Crest. L'objectif annoncé est alors de réduire d'un facteur 100 le temps d'apprentissage d'un réseau de neurones à l'horizon 2020. Cette puce est en phase de pré-industrialisation et, comme le révèle Jean-Laurent Philippe, expert Technique HPC Senior dans le groupe Datacenter Sales d'Intel, elle est en cours de test chez Facebook : « Nous développons une gamme de ce que nous appelons les NNP pour Neural Network Processor. Un premier modèle a été dévoilé en novembre 2016 et c'est cet accélérateur qui est en cours de test chez Facebook. » Cette puce, dotée de 12 clusters de nœuds interconnectés par un bus 20 fois plus rapide qu'un bus PCIe traditionnel, dispose de 32 Go de mémoire HBM2 - une mémoire qui autorise des accès mémoire à 8 Tbit/s. « Il ne s'agit pas d'une réponse au GPU, mais bien d'une architecture spécifiquement dédiée à l'apprentissage et à l'inférence de réseaux de neurones », précise Jean-Laurent Philippe. « Il s'agit d'un accélérateur à l'architecture très particulière et qui a une représentation des nombres qui n'est pas standardisée par l'IEEE, le flexpoint. Cette représentation permet de stocker les poids sur les synapses de manière très novatrice et très performante. »
Microsoft préfère miser sur les composants FPGA
Il faudra attendre encore plusieurs mois avant que cette puce n'arrive sur le marché sous la forme de carte d'accélération. Pour l'heure, certains se tournent vers des solutions immédiatement disponibles en volume et plus performantes que les GPU pour exécuter une tâche précise, les FPGA. Jean-Laurent Philippe rappelle : "Aujourd'hui, la meilleure solution pour faire de l'inférence, c'est encore le FPGA et ce sont les FPGA d'Intel que Microsoft a choisi pour son projet Brainwave. » Dans ce projet mené par Microsoft Research, les ingénieurs ont cherché à créer une infrastructure visant à exécuter des algorithmes de Deep Learning en temps réel et ce, à l'échelle d'un datacenter.Leur choix s'est porté sur des puces FPGA pour leur très faible latence, particulièrement utile pour faire du Deep Learning. « Quand on regarde la rentabilité des solutions techniques pour une tâche bien précise comme le Deep Learning, le Xeon est la solution la plus souple car il peut tout faire. Le FPGA est très bon sur des tâches répétitives où l'algorithme ne varie que très occasionnellement. Si on s'appuie sur un algorithme qui ne changera absolument jamais, alors on le grave dans un ASIC et c'est un peu ce qu'est un accélérateur NNP », conclut Jean-Laurent Philippe.
Des processeurs neuronaux jusque dans les smartphones
Si les puces d'IA sont en train de se frayer une place dans les grands datacenters, on commence à les retrouver beaucoup plus près des utilisateurs, voire même dans la main de chacun de nous. Les NPU arrivent en effet dans les terminaux mobiles. Le Chinois Huawei en a même fait un argument marketing clé de ses smartphones de nouvelle génération. Le SOC Kirin 970 qui équipe son haut de gamme Mate 10 mais aussi l'Honor (marque fille de Huawei) View 10, un smartphone de milieu de gamme, intègre un NPU. Si Alexis André, directeur marketing d’Honor, ne donne pas de détails techniques quant à cette puce, il explique ses usages : « le NPU a pour objectif d’améliorer l’expérience utilisateur en accélérant les algorithmes de Machine Learning. Il est notamment mis en œuvre pour la reconnaissance d’image. N’importe quel smartphone peut faire de la reconnaissance d’image avec le CPU, mais grâce au NPU, cette fonction est bien plus rapide. Cela permet à l’application photo de reconnaître la nature de la scène et de basculer dans le mode de prise de vue parmi les 13 supportés. »
Si diverses fonctions du smartphone exploitent ce moteur d’IA, les développeurs d’applications mobiles y ont aussi accès via une API. Celle-ci est déjà mise en œuvre par Microsoft pour son application de traduction Microsoft Translate. L’application sollicite le NPU via ses API afin de reconnaitre le texte dans les images filmées par l’utilisateur afin de lancer une traduction du texte.
Apple a aussi embarqué une puce neuronale dans son iPhone X, baptisée « A11 bionic neural engine » par le marketing Apple. Cette puce dotée de 2 cœurs est capable de réaliser 600 milliards d’opérations par seconde, selon les chiffres donnés par Apple. C’est elle qui est mise en œuvre par la reconnaissance familiale FaceID ou encore par les Animoji.
De multiples startups cherchent à prendre de vitesse les grands acteurs du marché
Outre ces géants de l'électronique, une multitude de startups essayent de se faire une place sur ce marché. Cela est le cas aux Etats-Unis avec Cerebras Systems, Wave Computing, Groq (la startup qui a développé le TPU de Google), en Asie ou en Europe avec Graphcore ou encore le Français Kalray. La deuxième génération de son processeur MPPA (Massively Parallel Processor Array) compte 288 cœurs. Benoît Dupont de Dinechin, directeur technique de la startup française souligne : « Nos processeurs MPPA sont efficaces en particulier dans les réseaux de neurones en mode 'inférence', où l'indicateur clé de performance est la basse latence de réponse. D'autres techniques d'apprentissage automatique basées sur les calculs d'algèbre linéaire dense sont adaptées aux processeurs MPPA, comme les 'Support Vector Machines' (SVM). »
Contrairement aux GPU, les cœurs du processeur conçus par le Français sont programmables en C/C++. Ils peuvent donc être exploités pour d'autres types de programmes, notamment les logiciels embarquées d'un missile (Safran et MBDA figurent parmi les investisseurs de Kalray) ou encore les logiciels d'assistance à la conduite d'une voiture autonome. « L'apprentissage automatique (dont les réseaux de neurones profonds) ne constitue pas la totalité de l'intelligence artificielle qu'on trouve dans un robot ou un véhicule autonome; il y a en outre le prétraitement, la représentation, la segmentation, et la fusion des données capteurs, l'analyse situationnelle et la planification de trajectoires. »
Benoît Dupont de Dinechin espère pouvoir creuser encore l'écart en termes de performances avec la 3ème génération de processeurs MPPA dont la fabrication va être lancée en 2018 : « Nos cœurs ont été dotés d'un petit opérateur de multiplication de matrices en précision mixte, selon les mêmes principes que les 'Tensor Cores' des nouveaux GPU NVIDIA ou du 'Tensor Processing Unit' de Google. Cela va engendrer une augmentation très significative (x80) des performances en inférence de réseaux de neurones comparé à la génération actuelle."
La course à l'innovation dans les processeurs neuronaux ne fait que commencer.
Pour approfondir sur Processeurs et composants
-
Processeurs : Intel et AMD livrent leurs résultats et leurs stratégies
-
PC infusé à l’IA : comment AMD, Intel et Nvidia se font la course
-
Intel et Nvidia visent les stations de travail d'IA avec leurs derniers systèmes sur puce
-
IA, machine learning, deep learning, IA générative : quelles différences ?