8 minutes
Un accélérateur d'IA est tout matériel, y compris un processeur graphique (GPU) , utilisé pour accélérer les modèles de machine learning (ML) et d'apprentissage profond (DL), le traitement automatique du langage naturel et d'autres opérations d'intelligence artificielle (IA).
Cependant, le terme « accélérateur d’IA » est de plus en plus utilisé pour décrire des puces d’IA plus spécialisées, telles que les unités de traitement neuronal (NPU) ou les unités de traitement tensoriel (TPU). Si les GPU à usage général, initialement conçus pour le rendu d'images et de graphiques, sont très efficaces lorsqu'ils sont utilisés comme accélérateurs d'IA, d'autres types de matériel spécialement conçu pour l'IA peuvent offrir une puissance de calcul similaire ou supérieure, avec une meilleure efficacité énergétique, un débit plus élevé et d'autres optimisations précieuses pour les workloads d'IA.
Les unités centrales de traitement (CPU) standard fonctionnent selon un modèle linéaire, répondant aux demandes une par une, et rencontrent souvent des difficultés pour traiter des données à haute performance. Ils sont conçus différemment et répondent parfaitement à de telles demandes.
Dotés de plusieurs cœurs logiques, les GPU décomposent les problèmes complexes en petits morceaux qui peuvent être résolus simultanément, une méthode connue sous le nom de traitement parallèle. Développée par Nvidia en 2006, l’API CUDA a permis de tirer parti de l’incroyable puissance de traitement parallèle des GPU. Les programmeurs utilisent les GPU Nvidia à des fins de traitement général, avec des milliers de cas d’utilisation tels que l’optimisation des centres de données, la robotique, la fabrication de smartphones, le minage de cryptomonnaies et plus encore.
Les impressionnantes capacités de traitement parallèle du GPU se sont également révélées extrêmement utiles pour les tâches d'IA telles que l'entraînement de grands modèles de langage (LLM) ou des réseaux de neurones. Cependant, cette demande accrue s'accompagne d'une hausse de la consommation d'énergie. En outre, les GPU hautes performances sont notoirement gourmands en énergie et coûteux.
Bien qu'ils soient bien adaptés aux applications d'IA telles que le traitement de grands jeux de données, les GPU ne sont pas spécialement conçus pour être utilisés dans des modèles d'IA. En tant que processeur graphique, le GPU alloue en moyenne un certain nombre de cœurs logiques aux tâches liées aux graphismes. Ces tâches comprennent l'encodage et le décodage vidéo, le calcul des valeurs chromatiques et divers processus de rendu essentiels pour des tâches telles que le montage vidéo, la modélisation 3D et les jeux vidéo. Les puces d'accélération IA, cependant, sont optimisées pour ne traiter que les tâches nécessaires à l'IA.
D'une manière générale, un GPU doit être capable de traiter une très grande quantité (mais pas massive) de données très rapidement afin de restituer des graphiques complexes et rapides en temps réel. Ainsi, les GPU privilégient les opérations à faiblelatence pour garantir une qualité d'image constante et toujours de haute qualité.
Si la rapidité des modèles d’IA compte également, les jeux de données d’IA dépassent largement la moyenne exigée par un GPU. Contrairement aux GPU, les accélérateurs d’IA sont conçus pour optimiser la bande passante et, par conséquent, ils offrent généralement une meilleure efficacité énergétique.
Si les GPU sont fréquemment utilisés comme accélérateurs d’IA, ils peuvent s’avérer moins efficaces que les accélérateurs d’IA spécialisés. Les principales différences entre un GPU à usage général et une puce d’IA spécialisée sont la spécialisation, l’efficacité, l’accessibilité et la fonctionnalité.
Pour les applications d'IA, un GPU peut constituer une solution polyvalente, de la même manière qu'un pick-up peut être un compromis satisfaisant entre une voiture de sport et un poids lourd. Un poids lourds est plus lent qu’une voiture de sport, mais peut transporter beaucoup plus de marchandises. Un pick-up peut transporter des marchandises et est plus rapide qu'un poids lourds, mais plus lent qu'une voiture de sport.
On peut comparer le GPU à une camionnette. Selon les priorités de l’application d’IA, une puce d’IA plus spécialisée, comme un véhicule plus adapté, peut toutefois s’avérer préférable.
Les unités de traitement graphique ont vu le jour dans les années 1990 pour alléger la demande de traitement pesant sur les processeurs, dans un contexte où l’informatique devenait moins textuelle et les systèmes d’exploitation graphiques, ainsi que les jeux vidéo, commençaient à gagner en popularité.
Depuis l’invention de l’ordinateur moderne au début des années 1950, le processeur a toujours été chargé des tâches de calcul les plus importantes, dont le traitement, la logique et les contrôles d’entrée/sortie (E/S) nécessaires aux programmes.
Dans les années 1990, les jeux vidéo et la conception assistée par ordinateur (CAO) exigeaient un moyen plus efficace de convertir les données en images. Cette réalité a poussé les ingénieurs à concevoir les premiers GPU dotés d’une architecture de puce unique, capable d’assurer un traitement parallèle.
Depuis 2007, lorsque Nvidia a lancé CUDA, la plateforme de programmation GPU, la conception des GPU n’a cessé de gagner du terrain, avec de nouvelles applications dans tous les secteurs et bien au-delà du traitement graphique (bien que le rendu graphique demeure l’application la plus courante pour la plupart des GPU).
Il existe des centaines de types de GPU, qui varient en performance et en efficacité, et dont la plupart sont classés en trois grandes catégories :
Si le terme d’accélérateur d’IA englobe tout matériel utilisé pour accélérer les applications d’intelligence artificielle, il est généralement employé pour désigner les puces d’IA spécialisées, optimisées pour des tâches bien spécifiques des modèles IA.
Bien qu'ils soient considérés comme du matériel hautement spécialisé, les accélérateurs d'IA sont conçus et utilisés par des entreprises informatiques d'héritage telles qu'IBM, Amazon Web Services (AWS) et Microsoft, ainsi que par des startups telles que Cerebras. À mesure que l'IA se développe et gagne en popularité, les accélérateurs d'IA et les boîtes à outils qui les accompagnent se généralisent.
Avant l'invention des premiers accélérateurs dédiés à l'IA, les GPU à usage général étaient (et continuent d'être) fréquemment utilisés dans les applications d'IA, en particulier pour leur puissance de traitement parallèle avancée. Cependant, au fil des années et des progrès de la recherche en IA, les ingénieurs ont recherché des solutions d'accélérateurs d'IA offrant une meilleure efficacité énergétique et des optimisations spécifiques à l'IA.
Les accélérateurs d’IA varient en performance et en spécialisation, certaines technologies propriétaires étant réservées à des fabricants bien précis. Voici quelques exemples d’accélérateurs d’IA connus :
Si un GPU prêt à l’emploi offre certains avantages (par exemple, la disponibilité et l’accessibilité), les accélérateurs d’IA plus spécialisés surpassent généralement les anciennes technologies dans trois aspects clés : vitesse, efficacité et conception.
Les accélérateurs d'IA modernes, même les GPU, sont beaucoup plus rapides que les CPU lorsqu'il s'agit de traitement de données à faible latence et à grande échelle. Pour les applications critiques telles que les systèmes de véhicules autonomes, la vitesse devient cruciale. Les GPU sont meilleurs que les CPU, mais les ASIC conçus pour des applications spécifiques telles que la vision par ordinateur utilisée dans les voitures autonomes sont encore plus rapides.
Les accélérateurs d’IA conçus pour des tâches bien précises peuvent s’avérer 100 à 1 000 fois plus économes que les GPU, très gourmands en énergie. Ce gain d’efficacité permet de réduire considérablement ses coûts opérationnels et, surtout, son impact sur l’environnement.
Les accélérateurs d’IA reposent sur un type d’architecture de puce connu dit hétérogène, qui permet à plusieurs processeurs de prendre en charge différentes tâches et améliore la performance de calcul grâce à un traitement parallèle très avancé.
Le GPU étant lui-même considéré comme un accélérateur d’IA, il affiche souvent des cas d’utilisation similaires au matériel d’IA plus spécialisé. Les GPU pourraient finir par être relégués au second plan dans les applications d’IA.
Les GPU polyvalents sont toujours largement utilisés dans l’IA et d’autres types d’applications, et cette tendance va sans doute se poursuivre. Les GPU sont utilisés pour diverses applications nécessitant un parallélisme avancé. En voici quelques exemples :
À mesure que la technologie de l’IA se développe, le matériel spécialisé devient de plus en plus répandu. En intégrant la puissance de traitement parallèle des GPU tout en éliminant les fonctionnalités inutiles, les accélérateurs d’IA ASIC sont utilisés dans un éventail croissant d’applications, notamment les suivantes :