WTF ? ! De nombreuses personnes ont probablement entendu parler du FPGA grâce à ses applications d’émulation de matériel hérité. Une démonstration récente de FPGA, cependant, a réussi à exécuter un jeu simple utilisant le lancer de rayons – quelque chose généralement associé aux processeurs graphiques les plus avancés.
Une paire de nouveaux outils de flux de travail de deux développeurs a permis à une puce FPGA modeste d’obtenir des gains d’efficacité étonnants par rapport à un processeur x86 conventionnel. Les résultats pourraient ouvrir de nouvelles voies pour des opérations économes en énergie dans plusieurs industries.
La démonstration impliquait un jeu représentant un peu plus qu’une balle brillante rebondissant sur une surface en damier. Cependant, le jeu utilisait le lancer de rayons en temps réel, ce que personne ne s’attendrait à ce qu’une puce FPGA de taille moyenne gère. De plus, le processeur FPGA a exécuté le jeu en utilisant beaucoup moins d’énergie qu’un processeur d’ordinateur portable AMD beaucoup plus puissant.
Les développeurs Victor Suarez Rovere et Julian Kemmerer ont construit la démo pour un Article 7 100T en C, exprimant le code directement au circuit à l’aide de leurs outils – CflexHDL et PipelineC. Ensuite, ils ont compilé la même démo pour un Ryzen 9 4900H, s’exécutant entièrement sur le processeur sans utiliser ses graphiques intégrés. Les deux puces exécutaient le jeu à environ 60 images par seconde en 1080p, mais nécessitaient des profils de performances radicalement différents pour la tâche.
L’Artix – basé sur un processus de nœud de 28 nm – fonctionnait à 148 MHz avec environ 100 000 éléments logiques. Le Ryzen, en comparaison, est un processeur 8 cœurs 16 threads 7 nm. Les développeurs ont exécuté tous ces threads près de l’horloge boost maximale de 4,2 GHz du processeur. Rovere et Kemmerer estiment que l’Artix a environ un quinzième du nombre de transistors que le Ryzen.
Malgré le déficit, la partie FPGA a exécuté la démo en utilisant seulement 660 mW et “est restée à peine chaude” malgré une absence totale de refroidissement actif. La puce x86 consommait cependant 33W – 50 fois plus d’énergie – et atteignait 88C avec ses ventilateurs au maximum pour atteindre les mêmes performances.
Rovere et Kemmerer estiment qu’une puce FPGA de 7 nm aurait multiplié l’écart d’efficacité par un facteur de six, nécessitant 300 fois moins de puissance que le Ryzen. Pour être juste, faire fonctionner le Ryzen dans son environnement prévu avec des graphiques intégrés ou un GPU dédié aurait probablement été plus efficace, mais n’aurait pas comblé l’écart avec l’Artix, et encore moins une partie FPGA plus avancée.
Les développeurs pensent que leur démonstration pourrait avoir des applications bien au-delà du développement de jeux. Les exigences minimes en matière de TDP de méthodes telles que CflexHDL et PipelineC pourraient avoir des avantages dans des domaines tels que l’aérospatiale, le contrôle industriel ou la mise en réseau. Les casques de réalité virtuelle et de réalité augmentée pourraient devenir plus petits avec une autonomie de batterie plus longue et moins de latence. Pour des raisons de sécurité, la latence fixe et le manque d’instructions stockées peuvent considérablement réduire la surface d’attaque d’un système.
À l’avenir, Rovere et Kemmerer prévoient de transférer leur travail vers RISC-V et ASIC tout en le rendant open-source. En plus de la vidéo ci-dessus, un papier blanc sur GitHub explique la démonstration en profondeur.