L'évolution rapide de l'intelligence artificielle est en train de faire exploser le nombre d'accélérateurs matériels destinés à l'apprentissage machine et au deep learning. Certains parlent d'« explosion cambrienne », ce qui est une métaphore adéquate au vu de la période actuelle, où les innovations fusent. Cette expression fait référence à la période, il y a environ 500 millions d'années, où chaque embranchement biologique d'animaux multicellulaires est apparu pour la première fois. À partir de ce moment-là, ces créatures - nous inclus - se sont déployées pour occuper, exploiter et transformer complètement chaque niche écologique de la planète.
Les architectures d'accélérateurs matériels IA innovantes continuent de s'étendre. Et il serait faux de penser que les unités de traitement graphique (GPU) sont l'architecture dominante. Au cours des dernières années, les start-ups et les fournisseurs de puces ont introduit une nouvelle génération d'architectures matérielles optimisées pour le deep learning, le traitement du langage naturel et d'autres technologies IA.
Le marché de l'IA n'est pas une monoculture
Parmi les nouvelles architectures de chipsets optimisées par intelligence artificielle, citons les unités de traitement de réseau neuronal (NNPU), les FPGA (Field Programmable Gate Arrays), les circuits intégrés spécifiques aux applications (ASIC) et diverses approches connexes regroupées sous le nom d'architectures neurosynaptiques. Comme indiqué dans un article d'Ars Technica, le marché de l'IA d'aujourd'hui n'a pas de monoculture matérielle équivalente au processeur x86 d'Intel, qui dominait autrefois les postes de travail. En effet, ces nouvelles architectures de puces accélératrices d'intelligence artificielle sont adaptées à des rôles très spécifiques dans l'écosystème naissant de cloud-to-edge, comme pour la vision par ordinateur. Le mieux pour comprendre l'évolution rapide de ces puces d'accélération IA, c'est de regarder les offres déjà présentes sur le marché.
Jetons d'abord un coup d'œil à l'edge, où les plateformes matérielles optimisées pour permettre une plus grande autonomie des dispositifs mobiles, embarqués et de l'Internet des objets (IoT). Mais au-delà de la prolifération des processeurs IA embarqués sur les smartphones, l'un des plus remarquables à cet égard est l'innovation dans la robotique, allant de la conduite autonome, drones et autres appareils intelligents à l'IoT industriel.
Des architectures complexes pour gérer des dizaines d'algorithmes
Les dernières améliorations de Nvidia à sa ligne Jetson Xavier AI de systèmes IA sur puce (SOC) sont assez remarquables également. Le fabricant a publié le kit de développement logiciel Isaac pour aider à construire des algorithmes de robotique qui fonctionneront sur son matériel dédié.
Reflétant la complexité de ce secteur, la puce Jetson Xavier comprend six unités de traitement, dont un GPU Nvidia Volta Tensor Core à 512 cœurs, un processeur Carmel Arm64 à huit cœurs, un double accélérateur d'apprentissage en profondeur Nvidia et des processeurs d'image, de vision et vidéo. Ceux-ci permettent de gérer des dizaines d'algorithmes pour aider les robots à détecter les environnements de manière autonome, à répondre efficacement et à travailler en toute sécurité avec des ingénieurs humains.
A chaque architecture sa tâche
Les accélérateurs d'intelligence artificielle commencent à pénétrer chaque niveau dans les architectures cloud-to-edge distribuées, de calcul haute performance, de serveur hyperconvergé et de stockage dans le cloud. Le flux d'innovations est régulier sur tous ces segments pour supporter un traitement toujours plus rapide, efficace et précis de l'IA. Ces environnements applicatifs distincts vont accélérer des tâches spécifiques. Une architecture de puce IA va se concentrer sur l'apprentissage automatique, un autre sur le deep learning, le traitement du langage naturel, etc. Elles impliquent aussi différents niveaux d'autonomie et d'interactivité.
Pour répondre à cette variété de tâches à réaliser, les fournisseurs mélangent un large éventail de technologies dans leurs portefeuilles de produits. Par exemple, l'architecture du processeur Xeon Phi d'Intel a été utilisée pour accélérer les tâches IA. Mais Intel reconnaît qu'il ne sera pas en mesure de garder le rythme sans les puces accélératrices spécialisées qui lui permettent de rivaliser avec Nvidia Volta (GPU) et avec les légions de constructeurs construisant des NNPU et d'autres puces IA spécialisées. Ainsi, Intel dispose désormais d'une équipe produit travaillant sur un nouveau GPU, qui sera commercialisé dans les deux prochaines années.
Parallèlement, Intel continue à relever ses paris avec des chipsets optimisées IA dans plusieurs catégories architecturales : processeurs de réseaux neuronaux (Nervana), FPGA (Altera), ASIC de vision assistée par ordinateur (Movidius) et ASIC de véhicule autonome (MobilEye). Des projets pour construire des puces informatiques neuromorphes et quantiques sont aussi en cours de développement.
Le bon équilibre entre performance et prix
Chaque innovation matérielle d'accélération d'IA doit pouvoir être résistante et puissante. Dans les métriques opérationnelles, chaque chipset doit se conformer à des contraintes en termes de facteurs de forme, d'efficacité énergétique, d'émissions de chaleur et électromagnétique et de robustesse. Point de vue économique, il doit être compétitif en termes de performances et de coût de possession pour les différents tiers et les tâches pour lesquels il est déployé. Les références comparatives de l'industrie vont devenir un facteur clé pour déterminer si une technologie d'accélérateur d'IA a le bon équilibre prix-performance pour survivre sur ce marché hautement concurrentiel.
Les accélérateurs d'IA sont loin d'être une monoculture. Au-delà des principaux fabricants de chipsets AI, tels que Nvidia et Intel, les ASIC pour les charges de travail spécifiques à une plateforme abondent. Cette tendance est remarquable par plusieurs nouvelles récentes :
- Microsoft prépare une puce IA pour son casque de réalité augmentée HoloLens ;
- Google dispose d'un NNPU spécial, l'unité de traitement Tensor, disponible pour les applications IA sur Google Cloud Platform ;
- Amazon travaille apparemment sur une puce pour son assistant à domicile Alexa ;
- Apple planche sur un processeur qui alimentera Siri et FaceID ;
- Tesla, enfin, construit un processeur AI pour ses voitures électriques autonomes.
Les cadres de références des accélérateurs IA commencent à émerger
Les partenariats entre fournisseurs sur le marché des accélérateurs d'IA deviennent de plus en plus complexes et s'entrecroisent. Par exemple, Baidu, le Google chinois, s'associe séparément avec Intel et Nvidia en plus de créer sa propre puce NNPU. Intel vient accélérer la charge de travail assistée par FPGA dans le cloud public de Baidu. Les deux entreprises conçoivent également ensemble une infrastructure IA pour les processeurs Xeon, une plateforme pour les voitures autonomes et une caméra de vision assistée par ordinateur pour le retail. Baidu a enfin adopté le compilateur de réseau neuronal agnostique nGraph.
Cela fait suite à des annonces similaires faites avec Nvidia, notamment l'intégration des GPU Volta au cloud de Baidu. Ce dernier a aussi ajusté son framework de développement PaddlePaddle AI pour Volta et facilité le déploiement des produits Nvidia sur le marché chinois.
Comment s'y retrouver ?
Classer cette large gamme hardware – et leur combinaison sur le cloud et sur des SoC spécialisés - devient de plus en plus difficile. Isoler la contribution de l'accélérateur IA à la performance globale d'une tâche donnée n'est pas chose aisée sans un cadre d'analyse comparative commun. L'industrie de l'intelligence artificielle planche cependant sur la mise au point de cadres ouverts, transparents et indépendants des fournisseurs pour évaluer les performances de chaque pile de matériel / logiciel dans l'exécution de différentes charges de travail et les comparer.
MLPerf
Le groupe d'analyse comparative open source MLPerf développe une suite standard pour confronter les performances des frameworks d'IA, des chipsets et des plateformes cloud. Disponible sur GitHub en version bêta, MLPerf fournit des implémentations prédominantes pour certaines tâches IA. La société fait de la veille sur des fonctions IA particulières (comme la classification d'images) effectuées par des algorithmes donnés (tels que Resnet-50 v1) sur des ensembles de données spécifiques (ImageNet par exemple).
Un des benchmarks proposés est par exemple la comparaison des entraînements à la classification d'images sous Ubuntu 16.04, Nvidia Docker et CPython 2 sur des plateformes construites à partir de 16 processeurs, un GPU Nvidia P100 Volta et 600 giga-octets de mémoire locale.
EEMBC Machine Learning Benchmark Suite
Certaines initiatives de benchmarking sont axées directement sur la mesure des performances des piles matériel / logiciel déployées en local. L'alliance industrielle EEMBC a commencé à réfléchir à une suite de références pour des jeux de puces optimisés pour des dispositifs périphériques à faible consommation d'énergie. Le groupe Machine Learning Benchmark Suite d'EEMBC utilisera des workloads d'apprentissage automatique provenant d'assistants virtuels, de smartphones, d'appareils IoT, de haut-parleurs intelligents, de passerelles IoT et d'autres systèmes embarqués / périphériques pour identifier le potentiel de performance et l'efficacité énergétique des processeurs utilisés pour accélérer les travaux d'inférence d'apprentissage automatique.
Ce benchmark prendra en compte le temps de mise en route des réseaux neuronaux et l'efficacité énergétique des tâches d'inférences de complexité faible à élevée. Le groupe travaille sur une preuve de concept et prévoit de publier sa suite de benchmark initiale d'ici juin 2019. Elle abordera une gamme d'architectures de réseaux neuronaux et de cas d'utilisation pour l'inférence des terminaux.
EEMBC Adasmark benchmarking framework
L'EEMBC Adasmark benchmarking framework s'adresse à périmètre encore plus étroit. Ce comparateur se concentre sur les véhicules autonomes. Distinguant cet outil de l'analyse de performances globale du machine learning, EEMB a souhaité évaluer l'efficacité des puces dans des systèmes d'assistance à la conduite.
Cette suite permet de mesurer les tâches d'inférence IA exécutées selon différentes plateformes applicatives, terminaux, et puces. Elle va notamment comparer la vision par ordinateur, la reconnaissance d'images, la réalité augmentée mobile, etc. L'outil de mesure fonctionne aussi pour des architectures complexes incluant plusieurs CPU spécialisés, des GPU et d'autres accélérateurs effectuant des tâches différentes dans un châssis commun.
D'autres initiatives de benchmarking existent. DawnBench, ReQuest, le groupe de travail sur l'IA du Transaction Processing Performance Concil et CEAN2D2 en font partie. Tous sont assez flexibles pour être appliqués à n'importe quelle charge de travail IA exécutée à n'importe quel niveau.
Les scénarios d'IA émergents nécessiteront encore plus de puces spécialisées
Il est quasiment certain que d'autres scénarios d'intelligence artificielle « à la marge » émergeront bientôt. Ils nécessiteront leurs propres puces, SoC, plateformes matérielles et comparateurs. Le prochain grand segment de croissance des chipsets AI pourrait être l'accélération des nœuds périphériques pour l'extraction de cryptomonnaies. Un cas d'utilisation qui, avec l'IA et le gaming, a généré une forte demande de GPU Nvidia.
DeepBrain Chain est spécialisé dans cette branche. Il a récemment sorti une plateforme informatique pouvant être déployée dans des configurations distribuées pour alimenter le traitement haute performance des charges de travail IA et l'extraction de monnaies chiffrées. Les stations de minage sont disponibles en configurations à deux, quatre et huit GPU, ainsi que des postes de travail autonomes et des clusters AI HPC personnalisés par 128 GPU. On est également quasiment certains de voir bientôt naître une nouvelle génération d'ASIC ciblés sur l'extraction de cryptomonnaies.