Doom sur un FPGA : spécialiser une puce pour un jeu, c'est possible ! |
————— 18 Mai 2020 à 12h05 —— 12875 vues
Doom sur un FPGA : spécialiser une puce pour un jeu, c'est possible ! |
————— 18 Mai 2020 à 12h05 —— 12875 vues
Si, pour effectuer les calculs de rastérisation et/ou de Ray Tracing nécessaires à l’affichage du contenu tridimensionnel d’un jeu, nous utilisons des cartes graphiques, il faut bien se rappeler que ces cartes n'existent non pas à cause des spécificités de ce que peut exécuter un GPU, mais ce qu’il exécute rapidement. En somme, du calcul graphique sur un CPU est possible de même que sur un autre type de puce : les FPGA, composés de multitudes d’éléments logiques simples que le programmateur doit agencer pour former un microcircuit réalisant, une fois sous tension, la suite de calculs recherchée.
Ici, il n’est évidemment pas question d’un AAA moderne, mais d’un très vieux jeu dont les sources ont, depuis, été libérées : Doom. Guidés par les indications d’un précédent internaute analysant la structure interne du code du rendu, un bidouilleur français du nom de Sebastien Lefebvre a adapté le titre phare sur... un FPGA (de marque Altera, désormais possédée par Intel, le modèle exact étant Cyclone V).
The DooM-chip! It will run E1M1 till the end of times (or till power runs out, whichever comes first).
–Sylvain Lefebvre (@sylefeb) May 8, 2020
Algorithm is burned into wires, LUTs and flip-flops on an #FPGA: no CPU, no opcodes, no instruction counter.
Running on Altera CycloneV + SDRAM. (1/n) pic.twitter.com/wd7j4JnfWn
Pour comprendre l’ampleur du travail, il faut revenir aux fondamentaux de nos ordinateurs modernes : le CPU exécute un programme instruction par instruction, ce qui lui confère sa versatilité. À l’inverse, le FPGA a une structure fixée par le programmeur avant sa mise en fonctionnement, et ne peut donc pas décoder d’instructions... La conversion est donc conceptuellement encore plus grande qu’une adaptation ARM, par exemple.
Si le jeu tourne de manière fluide, ce n’est qu’en 320x200 px, et seulement sur le premier niveau du jeu, sans ennemis et aux animations incomplètes : pas de quoi en faire un prototype jouable, la carte ne devant pas être aidée par sa puissance en calcul flottant (les fameux FP64/32/16) dérisoire. Certes, cependant le but recherché n’est ni la rentabilité ni la jouabilité, mais bien la connaissance, toujours plus en profondeur, de ces autres bousins faisant bel et bien partie du paysage informatique. N’espérez donc pas un FPGA intégré à votre PC de sitôt — à moins que vous ne soyez partisan du Mac Pro — en jeu, il sera strictement inutile !
Un poil avant ?Y a t-il une raison pour que Base Frequency Boost d'ASRock disparaisse ? | Un peu plus tard ...Mindfactory semaine 20, pas différent de celles d'avant ! |