Puce d'accélération de réseaux de neurones

Un article de Wikipédia, l'encyclopédie libre.

Un Accélérateur d'IA pour accélérateur d'intelligence artificielle (ou NPU, anglais : Neural Processing Unit) est une catégorie de microprocesseur[1] ou de systèmes de calculs[2] conçu 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 taches 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.

Historique de puces d'accélération d'IA[modifier | modifier le code]

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.

Les premières tentatives[modifier | modifier le code]

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 LeCun[11].

Calcul hétérogène[modifier | modifier le code]

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 taches lourdes et les jeux) et la prise en charge des types de données de faible précision[19].

Utilisation des GPU[modifier | modifier le code]

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 (en) 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].

Utilisation des FPGA[modifier | modifier le code]

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[modifier | modifier le code]

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 SoC ARM 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].

Nomenclature[modifier | modifier le code]

À 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.

Exemples[modifier | modifier le code]

Processeurs autonomes[modifier | modifier le code]

  • Adapteva epiphany est un coprocesseur multi-cœur avec un réseau sur un modèle de "scratchpad memory", adapté à un modèle de programmation de flux de données, qui devrait convenir à de nombreuses tâches d'apprentissage machine.[citation nécessaire]
  • 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.
  • Intel Nervana 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].
  • Movidius Myriad 2 est un accélérateur VLIW AI à -nulti-cœurs, complété par des unités de fonctions vidéo fixes.

Produits basés sur les GPU[modifier | modifier le code]

  • 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].

Coprocesseurs optimisés pour l'IA[modifier | modifier le code]

Carte Sipeed MaixDuino comportant deux cœurs RISC-V RV64GC, et un processeur AI. Un processeur ESP32 pour le WiFi, comportant également un DSP l'accompagne
  • 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.
  • PowerVR 2NX NNA ("Neural Net Accelerator") est un noyau IP de Imagination Technologies sous licence d'intégration dans des puces[41].
  • Neural Engine est un noyau d'accélérateur IA au sein du SoC A11 Bionic d'Apple[42].
  • Cadence Tensilica Vision C5 est un cœur IP DSP optimisé pour les réseaux neuronaux[43].
  • Le "Neural Processing Unit" (NPU) est un accélérateur de réseau neuronal au sein du HiSilicon Kirin 970[44].
  • 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.

Accélérateur multifonctions[modifier | modifier le code]

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].

Recherche et produits non commercialisés[modifier | modifier le code]

  • 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.
  • Graphcore IPU est un accélérateur d'IA à base de graphiques[55].
  • DPU, par wave computing, est une architecture de flux de données[56]
  • STMicroelectronics a présenté début 2017 un démonstrateur SoC fabriqué selon un procédé à 28 nm contenant un accélérateur de réseau neuronal convolutif (CNN) profond[57].
  • 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].
  • TrueNorth est un modèle multicœur basé sur des neurones à impulsions plutôt que sur l'arithmétique traditionnelle[59],[60].
  • Intel Loihi est une puce neuromorphe expérimentale[61].
  • 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.

Applications potentielles[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Le Intel Movidius, un dongle USB conçu pour le "vision processing" ».
  2. « Inspurs unveils GX4 AI Accelerator ».
  3. « google developing AI processors »google using its own AI accelerators.
  4. a et b "A Survey of ReRAM-based Architectures for Processing-in-memory and Neural Networks", S. Mittal, Machine Learning and Knowledge Extraction, 2018
  5. « convolutional neural network demo from 1993 featuring DSP32 accelerator ».
  6. « design of a connectionist network supercomputer ».
  7. « 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)
  8. « SYNAPSE-1: a high-speed general purpose parallel neurocomputer system ».
  9. a et b « Space Efficient Neural Net Implementation ».
  10. a et b « A Generic Building Block for Hopfield Neural Networks with On-Chip Learning ».
  11. Application of the ANNA Neural Network Chip to High-Speed Character Recognition
  12. (en) « Synergistic Processing in Cell's Multicore Architecture ».
  13. (en) « Performance of Cell processor for biomolecular simulations ».
  14. « Video Processing and Retrieval on Cell architecture ».
  15. « Ray Tracing on the Cell Processor ».
  16. « Development of an artificial neural network on a heterogeneous multicore architecture to predict a successful weight loss in obese individuals ».
  17. (en) « Parallelization of the Scale-Invariant Keypoint Detection Algorithm for Cell Broadband Engine Architecture ».
  18. « Data Mining Algorithms on the Cell Broadband Engine ».
  19. « Improving the performance of video with AVX ».
  20. (en) « microsoft research/pixel shaders/MNIST ».
  21. (en) « how the gpu came to be used for general computation ».
  22. (en) « imagenet classification with deep convolutional neural networks ».
  23. (en) « nvidia driving the development of deep learning ».
  24. (en) « nvidia introduces supercomputer for self driving cars ».
  25. (en) « how nvlink will enable faster easier multi GPU computing ».
  26. a et b (en) Mark Harris, « CUDA 9 Features Revealed: Volta, Cooperative Groups and More », (consulté le ).
  27. (en) « FPGA Based Deep Learning Accelerators Take on ASICs », sur The Next Platform, (consulté le ).
  28. (en) « microsoft extends fpga reach from bing to deep learning ».
  29. (en) « Accelerating Deep Convolutional Neural Networks Using Specialized Hardware ».
  30. « Google boosts machine learning with its Tensor Processing Unit », (consulté le ).
  31. « Chip could bring deep learning to mobile devices », sur www.sciencedaily.com, (consulté le ).
  32. « Deep Learning with Limited Numerical Precision ».
  33. (en) Mohammad Rastegari, Vicente Ordonez, Joseph Redmon et Ali Farhadi, « XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks », ..
  34. (en) « NVIDIA launches the World's First Graphics Processing Unit, the GeForce 256 ».
  35. Jeff Kampman, « Intel unveils purpose-built Neural Network Processor for deep learning », Tech Report,‎ (lire en ligne, consulté le ).
  36. (en) « Intel Nervana Neural Network Processors (NNP) Redefine AI Silicon », sur intel.com, (consulté le ).
  37. « The Evolution of EyeQ ».
  38. « Nvidia goes beyond the GPU for AI with Volta ».
  39. « nvidia dgx-1 ».
  40. Ryan Smith, « AMD Announces Radeon Instinct: GPU Accelerators for Deep Learning, Coming in 2017 », Anandtech,‎ (lire en ligne, consulté le ).
  41. « The highest performance neural network inference accelerator ».
  42. (en) James Vincent, « The iPhone X’s new neural engine exemplifies Apple’s approach to AI », The Verge,‎ (lire en ligne, consulté le ).
  43. « Cadence Unveils Industry’s First Neural Network DSP IP for Automotive, Surveillance, Drone and Mobile Markets ».
  44. « HUAWEI Reveals the Future of Mobile AI at IFA 2017 ».
  45. « A Family of AI Processors for Deep Learning at the Edge ».
  46. (en) Brian Benchoff, « New Part Day: The RISC-V Chip With Built-In Neural Networks », sur Hack a Day,
  47. UMA Manjeera Digital System, « Universal Multifunction Accelerator », sur Manjeera Digital Systems (consulté le ).
  48. Universal Multifunction Accelerator Manjeera Digital Systems, « Revolutionise Processing », sur Indian Express (consulté le ).
  49. UMA AI Chip, « AI Chip from Hyderabad », Telangana Today, no News Paper,‎ (lire en ligne, consulté le ).
  50. Lambert, Fred, « Elon Musk confirms that Tesla is working on its own new AI chip led by Jim Keller », .
  51. Chen, Yu-Hsin, Krishna, Tushar, Emer, Joel et Sze, Vivienne, « Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks », IEEE International Solid-State Circuits Conference, ISSCC 2016, Digest of Technical Papers, , p. 262–263.
  52. Aimar, Alessandro et al., « NullHop: A Flexible Convolutional Neural Network Accelerator Based on Sparse Representations of Feature Maps ».
  53. « Synthara Technologies ».
  54. « kalray MPPA ».
  55. « Graphcore Technology ».
  56. « Wave Computing's DPU architecture ».
  57. « A 2.9 TOPS/W Deep Convolutional Neural Network SoC in FD-SOI 28nm for Intelligent Embedded Systems ».
  58. « NM500, Neuromorphic chip with 576 neurons ».
  59. « 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
  60. « 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 ».
  61. « Intel’s New Self-Learning Chip Promises to Accelerate Artificial Intelligence ».
  62. « BrainChip Accelerator ».
  63. « India preps RISC-V Processors - Shakti targets servers, IoT, analytics » : « The Shakti project now includes plans for at least six microprocessor designs as well as associated fabrics and an accelerator chip ».
  64. « AlphaICs ».
  65. « drive px ».
  66. « Goalkeeper - close-in weapon system ».
  67. (en) « design of a machine vision system for weed control ».
  68. « qualcomm research brings server class machine learning to every data devices ».
  69. « google assistant ia ».
  70. « DeepL Learning ».
  71. « movidius powers worlds most intelligent drone ».
  72. « De l'intelligence artificielle pour assister les hôpitaux lyonnais ».

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]