CPU vs GPU vs NPU : conception, types de données et efficacité

Le CPU est un processeur généraliste capable de tout exécuter : avec un petit nombre de cœurs complexes, il termine une tâche le plus vite possible. Le GPU traite en parallèle de grandes quantités de données avec un grand nombre d'unités de calcul et sert à des calculs parallèles très variés, comme le graphisme ou l'entraînement de l'IA. Le NPU est un circuit dédié aux opérations de multiplication-accumulation sur des matrices qui représentent l'essentiel des calculs des réseaux de neurones : en alignant de nombreuses unités de calcul de faible précision comme l'INT8 et en réutilisant les données dans la mémoire sur puce, il effectue l'inférence avec une efficacité énergétique très élevée. En contrepartie, il est peu à l'aise avec les opérations qu'il ne prend pas en charge.

CritèreCPUGPUNPU
Philosophie de conceptionGénéraliste, faible latence. Terminer une tâche le plus vite possibleHaut débit. Traiter en bloc de grandes quantités de calculs parallèlesSpécialisé dans les opérations des réseaux de neurones (surtout l'inférence), pour maximiser les performances par watt
Organisation des unités de calculDe quelques à quelques centaines de cœurs complexes, chacun avec des unités SIMDDes milliers d'unités de calcul simples. Beaucoup disposent aussi d'unités de calcul matricielUn grand réseau d'unités de multiplication-accumulation (réseau systolique, etc.) et des unités vectorielles pour les fonctions d'activation, etc.
Mode de contrôlePrédiction de branchement et exécution spéculative (dans le désordre) à chaque instructionBascule entre de nombreux threads pour masquer la latence mémoireSuit le plus souvent un flux de données fixé à l'avance par le compilateur, avec peu de contrôle par instruction
Points fortsTraitements riches en branchements, système d'exploitation, logique applicativeGraphisme, entraînement et inférence de l'IA, calcul scientifiqueInférence d'IA centrée sur les convolutions et les produits matriciels
MémoireGrands caches et mémoire principale de type DDRMémoire à haut débit de type GDDR ou HBMRéutilise poids et données intermédiaires dans des tampons SRAM sur puce. Intégré à un SoC, il partage la mémoire principale avec le CPU
Types de données principauxSurtout FP64, FP32 et entiers, mais presque toutSurtout FP32, FP16 et BF16. Aussi FP8, etc. pour l'entraînementSurtout faible précision : INT8, INT4, FP16, etc.
Mesure des performancesFréquence d'horloge, nombre de cœurs, IPCFLOPS (TFLOPS, etc.)TOPS (le plus souvent une valeur maximale théorique comptée en INT8)
Efficacité énergétique en inférence d'IAFaibleÉlevéeLa plus élevée. Parfois plus d'un ordre de grandeur au-dessus du CPU
FlexibilitéLa plus élevée. Tout programme peut s'y exécuterÉlevée. Largement utilisable pour les traitements parallélisablesFaible. Les opérations non prises en charge sont renvoyées au CPU ou au GPU
ProgrammationLangages de programmation et compilateurs courantsÉcriture de kernels dans un modèle de programmation parallèle pour GPULes modèles entraînés sont convertis et exécutés par un compilateur d'IA ou un runtime d'inférence. Programmation directe rare
EmplacementDans tous les ordinateursCarte indépendante ou intégré à un SoCSouvent intégré au SoC des smartphones et des PC. Il existe aussi des puces dédiées pour les centres de données

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

CPU
Traitements séquentiels riches en branchements et contrôle de l'ensemble du système. Également pour les petits modèles et les opérations non prises en charge par le NPU.
GPU
Calculs parallèles à grande échelle exigeant du choix en précision et de la flexibilité : entraînement de l'IA, inférence de grands modèles, graphisme, calcul scientifique, etc.
NPU
Lorsqu'on veut faire tourner en permanence, sur smartphone ou PC, des inférences comme la retouche photo, la reconnaissance vocale ou la traduction sans vider la batterie. Le modèle est quantifié et exécuté dans un format où le NPU excelle, comme l'INT8.

Questions fréquentes

Quelle est la différence entre un NPU et un GPU ?

Le GPU est un processeur parallèle généraliste dont les nombreuses unités de calcul s'utilisent de façon flexible par programmation, y compris pour le graphisme et l'entraînement. Le NPU se concentre sur les multiplications-accumulations de l'inférence des réseaux de neurones et s'articule autour d'unités de calcul de faible précision et de mémoire sur puce : très efficace énergétiquement pour les traitements pris en charge, il est peu à l'aise avec les autres.

Pourquoi le NPU est-il si efficace énergétiquement ?

Le CPU fait fonctionner à chaque instruction de nombreux circuits, comme la prédiction de branchement et le réordonnancement des instructions ; le NPU en supprime une grande partie et aligne un grand nombre de petites unités de multiplication-accumulation, en INT8 par exemple. En outre, il réutilise poids et données intermédiaires dans la SRAM sur puce, ce qui réduit les accès à la mémoire externe, très gourmands en énergie.

Peut-on faire de l'entraînement sur un NPU ?

Les NPU des smartphones et des PC sont conçus principalement pour l'inférence. L'entraînement exige le calcul des gradients et une précision élevée ; on utilise généralement des GPU ou des accélérateurs d'entraînement pour centres de données.

Un NPU au nombre de TOPS plus élevé est-il toujours plus rapide ?

Pas forcément. Le TOPS est le plus souvent une valeur maximale théorique comptée en INT8 par exemple, parfois même une valeur qui suppose des données creuses. La vitesse réelle dépend fortement de la bande passante mémoire, du taux d'utilisation des unités de calcul et de la prise en charge ou non des opérations du modèle par le NPU.

Vérifier vos connaissances

Quelle est la principale raison pour laquelle le NPU d'un SoC de smartphone est plus efficace énergétiquement que le CPU pour l'inférence d'IA ?

  1. ALe NPU calcule avec de la lumière, sans électricité
  2. BIl aligne de nombreuses unités de multiplication-accumulation en faible précision, comme INT8, et omet les circuits généralistes inutiles au calcul d'IA
  3. CLe NPU fonctionne toujours à une fréquence d'horloge plus élevée que le CPU
Afficher la réponse et l'explication

Réponse : B. Il aligne de nombreuses unités de multiplication-accumulation en faible précision, comme INT8, et omet les circuits généralistes inutiles au calcul d'IA

Pour pouvoir tout exécuter, le CPU active de nombreux circuits à chaque instruction, comme la prédiction de branchement ou le réordonnancement des instructions. Le NPU, spécialisé dans les multiplications-accumulations matricielles, aligne de nombreuses unités en faible précision et réutilise les données dans la puce ; l'énergie par opération est donc inférieure de plusieurs ordres de grandeur. En contrepartie, il convient mal aux traitements hors IA et aux opérations non prises en charge.

Quel circuit dédié, intégré notamment aux SoC de smartphones, réalise l'inférence d'IA rapidement et avec une faible consommation ?

  1. APLL (boucle à verrouillage de phase)
  2. BConvertisseur analogique-numérique
  3. CNPU (unité de traitement neuronal)
Afficher la réponse et l'explication

Réponse : C. NPU (unité de traitement neuronal)

Le NPU est un circuit dédié qui traite massivement en parallèle, en basse précision comme les entiers de 8 bits ou moins, les multiplications-accumulations qui constituent l'essentiel du calcul des réseaux de neurones. Ses performances par watt dépassent d'au moins un ordre de grandeur celles d'un processeur généraliste, ce qui permet de traiter dans le smartphone la retouche photo, la reconnaissance vocale ou la traduction. Ses performances s'expriment en TOPS (billions d'opérations par seconde), et son intégration s'étend aux SoC pour PC.

Quelle organisation, utilisée notamment dans les accélérateurs d'IA, dispose de nombreuses unités de multiplication-accumulation en grille et calcule des produits matriciels en faisant circuler les données d'une unité à sa voisine ?

  1. ARéseau systolique
  2. BCommutateur crossbar
  3. CTampon circulaire
Afficher la réponse et l'explication

Réponse : A. Réseau systolique

Le réseau systolique dispose les unités de multiplication-accumulation (MAC) en deux dimensions et calcule en transmettant régulièrement les données à l'unité voisine ; son nom évoque la contraction du cœur (systole) qui propulse le sang. Une donnée lue une seule fois est réutilisée par de nombreuses unités, ce qui réduit les accès mémoire et rend le calcul matriciel efficace. Le TPU de Google comporte de grands réseaux, par exemple de 128×128.

  1. Quelle est la principale raison pour laquelle le réseau systolique utilisé dans les accélérateurs d'IA calcule efficacement les produits matriciels ?
  2. En inférence d'IA, quel est le principal avantage de la conversion (quantification) des poids de FP32 en INT8 ?
  3. À quoi faut-il prendre garde concernant la valeur « xx TOPS » indiquée comme performance d'un accélérateur d'IA ?

Questions d'entraînement sur Pile matérielle et logicielle de l'IA

Termes clés expliqués

NPU (unité de traitement neuronal)
Circuit dédié à l'inférence des réseaux de neurones d'IA, rapide et à faible consommation. Intégré aux SoC des smartphones et des PC.
GPU
Abréviation de Graphics Processing Unit. Processeur doté de très nombreuses unités de calcul simples, qui traite en parallèle de grandes quantités de données. Utilisé pour le graphisme ainsi que pour l'entraînement et l'inférence en IA.
Réseau systolique
Architecture qui dispose de nombreux multiplieurs-accumulateurs en grille et calcule des produits matriciels en faisant circuler les données d'un opérateur à son voisin. Utilisée dans les accélérateurs d'IA.
INT8
Entier signé sur 8 bits (−128 à 127). En inférence d'IA, convertir poids et activations en INT8 avec un facteur d'échelle (quantification) réduit fortement les calculs et la mémoire, et permet un traitement rapide avec de petits circuits entiers.
TOPS
Indicateur de performance des accélérateurs d'IA exprimant le nombre d'opérations par seconde en billions (téra). Il s'agit le plus souvent d'un maximum théorique compté en basse précision.

Comparatifs associés