VPU
Abréviation de vector processing unit (unité de traitement vectoriel).
VPU : la puce qui gère rapidement les vecteurs mathématiques
Une unité de traitement vectoriel (VPU) est un cœur de processeur spécialisé conçu pour effectuer la même opération mathématique sur plusieurs éléments de données en parallèle. Alors qu'un CPU standard exécute les instructions séquentiellement sur un ou deux éléments de données à la fois, une VPU ingère des tableaux de nombres (vecteurs) et les traite ensemble en un seul cycle d'instruction. Ce parallélisme rend les VPU efficaces pour des tâches telles que le traitement d'images, le filtrage de signaux, la vision industrielle et la simulation numérique, où des calculs identiques sont généralement effectués sur de grands ensembles de données.
Les VPU existent en tant que matériel dédié dans plusieurs contextes industriels. Certaines sont des cartes coprocesseurs autonomes qui fonctionnent aux côtés d'un CPU principal, acceptant le travail via PCIe ou d'autres interfaces. D'autres sont intégrées directement dans des conceptions de systèmes sur puce (SoC) utilisées dans les systèmes embarqués, la robotique et l'électronique automobile. Une troisième catégorie est basée sur des logiciels : les CPU modernes d'Intel, AMD et ARM incluent des jeux d'instructions vectorielles intégrés (tels que SSE, AVX ou NEON) qui permettent au processeur principal d'agir comme une VPU lorsqu'il reçoit les instructions appropriées.
Largeur des données et débit
La puissance brute d'une VPU est mesurée par le nombre d'éléments de données qu'elle peut traiter par cycle d'horloge et la largeur de ces éléments. Une unité AVX de 256 bits peut opérer sur huit nombres à virgule flottante de 32 bits en une seule instruction ; une unité AVX-512 de 512 bits double cette capacité. Les systèmes de vision industrielle associent souvent un CPU à une VPU dédiée basée sur un GPU pour gérer la convolution et l'extraction de caractéristiques en temps réel. Les contraintes de temps réel sont importantes : une caméra de ligne d'embouteillage fonctionnant à 30 images par seconde avec un capteur de 1920 par 1080 génère 62 millions de pixels par seconde ; sans traitement parallèle, la latence devient inacceptable.
La programmation pour les VPU nécessite une connaissance explicite de la largeur des vecteurs et de la disposition de la mémoire. Le code doit être écrit pour exposer le parallélisme ; une boucle C naïve opérant sur un élément à la fois n'utilisera pas automatiquement le matériel. Les développeurs utilisent des intrinsèques vectorielles (appels de fonctions de bas niveau) ou des frameworks de niveau supérieur comme OpenVINO, ONNX, ou des SDK spécifiques aux fournisseurs pour mapper les algorithmes sur le matériel VPU. Un désalignement des données en mémoire, une mauvaise utilisation du cache ou des dépendances de données au sein du vecteur peuvent gravement dégrader les performances.
Le terme VPU lui-même est le plus courant dans les contextes universitaires et de conception de puces. Dans l'industrie, le même matériel est souvent appelé coprocesseur mathématique, accélérateur vectoriel, ou simplement identifié par le nom du jeu d'instructions (AVX, NEON, SVE). La distinction est importante car tous les accélérateurs ne sont pas de véritables processeurs vectoriels ; les unités de traitement tensoriel (TPU) et les accélérateurs d'IA gèrent les opérations matricielles différemment et servent des charges de travail différentes. Comprendre si votre goulot d'étranglement est le calcul scalaire, le calcul vectoriel ou la bande passante mémoire détermine si la mise à niveau de votre VPU résoudra le problème.
Sources
- Source de la définitionWiktionary