Différence entre GPU et FPGA

Les progrès rapides de la technologie VLSI au cours des dernières décennies ont permis la fabrication de milliards de transistors sur une seule puce. Cette avancée technologique a conduit à la conception et au développement de matériel beaucoup plus rapide et économe en énergie. L’augmentation rapide de la fréquence d’horloge et de la largeur de bande de la mémoire a permis d’améliorer les performances. Mais l’amélioration des performances des processeurs à usage général à un seul cœur a diminué en raison de la baisse du taux d’augmentation des fréquences de fonctionnement. Les deux principales raisons en sont l’écart croissant entre la vitesse du processeur et celle de la mémoire, et les limites de l’alimentation électrique. Pour résoudre ces problèmes, l’industrie des microprocesseurs s’est tournée vers les processeurs multicœurs. Outre les processeurs multicœurs, d’autres solutions viables sont apparues pour surmonter ces goulets d’étranglement, notamment les circuits intégrés personnalisés et les FPGA reprogrammables, ainsi que les GPU. Alors, que préférez-vous pour vos besoins de calcul : les GPU ou les FPGA ?

Qu’est-ce qu’un GPU ?

L’unité de traitement graphique (GPU), plus communément appelée carte graphique ou carte vidéo, est un processeur graphique qui traite les informations graphiques pour les afficher à l’écran. Le GPU est un processeur spécialisé initialement conçu pour répondre au besoin d’accélération du rendu graphique, principalement pour augmenter les performances graphiques des jeux sur un ordinateur. En fait, la plupart des GPU grand public sont dédiés à l’obtention de performances graphiques et visuelles supérieures pour permettre des jeux plus vrais que nature. Mais les GPU d’aujourd’hui sont bien plus que les ordinateurs personnels dans lesquels ils sont apparus pour la première fois.

Avant l’avènement des GPU, l’informatique générale, telle que nous la connaissons, n’était possible qu’avec les CPU, qui ont été les premières unités de traitement grand public fabriquées à la fois pour des usages grand public et pour l’informatique avancée. Le calcul par le GPU a évolué de manière spectaculaire au cours des dernières décennies et a été largement utilisé dans la recherche sur l’apprentissage automatique, l’IA et l’apprentissage profond. Le GPU est passé à la vitesse supérieure avec l’introduction d’API GPU telles que Compute Unified Device Architecture (CUDA), qui a ouvert la voie au développement de bibliothèques pour les réseaux neuronaux profonds.

Qu’est-ce qu’un FPGA ?

Le Field Programmable Gate Array (FPGA) est une bête entièrement différente qui a porté les performances de calcul du GPU à un tout autre niveau, offrant des performances supérieures dans les applications de réseaux neuronaux profonds (DNN) tout en faisant preuve d’une consommation d’énergie améliorée. Les FPGA étaient initialement utilisés pour connecter des composants électroniques entre eux, tels que des contrôleurs de bus ou des processeurs, mais au fil du temps, leur champ d’application s’est radicalement transformé. Les FPGA sont des dispositifs semi-conducteurs qui peuvent être programmés électroniquement pour devenir n’importe quel type de circuit ou de système numérique. Les FPGA offrent une plus grande flexibilité et des capacités de prototypage rapide par rapport aux conceptions personnalisées. Altera Corporation, basée à San Jose, en Californie, est l’un des plus grands producteurs de FPGA et, en 2015, la société a été rachetée par Intel. Ils sont très différents du matériel basé sur les instructions, comme les GPU, et le plus intéressant est qu’ils peuvent être reconfigurés pour répondre aux exigences de charges de travail plus intensives en données, comme les applications d’apprentissage automatique.

Différence entre GPU et FPGA

Technologie

– Le GPU est un circuit électronique spécialisé, initialement conçu pour répondre au besoin d’accélération du rendu graphique pour l’informatique scientifique et technique générale. Les GPU sont conçus pour fonctionner en mode instruction unique et données multiples (SIMD). Les GPU déchargent certaines parties du code qui consomment beaucoup d’énergie en accélérant les performances des applications qui tournent sur le processeur. Les FPGA, quant à eux, sont des dispositifs semi-conducteurs qui peuvent être programmés électroniquement pour devenir n’importe quel type de circuit ou de système numérique.

Temps de latence

– Les FPGA offrent une latence plus faible que les GPU, ce qui signifie qu’ils sont optimisés pour traiter les applications dès que l’entrée est donnée avec un délai minimal. L’architecture du FPGA lui permet d’atteindre une puissance de calcul élevée sans processus de conception complexe, ce qui le rend idéal pour les applications à faible latence. Ils permettent d’atteindre une capacité de calcul nettement supérieure en moins de temps possible par rapport aux GPU, qui doivent relativement évoluer pour rester pertinents.

Efficacité énergétique

– L’efficacité énergétique est un indicateur de performance important depuis des années et les FPGA excellent dans ce domaine car ils sont connus pour leur efficacité énergétique. Ils peuvent prendre en charge des débits de données très élevés en ce qui concerne le traitement parallèle dans les circuits mis en œuvre dans le tissu reconfigurable. L’avantage des FPGA est qu’ils peuvent être reconfigurés, ce qui leur confère une flexibilité qui leur donne un avantage sur leurs homologues GPU pour certains domaines d’application. De nombreuses opérations de données largement utilisées peuvent être mises en œuvre efficacement sur les FPGA grâce à la programmabilité matérielle. Les GPU sont également économes en énergie, mais uniquement pour les flux SIMD.

Opérations en virgule flottante

– De nombreuses applications informatiques à haute performance, telles que l’apprentissage profond, dépendent fortement des opérations en virgule flottante. Bien que l’architecture flexible des FPGA démontre un superbe potentiel dans les réseaux épars, qui sont l’un des sujets les plus brûlants dans les applications de ML, ils souffrent d’atteindre des vitesses plus élevées pour les applications qui utilisent largement les opérations arithmétiques en virgule flottante. Les opérations en virgule flottante sont une spécialité des GPU. Le GPU le plus rapide a une performance en virgule flottante de 15 TFLOPS au maximum.

Résumé

En résumé, les GPU offrent un environnement de développement flexible et des délais d’exécution plus courts, mais les FPGA offrent une bien meilleure flexibilité et des capacités de prototypage rapide. Alors que les GPU sont les meilleurs pour les applications de calcul à haute performance qui dépendent des opérations arithmétiques en virgule flottante, les FPGA sont parfaits pour les applications gourmandes en énergie, et leur temps de latence est beaucoup plus déterministe parce que ce sont des processeurs spécialisés qui peuvent être reconfigurés électroniquement pour devenir n’importe quel type de circuit ou de système numérique. Dans certains domaines d’application, les FPGA sont très difficiles à battre, comme les applications militaires telles que les systèmes de guidage de missiles, qui nécessitent une faible latence.