Qualcomm Hexagon 685 DSP est un avantage pour l'apprentissage automatique

Le Snapdragon 845 - le tout dernier système sur puce de la famille Snapdragon de Qualcomm - est un concentré de puissance de processeur. Il dispose de cœurs de processeur rapides, d'un processeur de signal d'image Spectra (ISP) de troisième génération et d'une architecture 30% plus éconergétique que la génération précédente. Mais son composant le plus impressionnant est sans aucun doute un coprocesseur - le DSP Hexagon 685 - conçu sur mesure pour l'intelligence artificielle et l'apprentissage automatique.

Qu'est-ce qui caractérise le DSP Hexagon 685 de Qualcomm?

L’architecture DSP Hexagon dans le Snapdragon 835. Source: Qualcomm

«Les mathématiques vectorielles sont la base de l'apprentissage en profondeur.» - Travis Lanier, directeur principal de la gestion des produits chez Qualcomm

Pour comprendre ce qui rend le DSP Hexagon si unique, il est utile de savoir que l'IA est guidée par le type de majors en ingénierie des collèges de mathématiques qui sont parfaitement familiers. L'apprentissage automatique implique un calcul avec de grands vecteurs, ce qui représente un défi pour les processeurs de smartphone, de tablette et de PC. Il est difficile pour les puces à usage général de calculer des algorithmes tels que la descente de gradient stochastique - les types d'algorithmes qui sont au cœur des applications utilisant l'IA - rapidement et efficacement. Le DSP Hexagon de Qualcomm a été introduit en partie pour résoudre ce problème: il est excellent pour la gestion des données d'images et de capteurs, en particulier la photographie.

Mais le DSP Hexagon est capable de beaucoup plus que d’améliorer les selfies. Les contextes HVX inclus (plus sur ceux plus tard) lui confèrent l'avantage des processeurs à usage général et des cœurs à fonction fixe; Le processeur DSP Hexagon 685 est extrêmement efficace pour calculer les calculs mathématiques qui sous-tendent l’apprentissage automatique sur machine, tout en conservant la souplesse des processeurs plus programmables.

Les puces d'intelligence artificielle telles que le DSP Hexagon 685, parfois appelées «unités de traitement neurales», «moteurs neuronaux» ou «cœurs d'apprentissage automatique», sont spécifiquement adaptées aux besoins mathématiques des algorithmes d'intelligence artificielle. Ils sont beaucoup plus rigides que les processeurs traditionnels et contiennent des instructions et des arrangements spéciaux (dans le cas de Hexagon 685 DSP, de l'architecture HVX susmentionnée) qui accélèrent certaines opérations scalaires et vectorielles, qui deviennent perceptibles dans les mises en œuvre à grande échelle.

Le DSP Hexagon 685 de Snapdragon 845 peut traiter des milliers de bits d’unités de vecteurs par cycle de traitement, par rapport aux centaines de bits du noyau de processeur moyen. C'est par conception. Avec quatre threads scalaires parallèles pour les opérations VLIW (Very Long Instruction Word) et plusieurs contextes HVX, le DSP est capable de jongler avec plusieurs unités d'exécution sur une seule instruction et d'exploser par le biais d'opérations décimales à nombres entiers et à virgule fixe.

Plutôt que de pousser les performances à travers les MHz bruts, la conception de l'Hexagon 685 vise des niveaux de travail élevés par cycle à une vitesse d'horloge réduite. Il inclut le multi-threading matériel qui fonctionne bien pour VLIW, car le masquage des latences de pipeline permet une meilleure utilisation des paquets VLIW. Le multi-threading du DSP lui permet de gérer plusieurs sessions de déchargement (applications simultanées pour l'audio, la caméra, la vision par ordinateur, etc.) et d'accélérer plusieurs tâches simultanément, évitant ainsi aux applications de se battre pour le temps d'exécution.

Source: Qualcomm

Mais ce ne sont pas les seuls atouts du DSP Hexagon. Son architecture de jeu d'instructions (ISA) offre une efficacité améliorée par rapport au VLIW traditionnel grâce au code de contrôle amélioré, et utilise des astuces astucieuses pour récupérer les performances à partir de threads inactifs et bloqués. Il implémente également la planification de threads à tour de rôle sans latence, ce qui signifie que les threads du DSP traitent les nouvelles instructions immédiatement après avoir terminé le paquet de données précédent.

Source: Qualcomm

Rien de tout cela n'est nouveau, pour être clair. Qualcomm a présenté le DSP Hexagon de première génération (ou son équivalent) - le Hexagon 680, ou QDSP6 v6 - aux côtés du Snapdragon 820 en 2015, et le Hexagon 680 a été suivi par le très légèrement amélioré Hexagon 682. Cette génération est la plus sophistiquée à ce jour et offre trois fois plus de performances globales que le DSP du Snapdragon 835.

Cela est dû en grande partie au HVX, qui a très bien fonctionné pour le traitement des images (pensez à la réalité augmentée, à la vision par ordinateur, à la vidéo et aux images). Les registres HVX du DSP peuvent être contrôlés par deux registres scalaires quelconques, et les unités HVX et les unités scalaires peuvent être utilisées simultanément, ce qui entraîne des gains de performances et une simultanéité substantiels.

Voici l'explication de Qualcomm:

«Supposons que vous traitez sur la CPU mobile en mode de code de contrôle et que vous passiez en mode de calcul sur le coprocesseur. Si vous avez besoin de code de contrôle, vous devez vous arrêter et revenir du coprocesseur à la CPU principale. Avec Hexagon, le processeur de code de commande sur le DSP et le processeur de code informatique sur HVX peuvent fonctionner en même temps pour un couplage étroit du code de commande et du code informatique. Cela permet au DSP de prendre le résultat d'un calcul HVX et de l'utiliser dans une décision de code de contrôle lors du prochain cycle d'horloge. ”

Le HVX offre un autre avantage considérable dans le traitement des capteurs d’image. Les périphériques Snapdragon dotés du DSP Hexagon 685 peuvent transmettre des données directement du capteur d’imagerie à la mémoire locale du DSP (cache L2), en contournant le contrôleur de mémoire DDR du périphérique. Cela réduit bien sûr la latence, mais améliore également la durée de vie de la batterie: le processeur Snapdragon est conçu pour rester inactif tout au long de l'opération.

Il est spécialement optimisé pour les réseaux à virgule flottante 16 bits et contrôlé par le logiciel d'apprentissage automatique de Qualcomm: Snapdragon Neural Processing Engine.

"Nous l'avons [pris] très au sérieux", a déclaré un porte-parole de Qualcomm. «Nous travaillons avec nos partenaires depuis trois ans pour qu'ils utilisent […] notre silicium pour l'IA et l'imagerie."

Ces partenaires incluent Google, qui a utilisé la partie traitement d’images du DSP Hexagon pour alimenter l’algorithme HDR + de Pixel 2, par exemple. Bien que Google ait également introduit son propre Pixel Core, il convient de noter que les périphériques compatibles DSP Hexagon 685 sont ceux qui obtiennent les meilleurs résultats avec le célèbre port Google Camera, en partie à cause (comme nous l'avons confirmé) de l'utilisation de HVX. Facebook, un autre partenaire, a travaillé en étroite collaboration avec Qualcomm pour accélérer les filtres et les effets de caméra en temps réel de Messenger.

Oppo a optimisé sa technologie de déverrouillage de visage pour le DSP Hexagon 685, et Lenovo a développé sa fonction de détection de point de repère autour de celle-ci.

L'une des raisons de la richesse du support de la plate-forme est sa simplicité. Le kit de développement étendu Hexagon SDK de Qualcomm prend en charge le langage Halide pour le traitement d’images de haute performance. Il n’est pas nécessaire de s’inquiéter des cadres de formation en apprentissage automatique: la mise en œuvre d’un modèle est aussi simple que de passer un appel API, dans la plupart des cas.

"Nous ne sommes pas […] en concurrence avec IBM ou Nvidia [dans l'IA], mais nous avons des domaines dans lesquels les développeurs peuvent puiser et qu'ils ont déjà", a déclaré Qualcomm aux développeurs.

Hexagone contre la concurrence

Le DSP Hexagon 685 DSP du Snapdragon 845 se présente alors qu'un nombre croissant de fabricants d'équipement d'origine (OEM) recherchent leurs propres solutions d'IA mobiles et sur appareil. Le système Kirin 970 de Huawei - le système intégré à la puce des Mate 10 et Mate 10 Pro - possède une «unité de traitement neural» (NPU) capable de reconnaître plus de 2 000 images par seconde à seulement 1/50 de la consommation électrique moyenne. processeur de smartphone. Et le système sur puce Apple A11 Bionic dans l'iPhone 8, l'iPhone 8 Plus et l'iPhone X dispose d'un «moteur Neural» qui effectue la modélisation faciale en temps réel et jusqu'à 600 milliards d'opérations par seconde.

Mais Qualcomm affirme que l'agnosticisme de plate-forme de Hexagon lui confère un avantage. Contrairement à Apple et à Huawei, qui obligent largement les développeurs à utiliser des API propriétaires, Qualcomm a cherché à prendre en charge dès le départ certains des frameworks open source les plus populaires. Par exemple, il a travaillé avec Google pour optimiser TensorFlow, la plate-forme d'apprentissage automatique de Google, pour le DSP Hexagon 685. Qualcomm indique qu'il fonctionne jusqu'à huit fois plus rapidement et 25 fois plus efficacement que sur les appareils non Hexagon.

Source: Qualcomm

Sur l'architecture DSP de Qualcomm, le réseau GoogLeNet Inception Deep Neural Network de Google, un algorithme d'apprentissage automatique conçu pour évaluer la qualité des systèmes de détection et de classification d'objets, a démontré les avantages d'une démonstration montrant une application de reconnaissance d'image optimisée par TensorFlow sur deux smartphones: celle qui exécute l'application sur le processeur, et l'autre qui l'exécute sur le DSP Hexagon de Qualcomm. L'application pour smartphone accélérée par le DSP a capturé plus d'images par seconde, a identifié les objets plus rapidement et était plus confiante dans sa conclusion quant à la nature de l'objet que l'application avec processeur uniquement.

Google utilise également le DSP Hexagon 685 pour accélérer Project Tango, sa plateforme de réalité augmentée pour smartphones. Le Phab 2 Pro de Lenovo, le ZenFone AR d'Asus et d'autres appareils dotés du module IR de détection de profondeur et des caméras de suivi des images de Tango tirent parti de l'architecture de traitement hétérogène de Qualcomm, qui délègue des tâches de traitement parmi le concentrateur de capteurs et l'image Hexagon 685 de Snapdragon. processeur de signal (ISP). Le résultat est une surcharge de "moins de 10%" sur le processeur du système sur puce, selon Qualcomm.

«À notre connaissance, nous sommes les seuls à être mobiles à optimiser nos performances et notre efficacité énergétique», a déclaré un porte-parole de Qualcomm.

Bien entendu, les concurrents s’emploient également à élargir leur sphère d’influence et à favoriser le soutien des développeurs sur leurs plateformes. La puce neuronale du Kirin 970 a été lancée avec la prise en charge de TensorFlow et de Caffe (framework API ouvert de Facebook) en plus des API Kirin de Huawei, avec l'intégration de TensorFlow Lite et de Caffe2 plus tard cette année. Et Huawei a collaboré avec Microsoft pour optimiser son convertisseur de données basé sur l'IA pour le Mate 10.

Mais Qualcomm a un autre avantage: Atteindre. Le fabricant de puces occupait 42% du marché des puces pour smartphones au premier semestre 2017, suivi de Apple et MediaTek avec 18% chacune, selon Strategy Analytics. Autant dire que ça ne tremble pas pour le moment.

Et Qualcomm prédit que cela ne fera que croître. Le fabricant de puces prévoit un chiffre d'affaires de 160 milliards de dollars d'ici 2025 avec des technologies logicielles d'intelligence artificielle telles que la vision par ordinateur, et considère le marché des smartphones - qui devrait atteindre 8, 6 milliards d'unités livrées d'ici 2021 - comme la plus grande plateforme.

Grâce au DSP Hexagon 685 et à d’autres améliorations «tertiaires» qui descendent en permanence jusqu’au matériel de milieu de gamme, il est également plus facile pour les puces Qualcomm d’apprendre prochainement l’apprentissage sur machine à toutes sortes de périphériques. Ils offrent également un SDK pratique pour les développeurs (nul besoin de manipuler le langage d'assemblage DSP) pour tirer parti des solutions Hexagon 685 DSP et HVX dans leurs applications et services.

"Il existe un besoin pour ces unités de traitement dédiées au traitement neuronal, mais vous devez également l'étendre pour pouvoir prendre en charge les frameworks [open source]", a déclaré un porte-parole de Qualcomm. "Si vous ne créez pas cet écosystème, il n'y a aucun moyen […] que les développeurs puissent créer dessus."