Il construit sa propre carte graphique et réussit à faire tourner Quake dessus

06 avril 2024 à 09h32
27
FuryGPU, une carte graphique unique en son genre © FuryGPU
FuryGPU, une carte graphique unique en son genre © FuryGPU

Il lui aura fallu 4 ans, mais le résultat est là : le développeur Dylan Barrie a construit, sur son temps libre, une impressionnante carte graphique capable de faire tourner Quake à 60 images par seconde.

Et si, par ces temps de crise, il était possible de créer son propre GPU chez soi ? C'est le pari fou que s'est lancé le concepteur de jeux vidéos Dylan Barrie. Travaillant dans l'industrie vidéoludique depuis 14 ans, ce passionné d'informatique a mis au point la carte graphique FuryGPU, non sans mal. Il a, après coup, décidé de partager le fruit de son labeur sur son blog.

FuryGPU, une carte graphique open source et faite maison

Composant indispensable d'une unité centrale, la carte graphique a pour mission de permettre que les images s'affichent sur nos écrans. On a tous entendu parler des marques incontournables du domaine, telles que NVIDIA ou Intel. Si le marché des GPU se porte bien, force est de constater que l'on ne sait pas toujours comment ces périphériques fonctionnent. C'est pourquoi un projet open source comme FuryGPU est si intéressant.

Construire une carte graphique à partir de rien est un véritable défi technique. Dylan Barrie en sait quelque chose, lui qui documente ses avancées sur YouTube depuis plus d'un an. Le développeur a, tout d'abord, créé son propre circuit imprimé et y a intégré des systèmes sur modules, un connecteur PCI-Express 4 ainsi que des ports HDMI et DisplayPort. Pour mener son projet à bien, il a aussi dû apprendre, entre autres, le langage SystemVerilog.

L'unité centrale, cœur de l'ordinateur © Pixabay / Pexels
L'unité centrale, cœur de l'ordinateur © Pixabay / Pexels

Un projet complexe, mais gratifiant

Dans son blog, Dylan Barrie indique que « concevoir le schéma et mettre au point cette carte graphique, même en ayant une grande partie du circuit FPGA intégrée dans le SOM, a été un effort herculéen ». Cependant, la création des pilotes Windows s'est avérée la partie la plus difficile du projet. Le développeur a dû, en effet, « concevoir une API graphique personnalisée pour communiquer avec le GPU et créer des pilotes noyau Windows pour l'affichage et l'audio ». Cependant, ses efforts ont été payants : FuryGPU est désormais capable de faire tourner de façon fluide le jeu Quake, comme on peut le voir dans une récente vidéo.

Bien sûr, ce n'est pas demain la veille que nous verrons FuryGPU sur le marché. Mais cela n'enlève rien à ce véritable exploit technique. Pour en savoir plus sur cette carte graphique hors norme, il suffit de lire le blog dédié au projet. Ce dernier a ouvert ses portes il y a moins d'un mois et ses entrées sont d'ores et déjà pleines d'enseignements utiles.

Quelles sont les meilleures cartes graphiques ? Comparatif 2024
A découvrir
Quelles sont les meilleures cartes graphiques ? Comparatif 2024
24 mars 2024 à 13:32
Comparatif

Source : XDA

Mia Ogouchi

Rédactrice web le jour, prodige d’Hyrule la nuit, j’aime surfer (sur le web), organiser des combats (Mac vs PC) et hurler (de rire devant des memes de chats joufflus). L’actualité du numérique n’a auc...

Lire d'autres articles

Rédactrice web le jour, prodige d’Hyrule la nuit, j’aime surfer (sur le web), organiser des combats (Mac vs PC) et hurler (de rire devant des memes de chats joufflus). L’actualité du numérique n’a aucun secret pour moi. Mon hobby favori ? Comme tous les habitants du village de Cocorico, pardi : briser des pots… pour trouver des rubis !

Lire d'autres articles
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.

S'inscrire

Commentaires (27)

bizbiz
Dubitatif… La carte graphique, je veux bien car pour la partie CMS on trouve du matos relativement accessible. Si le CI est multi layers, déjà c’est un peu plus compliqué mais alors pour le GPU et ses millions de transistors… mhhh… ?!? Pas de photos ?
CHP1
Allelhuia… Je pensais que c’était plus possible pour un amateur (éclairé) de faire une carte GPU. Admiration…<br /> Et que de questions sur ce projet…<br /> Programmer un circuit FPGA? OMG. rien que ce travail de dev. à dû lui coûter un bras (pas les Xilinx Kria SoMs mais les outils de reprogrammation et de tests).<br /> Si c’est open source et que des fans s’y attachent, sera t-il possible de faire évoluer ce projet?<br /> Comment sont géré les API DirectX, OpenGL et quelles versions?
Nehi
« Si le marché des GPU se porte bien, force est de constater que l’on ne sait pas toujours comment ces périphériques fonctionnent. »
juju251
Il n’a pas fabriqué un GPU «&nbsp;traditionnel&nbsp;», mais a utilisé un FPGA.<br /> D’ou d’ailleurs l’utilisation de System Verilog si pellet de «&nbsp;programmer&nbsp;» des FPGA.
bizbiz
Merci pour ces précisions .
Werehog
Il avait donc beaucoup, mais vraiment beaucoup de temps à perdre <br /> Surtout que n’importe quel CPU fait tourner Quake maintenant, avec son circuit graphique intégré même famélique.
Kriz4liD
Oui , mais , c’est là où est son exploit ! Il ne fait rien de tout ca , Il a fabriquer sa carte graphique !<br /> C’est son passe temps, y en a qui font des tables ou qui tricotent, on ne vient pas leur dire qu ikea fait 3 fois mieux ou que chez Auchan tu as des tricot a 3€ , on salue la ferveur et la passion de cette personne qui a investi beaucoup de temps libre pour sa passion !<br /> Des personnes qui fabriquent une carte graphique aussi « performante » ne courent pas les rues , ils sont tres peu nombreuses , lui c’est carrément un ovni.
MattS32
juju251:<br /> D’ou d’ailleurs l’utilisation de System Verilog si pellet de « programmer » des FPGA.<br /> Cela dit, un GPU traditionnel se fait aussi en VHDL ou équivalent de nos jours.<br /> La différence, c’est que dans un cas on «&nbsp;flashe&nbsp;» le FPGA pour qu’il «&nbsp;simule&nbsp;» le fonctionnement du circuit, dans l’autre cas on génère le schéma du circuit à partir du VHDL, et on passe ça à un fondeur pour le graver dans une puce (je simplifie hein, y a pas mal de travail d’optimisation entre la synthèse VHDL et ce qui est finalement gravé, ce travail se faisant généralement en collaboration entre les ingénieurs du concepteur de la puce et ceux du fondeur).<br /> Werehog:<br /> Il avait donc beaucoup, mais vraiment beaucoup de temps à perdre<br /> Pas plus que ceux qui passent du temps à regarder des films, jouer à des jeux, etc… C’est simplement un loisir différent.<br /> Et c’est même quelque chose qui peut lui être bénéfique dans son travail. Je suis peut-être un peu vieux jeu, mais je trouve justement dommage que beaucoup de développeurs aujourd’hui soient aussi loin du matériel, certains n’ont vraiment quasiment plus aucune notion de comment ça fonctionne à bas niveau, alors qu’avoir une connaissance de ça, au moins dans les grandes lignes, c’est une grande aide pour développer des logiciels efficaces…<br /> Quand j’étais à l’école, on avait implémenté un CPU compatible 68000 sur des Xilinx Spartan, c’était super enrichissant comme projet, même pour moi qui n’avait absolument pas l’intention de faire carrière dans le hard (). Et puis c’est émouvant le moment où pour la première fois ton afficheur affiche le résultat que tu attends, c’est un peu comme les premiers pas d’un bébé
frigolu
Si apprendre et comprendre sont une perte de temps, cela fait 50 ans que je perds le mien.<br /> Ça ne vous dérange pas d’utiliser au quotidien des objets que vous ne comprenez pas, dont vous n’avez aucune idée d’où, comment, par qui ils sont fabriqués et comment ils fonctionnent ? Moi si, depuis enfant. Lorsqu’on m’offrait le dernier jouet à la mode, la seule chose qui m’intéressait, c’était de le démonter sur le champ pour en comprendre le fonctionnement, le modifier, ou en créer une amélioration. Cette logique ne m’a jamais quitté, même si j’ai trouvé d’autres moyens avec le temps pour apprendre et comprendre sans forcément tout démonter.
Neferith
Sacrement impressionnant. On s’en fout que ce soit utile, ce qui est intéressant c’est que le mec est passionné.
Neferith
«&nbsp;Je suis peut-être un peu vieux jeu, mais je trouve justement dommage que beaucoup de développeurs aujourd’hui soient aussi loin du matériel, certains n’ont vraiment quasiment plus aucune notion de comment ça fonctionne à bas niveau, alors qu’avoir une connaissance de ça, au moins dans les grandes lignes, c’est une grande aide pour développer des logiciels efficaces…&nbsp;» =&gt; Là dessus je peux qu’approuver. Cela dit, on peut le voir aussi différemment : Aujourd’hui, il y a de plus en plus de couche d’abstraction qui rendent le dev accessible à plus de monde. Forcement ce genre de profil ne sera pas facilement ouvert au «&nbsp;bas niveau&nbsp;» qui demande quand meme pas mal d’investissement
bizbiz
image486×740 59.6 KB<br />
CHP1
Idem et j’approuve.<br /> Lorsque j’ai abordé la fac (MDR… BAC H), à mon époque, il y avait aucune différence entre les cours d’électronique digitale et la programmation… tout se faisait en hexa et au mieux en fortran ou pascal compilés. Y compris les devs de jeux (écrits en hexa Z-80 et 8086). On était obligés de comprendre le bas niveau et les travaux sur les registres pour composer et on arrivait à faire des miracles avec pas grand chose.<br /> De nos jours, les dev se font en cross-compilé (orienté objet) et on ne prête même plus attention aux limites du hard et ça fait des bouses ou il faut tout en superlatif (CPU, RAM, HDD/SSD) pour jouer au moindre jeu, un simple éditeur de texte et que dire d’un OS.<br /> Heureusement il y a encore des amateurs passionnés pour démontrer qu’en optimisant la programmation hard/soft au niveau bas (assembleur), on peut largement améliorer les performances (facteur +100) tout en réduisant les tailles des exécutables. MenuetOS (expérimental) en est le plus représentatif : http://www.menuetos.net/
Martin_Penwald
C’est passionnant de voir à quel point certains méprisent le travail d’autrui.
juju251
Werehog:<br /> Il avait donc beaucoup, mais vraiment beaucoup de temps à perdre <br /> Alors.<br /> Déjà, est-ce un «&nbsp;problème&nbsp;» ?<br /> Je veux dire, quelqu’un qui peint, qui lit, qui regarde des séries / films / fait du sport, etc. perd-il du temps ?<br /> Et j’ai envie de te dire, non.<br /> Dans la mesure où le gars a augmenté son niveau en matière de conception de circuit imprimé, de développement de drivers Windows, a appris le langage SystemVerilog (pour en faire un truc méga concret), etc …<br /> Et puis très honnêtement, aimant le matériel et la technique, juste sur ce dernier point, je trouve cela fantastique.<br /> Werehog:<br /> Surtout que n’importe quel CPU fait tourner Quake maintenant, avec son circuit graphique intégré même famélique.<br /> Certes et évidemment, mais le but n’est pas de concurrencer les GeForce et autres Radeon.<br /> CHP1:<br /> Programmer un circuit FPGA? OMG. rien que ce travail de dev. à dû lui coûter un bras (pas les Xilinx Kria SoMs mais les outils de reprogrammation et de tests).<br /> De mémoire, il y a au moins Verilator et GHDL en logiciel libre.<br /> Après, je ne connais que de nom, je ne sais pas s’il est possible «&nbsp;tout&nbsp;» faire avec.
bizbiz
CHP1:<br /> On était obligés de comprendre le bas niveau et les travaux sur les registres pour composer et on arrivait à faire des miracles avec pas grand chose.<br /> … Et c’est à ce moment là que j’ai compris que je n’y entraverais jamais que dalle et que je n’étais clairement pas fait pour ça . Je n’en reste pas moins admiratif pour tous ces «&nbsp;pionniers&nbsp;» qui ont permis d’arriver là où nous en sommes.<br /> J’ai toujours en ma possession le témoin de mon échec :<br />
Martin_Penwald
juju251:<br /> De mémoire, il y a au moins Verilator et GHDL en logiciel libre.<br /> Après, je ne connais que de nom, je ne sais pas s’il est possible « tout » faire avec.<br /> [Mode papy Mougeot: ON]<br /> Moi, de mon temps, il n’y avait pas de chaîne de développement libre pour les FPGA Xilinx (j’ai un peu bidouillé des Spartan à l’époque). Il me semble que j’avais un truc pour compiler du Verilog, mais c’est vieux.<br /> [Mode papy Mougeot : OFF]<br /> juju251:<br /> Dans la mesure où le gars a augmenté son niveau en matière de conception de circuit imprimé, de développement de drivers Windows, a appris le langage SystemVerilog (pour en faire un truc méga concret), etc …<br /> Et puis très honnêtement, aimant le matériel et la technique, juste sur ce dernier point, je trouve cela fantastique.<br /> Et il faut se dire qu’aujourd’hui, dans l’industrie, ce ne sont pas les mêmes personnes qui développent les puces, le firmware et les pilotes. C’est un boulot monstre dans chaque domaine qui a ses propres spécialistes.<br /> Le travail accomplit ici est particulièrement remarquable.
ManuMike
Aussi les couches se sont empilées au dessus, dur de les maîtriser toutes ou alors ça demande bcp d’années d’expérience. Là il va du driver au hardware, il ne lui reste plus qu’a recoder quake et son moteur sur un cloud, un OS entre les deux, et il aura couvert à peu près toutes les couches!
tosqualler
C’est un fpga qui est monté…<br /> Le pcb reste ‹&nbsp;‹&nbsp;assez simple&nbsp;›&nbsp;› en soit
vonkar
il y en a qui perdent des heures dans le jeu video, dans les bars ou autres. mais je pense que fabriquer quelque chose de ces mains est une passion mais aussi une sacré réussite aussi !
iodir
Enorme boulot. Impressionnant…
bizbiz
Autant je ne cautionne pas la première partie de cette remarque, autant je suis entièrement d’accord avec la seconde.<br /> Le jeu vidéo n’engendre pas que des abrutis et les bars n’engendrent pas que des alcolos… + de 40 ans d’expérience dans les deux domaines .<br /> Après, et j’y revient souvent il est vrai, c’est peut-être un soucis générationnel ?! <br />
brice_wernet
Il y a tellement à voir en haut niveau… Et même en intermédiaire pour optimiser en comprenant l’organisation de la mémoire, que le temps nécessaire pour comprendre aussi le hard est énorme!<br /> Sans compter que le hard lui-même est menteur. On n’est plus à l’époque du 8086 et du 68000: les instructions assembleur ne reflètent pas exactement ni ce qui sera exécuté ni dans quel ordre, y compris sur arm(et même certains RISC)
brice_wernet
Techniquement, même les cpu de l’époque faisaient tourner quaker. La version origine est en rendu ‹&nbsp;soft&nbsp;› via le cpu uniquement (on parle donc de pentium 133 à l’époque).<br /> La version accélérée (glquake) n’était pas obligatoire…
Neferith
Totalement d’accord. Il est de toute manière utopiste de vouloir tout maitriser.<br /> Et surtout, sur des apps standards, c’est totalement contreproductif. Après bon, savoir comment ça se passe en arrière plan, meme sans tout maitriser, c’est quand meme un gros plus.
brice_wernet
Connaître comment ça fonctionne, c’est nécessaire quand on a un besoin de réduire un coût en infra important.<br /> Mais … il y a tellement de couches, qu’on peut trouver un bonne dizaine d’endroits où optimiser! Et souvent optimiser un endroit limite l’optimisation d’autres endroits… C’est notamment le cas quand on se penche sur les charges de travail et qu’on commence à les répartir: en les répartissant, on limite la vision à un morceaux de la charge de travail, donc les systèmes qui vont l’exécuter ne pourront pas trouver d’autres optimisations…<br /> Sans compter l’overhead pour les petites charges de travail que représentent souvent l’optimisation des grosses charges.<br /> Je parle de façon générale, mais ces principes se déclinent sur toute optimisation en parallèle, que ce soit la répartition des charges web sur les serveurs, la parallélisation en SQL, ou la répartition des shaders dans une CG.
Alexzeyos
ce n’est pas précisé dans le titre si il était en état d’ébriété .
Voir tous les messages sur le forum
Haut de page

Sur le même sujet