Un GPU open source entièrement personnalisé est sorti furtif après quatre ans de développement. FuryGPU est le fruit de l'effort individuel du développeur de logiciels de jeux Dylan Barrie, qui affirme avoir mis sur pied ce projet matériel et logiciel extrêmement complexe pendant son temps libre. FuryGPU est basé sur une conception FPGA Xilinx, et le prototype de carte graphique PCIe est actuellement capable d'atteindre environ 44 ips dans la démo Quake Time. Le travail sur FuryGPU a été entrepris après que Barrie se soit inspiré du projet de Ben Eater de construire un ordinateur 8 bits programmable à partir de zéro.
Comme vous pouvez le voir sur les images de cet article, FuryGPU ressemble beaucoup à une carte graphique PC typique d'il y a environ 20 ans, modernisée en équipant des sorties DisplayPort et HDMI. Le projet va bien au-delà du matériel, Barrie admettant que l'aspect le plus pénible de la conception de cette carte graphique était la création des pilotes Windows.
Matériel, de la carte de création à la carte graphique
Barrie a commencé à réaliser son rêve de construire un GPU à partir de zéro après avoir acheté une carte de développement Arty Z7 contenant un FPGA et effectué quelques développements et tests préliminaires. Par la suite, le projet a été stimulé par les débuts des systèmes sur modules (SoM) Xilinx Kria, qui combinent « des FPGA Zynq UltraScale+ incroyablement bon marché avec une tonne d'unités DSP et une quantité (relativement) massive de LUT et de FF, et de un intérêt particulier, un cœur PCIe renforcé », s’est enthousiasmé Barrie.
Pour passer de cette carte de création à la conception de carte d'extension FuryGPU PCIe que nous voyons en 2024, Barrie a appris lui-même le langage de description et de vérification du matériel SystemVerilog et la suite logicielle KiCAD EDA/CAO électronique. Il dit qu'un effort herculéen a été nécessaire pour concevoir le schéma du FuryGPU avec le PCIe à 4 voies que nous voyons aujourd'hui, même avec les circuits FPGA intégrés au SoM. Il était maintenant temps de brancher le FuryGPU sur son banc de test, d'écrire les pilotes et de tester les jeux.
Pilotes Windows et Quake à 60 ips
La création des pilotes Windows pour FuryGPU est décrite par Barrie comme « l’aspect le plus pénible » de l’ensemble du projet – bien que son travail quotidien soit dans le côté logiciel du rendu graphique dans l’industrie du développement de jeux au cours des 14 dernières années.
Initialement, l'ambition du fabricant de FuryGPU était de créer une simple démo de cube tournant, pour montrer le fonctionnement du GPU. Cependant, au fur et à mesure que le projet se développait, jouer au jeu PC emblématique Quake à des fréquences d'images jouables a commencé à devenir le nouvel objectif.
Barrie explique qu'après avoir préparé les pilotes Windows, il a écrit une API graphique personnalisée pour communiquer avec le GPU, a écrit des pilotes du noyau Windows pour l'affichage et l'audio, et dispose désormais « d'un matériel graphique entièrement fonctionnel qui peut restituer Quake à un moment donné. solide 60 images par seconde.
Nous avons intégré la capture vidéo Quake Timedemo de Barrie, démontrant que le FuryGPU pouvait atteindre 44 ips dans ce benchmark à 720p il y a environ un mois. Le développeur affirme qu’il existe des opportunités claires pour que Quake « fonctionne beaucoup plus rapidement », car il a constaté des goulots d’étranglement évidents qu’il ciblera dans ses efforts d’optimisation.
Le FuryGPU est configuré pour être open source. “J'ai l'intention d'ouvrir l'ensemble de la pile (schéma/disposition du PCB, tous les pilotes HDL, Windows WDDM, pilotes d'exécution de l'API et Quake porté pour utiliser l'API) à un moment donné, mais il y a un certain nombre de problèmes juridiques, “, a écrit Barrie dans un article de Hacker News mercredi. Parce qu'il travaille dans un métier tangentiellement lié, il veut s'assurer qu'aucun de ces travaux ne rompra son contrat de travail ou sa licence, etc. Ce même fil de discussion comprend pas mal de détails supplémentaires sur le projet FuryGPU pour ceux particulièrement intéressés.
Sur le site FuryGPU, il y a un article dédié aux unités de texture du GPU, pour ceux qui souhaitent approfondir l'architecture.
Pour conclure notre couverture de ce nouveau projet intéressant (pour nous), il convient d'expliquer la portée prévue du projet FuryGPU. Il est clair qu'il s'agit d'un projet de création, comme le processeur de la planche à pain, mais le FuryGPU offre des performances si impressionnantes que certains pourraient le prendre pour une nouvelle architecture GPU sérieuse. Barrie indique clairement que ce n'est pas le cas dans le fil de discussion Hacker News mentionné ci-dessus (écrit sous le nom de plume de PfhorSlayer). “C'est un jouet”, a affirmé le fabricant du FuryGPU. “Cela ne va pas changer le paysage des GPU ni concurrencer les acteurs commerciaux.”
Même si le FuryGPU (ou sa progéniture) ne figurera peut-être jamais dans notre classement des meilleures cartes graphiques, nous suivrons les développements du FuryGPU avec beaucoup d'intérêt. Maintenant que le projet a été rendu public, il est possible que la publicité et les collaborateurs experts puissent accélérer les plans déjà en place.