Table of Contents
Pour y remédier, les accélérateurs matériels — les GPU, les FPGA, les ASIC et les DSP — sont en train d'être mis en service. Parmi ceux-ci, les processeurs de signaux numériques (DSP) occupent une place unique: ils offrent une efficacité énergétique élevée et un traitement en temps réel déterministe, ce qui les rend attrayants pour les applications intégrées et les applications de bord. Toutefois, les DSP ne remplacent pas les GPU, et leur aptitude à l'apprentissage approfondi dépend fortement des exigences en matière de charge de travail et de performance.
Comprendre les processeurs DSP
Les processeurs de signaux numériques sont des microprocesseurs spécialisés optimisés pour des opérations répétitives et mathématiques intensives, particulièrement les multi-accumulations (MAC) qui forment l'épine dorsale du traitement des signaux. Contrairement aux processeurs à usage général, les DSP utilisent des architectures Harvard modifiées qui permettent l'instruction simultanée et les récupérations de données, réduisant les décrochages de pipelines.
- Unités à accumulation multiple :[ Matériel dédié qui peut effectuer un multiplie et un ajout en un seul cycle, souvent avec saturation ou logique d'arrondi.
- VLIW (Très longue instruction Word) pipelines:[ Plusieurs opérations peuvent être émises en parallèle, comme une MAC plus deux chargements ou des magasins.
- Calibre circulaire:[ Support matériel pour les opérations modulo d'adresse, crucial pour la convolution et le filtrage.
- SIMD (Instruction unique, données multiples) extensions pour les opérations vectorielles sur des entiers ou des données à points fixes.
- Conception de faible puissance:[ De nombreux DSP consomment moins de 1 watt, ce qui les rend idéales pour les systèmes alimentés par batterie.
Les DSP modernes (par exemple, Texas Instruments C66x, Qualcomm Hexagon, CEVA-XM) intègrent des unités flottantes, des caches plus grands et même des coprocesseurs spécialisés de réseaux neuraux. Pourtant, leur force première demeure déterministe, l'exécution à faible latence d'un flux d'échantillons de données.
Le cas des PSD en apprentissage profond
Efficacité énergétique et budgets énergétiques
Dans les scénarios intégrés et IoT, les contraintes thermiques et de puissance sont primordiales. Les DSP obtiennent généralement 10–100× une meilleure efficacité énergétique[ (en TOPS/W) par rapport aux CPU à usage général, et souvent mieux que les GPU mobiles pour l'inférence à des tailles de lots inférieures. Cela est dû à leurs unités MAC efficaces, à des contrôles aériens minimaux et à la capacité de fonctionner à des fréquences d'horloge inférieures tout en respectant les délais en temps réel.
Traitement déterministe en temps réel
De nombreuses applications de bord – comme l'annulation active du bruit, le traitement radar ou la fusion autonome des capteurs – exigent une latence déterministe sous 1 milliseconde. Les DSPs excellent ici, car leurs pipelines sont conçus pour gérer les données de streaming sans les caches imprévisibles manquants typiques des processeurs.
Avantages liés aux coûts et à l'intégration
Les DSP sont souvent intégrés dans les systèmes sur puces (SoCs) aux côtés des microcontrôleurs, des front-ends RF ou des processeurs d'application. Cette intégration réduit les coûts de bill-of-matériaux, la surface PCB et la complexité de la distribution d'énergie. Une seule puce comme un Qualcomm Snapdragon contient plusieurs cœurs DSP Hexagon aux côtés du CPU et du GPU; l'utilisation du DSP pour la détection de mots de sillage toujours sur le site libère le processeur d'application, prolongeant la durée de vie de la batterie.
Personnalisabilité et optimisation
Les fournisseurs DSP fournissent des bibliothèques logicielles étendues optimisées pour des opérations communes (filtres FIR, FFT, multiplication matricielle).Pour l'apprentissage profond, ces logiciels peuvent être augmentés avec des noyaux réseau neuraux qui exploitent le parallélisme VLIW et SIMD. Par exemple, la bibliothèque CMSIS-NN pour microcontrôleurs ARM Cortex-M (qui incluent souvent des instructions DSP) fournit des fonctions de convolution, de mise en commun et d'activation optimisées qui peuvent accélérer un petit modèle de 4 à 5× par rapport à un C pur. Certains DSP modernes incluent également des accélérateurs réseau neuronaux dédiés – une approche hybride qui combine la programmation DSP générale avec des moteurs de convolution filaires.
Considérations techniques concernant l'inférence fondée sur le PSD
Opérations et convolutions de matrice
Le noyau de l'inférence d'apprentissage profond est la convolution ou la couche entièrement connectée. Un tableau DSP=S MAC peut gérer ces opérations efficacement si les données s'adaptent à la puce. Parce que les DSP ont généralement de petits souvenirs locaux (tens à des centaines de kilooctets), les concepteurs doivent soigneusement tuiles et les poids et activations tampons. Par exemple, une convolution 3×3 avec des entrées 8 bits peut être déroulée dans une séquence de MAC qui exploitent SIMD, mais les cartes de grandes fonctionnalités nécessitent plusieurs passages. La bande passante mémoire entre la SRAM sur la puce et la DRAM externe devient un facteur limitant – en particulier pour les convolutions en profondeur qui impliquent de nombreux petits noyaux.
Quantification et précision
La plupart des DSP supportent nativement l'arithmétique à point fixe (entier ou fractionnel) avec des longueurs de mots configurables : 8, 16 ou 32 bits. Beaucoup prennent également en charge le point flottant (IEEE 754 à simple précision et une certaine demi-précision). Pour l'apprentissage profond, 8-bit la quantification entière[ est le point doux car elle réduit de moitié l'empreinte mémoire par rapport au FP32 et double le débit sur les unités SIMD.
Soutien du cadre et de la chaîne d'outils
Alors que TensorFlow, PyTorch et ONNX Runtime sont centrés sur le GPU, plusieurs cadres intégrés ciblent les DSP : TensorFlow Lite pour microcontrôleurs (TFLM), Arm CMSIS-NN, TensorFlow Lite avec moteur XNNPACK (pour les DSP sur mobile) et les SDK propriétaires fournisseurs (p. ex. TI=s Processor SDK RTOS, Qualcomm=s Hexagon NN). Ces cadres gèrent la conversion du modèle, la quantification et la délégation opérationnelle aux cœurs DSP. Cependant, l'ensemble des opérateurs supportés est souvent limité (p. ex., aucune fusion BatchNorm, aucune redimensionnement avancée) et les opérations personnalisées peuvent nécessiter des noyaux d'assemblage manuel.
Limites et défis
Parallélisme limité
Les GPU atteignent un parallélisme massif à travers des milliers de cœurs simples exécutés en mode SIMT (Instruction unique, Fil multiple). Les DSP, par contre, ont généralement entre 2 et 8 unités scalaires ou SIMD. Même en utilisant VLIW, les MAC théoriques par cycle sont souvent deux ordres de grandeur inférieure à un GPU moderne. Par exemple, un DSP haut de gamme comme le CEVA-XM6 atteint 1,2 TOPS à 1,5 GHz, tandis qu'un GPU mobile comme l'Adreno 740 peut dépasser 10 TOPS. Cela signifie que les DSP ne conviennent qu'aux modèles sous quelques centaines de milliers de paramètres qui nécessitent des tailles de lots faibles (batch=1).
Contraintes de bande passante de la mémoire
Les DSP dépendent généralement de la mémoire externe partagée (DDR3/4, LPDDR) accessible par un seul bus, avec un cache limité sur puce. La bande passante vers la mémoire externe est souvent de 4 à 8 Go/s, tandis qu'un GPU utilise des bus larges (p. ex., 512-bit avec HBM fournissant plus de 1 To/s). Pour les modèles lourds, le DSP passe la plupart de son temps à chercher des paramètres plutôt que de l'informatique – un scénario classique lié à la mémoire.
Cadre et lacunes des écosystèmes
Pour les DSP, la chaîne d'outils est souvent proprietaire, fragmentée et moins mature. Les développeurs peuvent avoir besoin d'écrire des pilotes personnalisés, de gérer les latences d'interruption et de gérer manuellement les copies de données entre la mémoire partagée et la mémoire locale DSP. De plus, les outils de débogage et de profilage pour les DSP sont en retard par rapport à ceux des CPU et des GPU.
Précision et précision numérique
Bien que la quantification fonctionne bien pour de nombreux modèles, certaines architectures (p. ex., transformateurs basés sur l'attention) sont sensibles à une précision réduite. Les DSP avec seulement l'arithmétique à point fixe peuvent nécessiter des workflows de précision mixte ou un retour au point flottant sur un coprocesseur. De plus, modes de saturation et d'arrondi[ diffèrent entre les variantes DSP, ce qui entraîne des résultats qui diverge d'une référence GPU. Les ingénieurs doivent vérifier l'équivalence numérique et éventuellement reformer des modèles avec des techniques de quantification-concepteur.
Cas d'utilisation et démonstrations
Malgré les limites, les PSD se sont révélés efficaces dans plusieurs tâches d'inférence bien définies :
- Spottage de mots clés (KWS)[ – Un petit modèle convolutionnel ou récurrent (parametres de 50 à 500K) fonctionnant en continu sur un DSP peut détecter des mots de réveil comme -Hey Siri , à moins de 10 mW, avec une latence inférieure à 100 ms.
- Détection de la personne sur les microcontrôleurs – En utilisant MobileNet v1 (0.25 multiplicateur de profondeur) avec la quantification INT8, un Cortex-M7 avec extensions DSP peut détecter une personne dans une image à échelle de gris 96×96 à 3-5 FPS tout en consommant 30 mW.
- Détection d'anomalies pour les capteurs industriels – Les DSP peuvent traiter des vibrations ou des signaux acoustiques à travers un petit encodeur automatique pour détecter les défauts de la machine en temps réel, déchargeant le processeur principal.
- Fusion du capteur dans les drones – Combiner les données IMU, caméra et radar avec un modèle multimodal assez petit pour s'intégrer dans la mémoire sur puce DSP, permettant ainsi d'éviter les obstacles à faible latence.
Ces exemples partagent des traits communs : petite taille du modèle, taille du lot 1, faible précision acceptable et latence déterministe critique.
Comparaison avec d'autres accélérateurs
Le choix entre un DSP, un GPU, un FPGA ou un ASIC dépend de l'application cible. Voici un résumé des compromis :
- GPU: Tops de pointe, supporte l'entraînement et l'inférence de grande quantité, mais la puissance élevée (10–300+W) et le coût. Ne convient pas pour les appareils alimentés par batterie ou à contraintes thermiques.
- FPGA: Une efficacité énergétique élevée et un chemin de données reconfigurables, mais la complexité du développement augmente de façon significative.
- ASIC (p. ex., NPU):[ offre des performances de pointe par watt, avec des moteurs à matrice à fonction fixe, mais perte de programmation à usage général.
- DSP: Bon équilibre de la programmabilité, faible puissance et capacités en temps réel, mais parallélisme limité et bande passante mémoire.
- CPU: La plus flexible, mais la plus mauvaise efficacité pour l'apprentissage profond. Cependant, les processeurs modernes avec AVX-512/VNNI peuvent approcher les performances de type DSP pour l'inférence INT8.
Dans de nombreux systèmes, les DSP sont utilisés comme coprocesseurs aux côtés des processeurs ou des FPGA, manipulant le traitement du signal avant-bout tandis qu'un autre accélérateur exécute le réseau neuronal.
Recherche en cours et orientations futures
L'écosystème matériel et logiciel pour l'apprentissage profond fondé sur le PSD évolue.
- Architectures informatiques hétérogéniques où les DSP sont étroitement intégrés avec de petits accélérateurs de réseau neuronal. Par exemple, la série TI=4x combine un DSP, un accélérateur CNN (C7x) et un accélérateur d'apprentissage profond (C66x) pour couvrir différentes charges de travail.
- Les chaînes d'outils améliorées avec quantification automatique, partitionnement de modèles et génération de codes pour les DSP. Google Alstom TensorFlow Lite pour les microcontrôleurs cible désormais ARM Cortex-M avec des instructions DSP, et des efforts sont en cours pour soutenir les extensions vectoriels RISC-V.
- L'accélération du modèle de séparation – Les DSP avec support pour le décrochage peuvent réduire le calcul des modèles taillés, mais cela nécessite des ensembles d'instructions ou des coprocesseurs personnalisés, un domaine actif dans des entreprises comme Synopsys et Cadence.
- On étudie la faible précision au-delà de INT8 – Quantification de sous-octets (4 bits, 2 bits) et binarisation; certains DSP peuvent nativement emballer plusieurs valeurs de 4 bits dans un seul mot de 32 bits, obtenant un débit plus élevé pour les réseaux extrêmement quantifiés.
Comme l'IA de bord continue de demander à la fois peu de latence et peu de puissance, les DSP – en particulier augmentés d'unités de calcul neural légères – resteront probablement une option viable pour une longue queue de tâches d'inférence en temps réel.
Conclusion
Les processeurs de signaux numériques offrent une voie convaincante pour accélérer l'inférence de l'apprentissage profond dans les environnements à ressources limitées et sensibles à la latence. Leurs forces en matière d'efficacité énergétique, d'exécution déterministe et de faible coût les rendent idéales pour des applications toujours sur de petits modèles. Cependant, les limites du parallélisme et de la largeur de la mémoire empêchent les DSP de gérer des modèles à grande échelle ou des charges de travail de formation. L'avenir de l'apprentissage profond basé sur DSP réside dans l'intégration hétérogène – combinant la flexibilité d'un processeur de signaux programmable avec des accélérateurs de réseaux neuronaux dédiés – et dans l'investissement continu de logiciels pour simplifier le déploiement des modèles.