Hobby-Entwickler erstellt eigene Grafikkarte mit FPGA und erreicht 60fps in Quake

Rock Lee

Commander
Registriert
Apr. 2011
Beiträge
3.001
Inspiriert durch die Entwicklung eines selbst gebauten 8-Bit Computer durch den Bastler Ben Eater, hat nach 4 Jahren Entwicklungszeit ein völlig eigenständiger Grafikprozessor namens "FuryGPU" das Licht der Welt erblickt. Das Ein-Personen-Projekt wird von Dylan Barrie, beruflich Softwareingenieur, während seiner Freizeit geführt.

Dylan Barrie startete das Projekt mit einem Arty Z7 Entwicklerboard und FPGA, wechselte jedoch später auf ein ZYNQ Ultrascale+ MPSoC (MultiProcessor System on a Chip), welches neben der programmierbaren Logik auch 64-bit ARM-Prozessoren enthält.
1615828221284[1].png

Mittels einer Hardware Description Language (HDL) wird der Logik vorgegeben, wie die eigenen Teileinheiten zu nutzen sind, so dass diese im Falle der FuryGPU speziell auf die Verarbeitung von Grafikaufgaben programmiert wurden, wie die grundsätzliche Ausgabe eines Bildes bis hin zu verschiedenen Renderingtasks. Diese Arbeit allein hat innerhalb der Projektlaufzeit 3 Jahre gedauert, da er nicht auf geschütztes geistiges Eigentum von Unternehmen wie Nvidia und AMD zurückgreifen konnte, sondern komplett von Null beginnen musste.

Mit dem programmierten FPGA war Barrie jedoch noch lange nicht fertig. Um die Zusammenarbeit mit einem halbwegs modernen PC zu gewährleisten, designte Barrie innerhalb eines Monats ein PCB, welches später zur Fertigung in China in Auftrag gegeben wurde. Die über 400 einzelnen Komponenten musste Berrie jedoch selbst auf das PCB löten.
Dabei enthält das PCB gängige Anschlüsse wie HDMI, Displayport sowie eine PCIe-x4-Schnittstelle.

Dennoch erinnert das Produkt am Ende optisch an eine Grafikkarte von vor 20 Jahren.
IMG_6012[1].jpg


Damit die Karte auch auf einem Betriebssystem lauffähig ist, benötigt es Treiber, die Barrie logischerweise ebenfalls selbst programmieren musste. Nach 4 Monaten ist dabei eine Custom-API herausgekommen, welche der Vulkan-API ähnelt. Um eine Zusammenarbeit mit dem Spiel Quake1 zu gewährleisten, musste dessen Renderer ebenfalls noch auf die API angepasst werden. Am Ende resultiert dies in einem Spieleerlebnis welches - angesichts der Umstände - respektable 60fps in der Auflösung 720p in diesem Spiel zu Stande bringt.

Es existiert ebenfalls ein Youtubevideo einer lauffähigen Version, welches man sich weiter unten entsprechend ansehen kann.

Aktuell unterstützt die FuryGPU noch keine Shader-Funktionalitäten. Barrie stellt jedoch in Aussicht, dass diese in Zukunft noch kommen könnten - ebenso wie der Support für weitere Spiele. Descent III ist beispielsweise ein Spiel welches von Followern des Projekts häufig gefordert wurde.

Sammler und andere Interessenten muss Barrie jedoch leider enttäuschen. FuryGPU soll ein Hobbyprojekt bleiben und ein Verkauf der Karten ist daher nicht angedacht.

Quellen:
https://www.furygpu.com
Techquickie Youtube

PS: Ich verlinke mal @Jan und @MichaG , falls das Thema auch für die Website interessant ist.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Müritzer, Drakrochma, Plyedec und 6 andere
Großartig sowas.
Danke fürs Teilen. :)
Ergänzung ()

wurstratte schrieb:
WARUM macht man das?
Weil man es kann.
 
  • Gefällt mir
Reaktionen: alphatau, Drakrochma, Oudenstekelig und 4 andere
wurstratte schrieb:
ist ja schön und gut, aber WARUM macht man das? :-D
basteldrang und langeweile, oder weil man halt was machen will was noch niemand gemacht hat ;)
 
@AGB-Leser
ist nur eine persönliche Schätzung. Lt. Whitepaper benötigt der "Full-Power-Mode" des ZYNQ Ultrascale+ "ein paar Watt". Ein paar Verluste durch das PCB noch hinzugerechnet, dürfte man dennoch bei knapp Unter 10 Watt rauskommen.
 
Zuletzt bearbeitet:
Also unter zehn Watt für eine selbst gebaute Grafikkarte, dazu die selbstgeschriebenen Treiber, das finde ich eine beachtliche Leistung
 
  • Gefällt mir
Reaktionen: Drakrochma
Zurück
Oben