FPGA vs GPU

FPGA vs GPU pour le Deep Learning

Les FPGA sont un excellent choix pour les applications de Deep Learning qui nécessitent une faible latence et de la flexibilité.

Avantages du FPGA Deep Learning :

  • Les FPGA offrent une flexibilité et une rentabilité incroyables grâce à des circuits qui peuvent être reprogrammés pour différentes fonctionnalités.

  • Par rapport aux GPU, les FPGA peuvent offrir des performances supérieures dans les applications de Deep Learning où une faible latence est essentielle.

  • Les FPGA peuvent être réglés avec précision pour équilibrer l'efficacité énergétique et les exigences de performance.

author-image

Par

Qu'est-ce qu'un FPGA ?

Les FPGA (Field Programmable Gate Arrays) sont des circuits intégrés dotés d'une structure matérielle programmable. Contrairement aux unités de traitement graphique (GPU) ou aux ASIC, le circuit à l'intérieur d'une puce FPGA n'est pas gravé en dur. Il peut être reprogrammé selon les besoins. Cette capacité fait des FPGA une excellente alternative aux ASIC, dont le design et la fabrication nécessitent un long temps de développement et un investissement important.

L'industrie technologique a adopté les FPGA pour le Machine Learning et le Deep Learning relativement récemment. En 2010, Microsoft Research a présenté l'un des premiers cas d'utilisation de l'IA sur FPGA dans le cadre de ses efforts pour accélérer les recherches sur le Web1. Les FPGA offraient une combinaison de vitesse, de programmabilité et de flexibilité, offrant des performances sans le coût et la complexité du développement de circuits intégrés personnalisés (ASIC) spécifiques aux applications. Cinq ans plus tard, le moteur de recherche Bing de Microsoft utilisait des FPGA en production, prouvant leur valeur pour les applications de Deep Learning. En utilisant des FPGA pour accélérer le classement des recherches, Bing a réalisé une augmentation de 50 % du débit1.

Pourquoi choisir un FPGA pour le Deep Learning ?

Les premières charges de travail de l'IA, comme la reconnaissance d'images, s'appuyaient fortement sur le parallélisme. Les GPU ayant été spécifiquement conçus pour le rendu de vidéos et de graphiques, leur utilisation pour le Machine Learning et le Deep Learning est devenue populaire. Les GPU excellent dans le traitement parallèle, en effectuant un très grand nombre d'opérations arithmétiques en parallèle. En d'autres termes, ils peuvent fournir une accélération incroyable dans les cas où la même charge de travail doit être exécutée plusieurs fois en succession rapide.

Cependant, l'exécution de l'IA sur les GPU a ses limites. Les GPU ne sont pas aussi performants qu'un ASIC, une puce spécialement conçue pour une charge de travail donnée en matière de de Deep Learning.

Les FPGA offrent une personnalisation du matériel avec une IA intégrée et peuvent être programmés pour fournir un comportement similaire à celui d'un GPU ou d'un ASIC. La nature reprogrammable et reconfigurable d'un FPGA se prête bien à l'évolution rapide du paysage de l'IA, permettant aux concepteurs de tester rapidement les algorithmes et de les mettre rapidement sur le marché. Les FPGA offrent plusieurs avantages pour les applications de Deep Learning et d'autres charges de travail d'IA :

Des performances exceptionnelles avec un débit élevé et une faible latence : les FPGA peuvent intrinsèquement fournir une faible latence ainsi qu'une latence déterministe pour les applications en temps réel telles que le streaming vidéo, la transcription et la reconnaissance d'actions en ingérant directement la vidéo dans le FPGA, en passant un CPU. Les concepteurs peuvent construire un réseau neuronal à partir de la base et structurer le FPGA pour qu'il s'adapte au mieux au modèle.
Une valeur et un coût excellents : Les FPGA peuvent être reprogrammés pour différentes fonctionnalités et types de données, ce qui en fait l'une des options matérielles les plus rentables. En outre, les FPGA peuvent être utilisés pour d'autres applications que l'IA. En intégrant des capacités supplémentaires sur la même puce, les concepteurs peuvent économiser des coûts et de l'espace sur la carte. Les FPGA ont des cycles de vie du produit longs, de sorte que les conceptions matérielles basées sur les FPGA peuvent avoir une longue durée de vie du produit, mesurée en années ou en décennies. Cette caractéristique les rend idéales pour les marchés de la défense industrielle, de la médecine et de l'automobile.
Faible consommation d'énergie : Avec les FPGA, les concepteurs peuvent adapter le matériel à l'application, ce qui permet de répondre aux exigences en matière d'efficacité énergétique. Les FPGA peuvent également accueillir des fonctions multiples, ce qui permet d'améliorer l'efficacité énergétique de la puce. Il est possible d'utiliser une partie d'un FPGA pour une fonction, plutôt que la totalité de la puce, ce qui permet au FPGA d'héberger plusieurs fonctions en parallèle. 

Applications d'IA et de Deep Learning sur les FPGA 

Les FPGA peuvent offrir des avantages en matière de performances par rapport aux GPU lorsque l'application exige une faible latence et des lots de petite taille, par exemple, pour la reconnaissance vocale et d'autres charges de travail de traitement du langage naturel. Grâce à leur interface d'E/S programmable et à leur structure très flexible, les FPGA sont également bien adaptés aux tâches suivantes :

Surmonter les goulots d'étranglement des E/S. Les FPGA sont souvent utilisés lorsque les données doivent traverser de nombreux réseaux différents avec une faible latence. Ils sont incroyablement utiles pour éliminer la mémoire tampon et surmonter les goulots d'étranglement des E/S, l'un des facteurs les plus limitants pour les performances des systèmes d'IA. En accélérant l'ingestion des données, les FPGA peuvent accélérer l'ensemble du flux de travail de l'IA.
Intégrer l'IA dans les charges de travail. Grâce aux FPGA, les concepteurs peuvent ajouter des capacités d'IA, telles que l'inspection approfondie des paquets ou la détection des fraudes financières, aux charges de travail existantes.
Permettre la fusion des capteurs. Les FPGA excellent dans le traitement des données provenant de capteurs multiples, tels que les caméras, les LIDAR et les capteurs audio. Cette capacité peut s'avérer extrêmement précieuse lors de la conception de véhicules autonomes, de robots et d'équipements industriels.
Fournir une accélération pour les clusters de High Performance Computing (HPC). Les FPGA peuvent faciliter la convergence de l'IA et du HPC en servant d'accélérateurs programmables pour l'inférence. 2.
Ajouter des capacités supplémentaires au-delà de l'IA. Les FPGA permettent d'ajouter des capacités de sécurité, d'E/S, de mise en réseau ou de pré/post-traitement sans nécessiter de puce supplémentaire.

Logiciels et matériel Intel® FPGA

L'un des rares obstacles à surmonter lors de l'utilisation des FPGA est que le matériel nécessite généralement une expertise de programmation spécialisée. Intel réduit la quantité d'expertise nécessaire grâce à un modèle de programmation basé sur le logiciel. Ce modèle de programmation FPGA de niveau supérieur permet à un scientifique des données ou à un développeur de modèles de créer un réseau neuronal à l'aide d'un cadre d'IA commun, tel que TensorFlow ou Caffe, et de le déployer sur un FPGA sans connaître les détails de l'architecture FPGA. Intel a développé plusieurs outils qui facilitent la programmation des FPGA :

La distribution Intel® du kit d'outils OpenVINO™ donne aux développeurs de vision par ordinateur un outil unique pour accélérer les modèles sur plusieurs plateformes matérielles, y compris les FPGA.
Intel® FPGA AI Suite fournit des outils et des architectures optimisées pour accélérer l'inférence avec les Intel® FPGA. Elle s'interface avec le kit d'outils OpenVINO™, offrant une évolutivité permettant de prendre en charge des réseaux personnalisés.
Open FPGA Stack (OFS) est une infrastructure logicielle et matérielle open-source qui fournit un cadre pour le développement de plateformes et de charges de travail personnalisées basées sur des FPGA. Tout le code source est disponible sur GitHub.

Les solutions technologiques de Deep Learning Intel® FPGA couvrent une gamme de familles de produits et d'outils logiciels pour réduire le temps et le coût de développement. Les produits matériels suivants sont particulièrement utiles pour les cas d'utilisation de Deep Learning :

Les FPGA et SoC Intel Agilex® 5 sont des FPGA de milieu de gamme qui intègrent le premier bloc DSP amélioré du secteur avec AI Tensor, qui offre des fonctionnalités d'IA et de traitement du signal numérique (DSP) à haute efficacité. Cette famille de produits offre, en moyenne, des performances de structure supérieures de 50 % et une consommation énergétique totale inférieure de 42 % par rapport aux Intel® FPGA de la génération précédente.3

Portefeuille Intel pour l'IA

Avec l'adoption croissante de l'IA, la gamme d'applications et d'environnements dans lesquels elle s'exécute, des terminaux aux serveurs à l'Edge en passant par les centres de données, va devenir incroyablement diversifiée. Aucune architecture, puce ou format unique ne pourra répondre aux exigences de toutes les applications d'IA. Les architectes d'infrastructure doivent avoir accès à l'architecture de leur choix.

Intel propose quatre types de puces permettant la prolifération de l'IA : les FPGA, les GPU et les ASIC pour l'accélération, et les CPU pour l'informatique générale. Chaque architecture répond à des besoins uniques, de sorte que les architectes d'infrastructure peuvent choisir l'architecture exacte dont ils ont besoin pour prendre en charge n'importe quelle application d'IA. Avec un large éventail de types de calcul optimisés pour la puissance et les performances, ils auront toujours les bons outils pour le travail à accomplir.