Un Accélérateur d'IA pour accélérateur d'intelligence artificielle (ou NPU, anglais : Neural Processing Unit) est une catégorie de microprocesseurs[1] ou de systèmes de calculs[2] conçus pour accélérer un réseau de neurones artificiels, accélérer des algorithmes de vision industrielle et d'apprentissage automatique pour la robotique, l'internet des objets et autres tâches de calcul intensif ou de contrôle de capteurs[3]. Il s'agit souvent de conceptions multicœurs et se concentrant généralement sur l'arithmétique de faible précision, des nouvelles architectures de flux de données ou de la capacité de calcul en mémoire[4]. Il existe plusieurs termes propres au fournisseur pour certains appareils dans cette page.
Les systèmes informatiques ont souvent complété le CPU par des accélérateurs spéciaux pour des tâches spécialisées, notamment des cartes vidéo (GPU) pour les graphiques, mais aussi des cartes son pour l'audio, etc. Au fur et à mesure que l'apprentissage automatique et l'intelligence artificielle ont pris de l'ampleur, des unités matérielles spécialisées ont été développées ou adaptées à partir de produits précédents pour accélérer ces tâches.
Dès 1993, les DSP ont été utilisés comme accélérateurs de réseaux neuronaux, par exemple pour accélérer les logiciels de reconnaissance optique de caractères[5]. Dans les années 1990, on a également tenté de créer des systèmes parallèles à haut débit pour les postes de travail destinés à diverses applications, y compris les simulations de réseaux neuronaux[6],[7],[8].
Les accélérateurs à base de FPGA ont également été explorés pour la première fois dans les années 1990 pour l'inférence[9] et l'apprentissage[10]. ANNA était un accélérateur de réseau neuronal CMOS développé par Yann Le Cun[11].
Le calcul hétérogène a commencé par l'incorporation d'un certain nombre de processeurs spécialisés dans un seul système, voire une seule puce, chacun optimisé pour un type de tâche spécifique.
Les architectures telles que le microprocesseur Cell[12] ont des caractéristiques qui se chevauchent de façon significative avec les accélérateurs d'IA, y compris la prise en charge de l'arithmétique de faible précision, l'architecture de flux de données et la priorité accordée au "débit" plutôt qu'à la latence. Le microprocesseur Cell a ensuite été appliqué à un certain nombre de tâches[13],[14],[15], y compris l'IA[16],[17],[18].
Les CPU eux-mêmes ont également gagné des unités SIMD de plus en plus larges (utilisés pour les tâches lourdes et les jeux) et la prise en charge des types de données de faible précision[19].
Les processeurs graphiques ou GPU sont des matériels spécialisés pour la manipulation d'images. Comme les bases mathématiques des réseaux neuronaux et de la manipulation d'images sont similaires, pour des tâches parallèles compliquées impliquant des matrices, les GPU sont devenus de plus en plus utilisés pour les tâches d'apprentissage machine[20],[21],[22]. En tant que tels, à partir de 2016, les GPU sont populaires pour l'apprentissage d'IA, et ils continuent à évoluer afin de faciliter l'apprentissage profond, à la fois pour l'apprentissage[23] et pour l'inférence dans des dispositifs tels que les véhicules autonomes[24] et bénéficient des capacités de connexion supplémentaires pour les types de flux de données dont profite l'IA (par exemple NVLink de Nvidia)[25]. Comme les GPU ont été de plus en plus appliqués à l'accélération de l'IA, les fabricants de GPU ont incorporé du matériel spécifique aux réseaux neuronaux pour accélérer davantage ces tâches[26]. Les cœurs tensoriels sont destinés à accélérer l'entraînement des réseaux neuronaux[26].
Les frameworks d'apprentissage profond évoluent encore, ce qui rend difficile la conception de matériel sur mesure. Les dispositifs reconfigurables comme les "field-programmable gate array" (FPGA) facilitent l'évolution du matériel, des frameworks et des logiciels en eux[9],[10],[27].
Microsoft a utilisé les puces FPGA pour accélérer l'inférence[28],[29]. L'application des FPGA à l'accélération de l'IA a également motivé Intel à acheter Altera dans le but d'intégrer les FPGA dans les CPU des serveurs, ce qui permettrait d'accélérer l'IA ainsi que les tâches générales.[citation nécessaire]
Émergence des ASIC dédiés à l'accélération de l'IA
Alors que les GPU et les FPGA sont beaucoup plus performants que les CPU pour ces tâches liées à l'IA, un facteur d'efficacité de 10[30],[31] peut encore être obtenu avec une conception plus spécifique, via un « Application-specific integrated circuit » (ASIC). On retrouve ce type d’accélérateur en ASIC dans la majorité des SoCARM et RISC-V. Ce qui inclut des différences dans l'utilisation de la mémoire[citation nécessaire] et l'utilisation de nombres de plus faible précision[32],[33].
À partir de 2016, le champ est toujours en mouvement et les vendeurs poussent leur propre terme marketing pour ce qui équivaut à un accélérateur de réseaux de neurones, appelé « accélérateur d'IA » dans la communication grand public, dans l'espoir que leurs conceptions et API domineront. Il n'y a pas de consensus sur la frontière entre ces dispositifs, ni sur la forme exacte qu'ils prendront, mais plusieurs exemples visent clairement à combler ce nouvel espace, avec un certain chevauchement des capacités.
Dans le passé, lorsque les accélérateurs graphiques grand public ont émergé, l'industrie a finalement adopté le terme auto-attribué de Nvidia, "GPU"[34][source insuffisante], comme nom collectif pour « accélérateurs graphiques », qui avait pris de nombreuses formes avant de s'installer sur un pipeline global mettant en œuvre un modèle présenté par OpenGL, puis plus tard Direct3D.
Google « TPU » est un accélérateur spécialement conçu par Google pour son framework TensorFlow, qui est largement utilisé pour les réseaux neuronaux convolutifs. Il se concentre sur un volume élevé d'arithmétique de précision de 8 bits. La première génération s'est concentrée sur l'inférence, tandis que la deuxième génération a augmenté la capacité de formation au réseau neuronal.
IntelNervana NNP (« Neural Network Processor ») (alias « Lake Crest »), qui, selon Intel, est la première puce disponible sur le marché avec une architecture spécialement conçue pour l'apprentissage approfondi. Facebook était un partenaire dans le processus de conception[35],[36].
Mobileye EyeQ est un processeur spécialisé dans le traitement de la vision (VPU(en)) pour les voitures autonomes[37].
Nvidia Tesla est la gamme de produits dérivés des GPU de Nvidia commercialisés pour les tâches GPGPU et réseau de neurones artificiels.
Nvidia Volta est une micro-architecture qui complète l'unité de traitement graphique avec des 'tenseurs' supplémentaires visant spécifiquement à accélérer les calculs pour les réseaux neuronaux[38].
Nvidia DGX-1(en) est un produit station de travail/serveur Nvidia qui intègre les GPU de la marque Nvidia pour les tâches GPGPU, y compris l'apprentissage automatique[39].
Radeon Instinct est la gamme de produits dérivés des GPU d'AMD pour l'accélération de l'IA[40].
Le processeur de la plate-forme mobile Snapdragon 845 de Qualcomm contient un noyau DSP Hexagon 685 pour le traitement de l'IA dans les applications de caméra, voix, XR et de jeux.
En CEVA, Inc. a lancé une famille de quatre processeurs AI appelés NeuPro, contenant chacun un DSP vectoriel programmable et une implémentation câblée de couches de réseau neuronal 8 ou 16 bits supportant les réseaux neuronaux avec des performances allant de 2 TOPS à 12,5 TOPS[45].
Sipeed a développé la carte Sipeed M1 (ou Kendryte KD233), équipée d'un SoC Kendryte K210 comportant 2 cœurs RISC-V 64 bits et un processeur d'intelligence artificielle. Ces cartes sont prévues pour fonctionner avec FreeRTOS[46]. Plusieurs déclinaisons existent, elles peuvent être programmées en microPython, via l'IDE Plateforme.IO, avec Arduino IDE et supportent également Linux.
Les processeurs Intel Core Ultra contiennent un noyau pour l'intelligence artificielle.
Accélérateur Universel Multifonctionnel (UMA) développé et produit par Manjeera Digital Systems sous l'égide du Centre for Innovation Engineering and Entrepreneurship Incubator de l'Indian Institute of Information Technolgy (IIIT), Hyderabad est une innovation révolutionnaire en matière d'accélération dans le calcul de toute application avec une architecture propriétaire basée sur les opérations Middle Stratum[47],[48],[49].
En , Tesla Motors a confirmé une rumeur selon laquelle elle est en train de développer un Soc IA pour la conduite autonome. Jim Keller travaille sur ce projet depuis au moins le début de 2016[50].
Eyeriss est un accélérateur destiné explicitement aux réseaux neuronaux convolutionnels, utilisant un scratchpad et une architecture de réseau sur puce[51].
Nullhop est un accélérateur conçu à l'Institut de Neuroinformatique de l'ETH Zürich et à l'Université de Zürich sur la base d'une représentation éparses de cartes de caractéristiques. La deuxième génération de l'architecture est commercialisée par la spin-off universitaire Synthara Technologies[52],[53].
Kalray est un accélérateur pour les réseaux neuronaux convolutifs[54].
SpiNNNaker est une conception à multicœurs spécialisée dans la simulation d'un grand réseau neuronal.
Le NM500 est le dernier né en date de 2016 d'une série de puces accélératrices pour les réseaux neuronaux à fonction de base radiale (Radial Basis Function)de General Vision[58].
En , BrainChip a introduit une carte [PCI Express] commerciale avec un FPGA Xilinx Kintex Ultrascale FPGA utilisant des noyaux neuromorphes neuronaux en appliquant la reconnaissance de formes sur 600 images vidéo par seconde en utilisant 16 watts de puissance[62].
IIT Madras est en train de concevoir un accélérateur de neurones à impulsions pour l'analyse de big data[63].
Plusieurs accélérateurs d'intelligence artificielle basés sur les mémoires ont été proposés qui tirent parti de la capacité de calcul en mémoire de memristor[4].
AlphaICs est en train de concevoir un coprocesseur basé sur un agent appelé "Real AI Processor" (RAP) pour permettre la perception et la prise de décision dans une puce[64].
European Processor Initiative, dont le but est d'équiper les supercalculateurs européens et l'automobile européenne, dont le processeur est basé sur l'architecture ARM, et les accélérateurs chargés de l'AI et du calcul intensifs sont basés sur de l'architecture RISC-V.
↑« The end of general purpose computers (not) »This presentation covers a past attempt at neural net accelerators, notes the similarity to the modern SLI GPGPU processor setup, and argues that general purpose vector accelerators are the way forward (in relation to RISC-V hwacha project. Argues that NN's are just dense and sparse matrices, one of several recurring algorithms)
↑« yann lecun on IBM truenorth »argues that spiking neurons have never produced leading quality results, and that 8-16 bit precision is optimal, pushes the competing 'neuflow' design
↑« IBM cracks open new era of neuromorphic computing » : « TrueNorth is incredibly efficient: The chip consumes just 72 milliwatts at max load, which equates to around 400 billion synaptic operations per second per watt — or about 176,000 times more efficient than a modern CPU running the same brain-like workload, or 769 times more efficient than other state-of-the-art neuromorphic approaches ».