Velen prijzen de deugden van FPGA-technologie, en veel projecten hebben hun circuits als definitieve oplossingen omarmd, maar het is een vergissing om te denken dat ze als bij toverslag werken. Een van de beste voorbeelden is te vinden bij Dylan Barrie, een software-ingenieur met meer dan twee decennia ervaring in rendering. Zijn oorspronkelijke plan was om een paar maanden te besteden aan een technische demo, maar vier jaar werk veranderde het in een complete grafische kaart, met een PCI Express-interface, Windows-stuurprogramma's en een eigen API. De naam van dit beest is FuryGpu, en het kan al Quake draaien met meer dan 40 FPS...

FuryGpu: de titanische uitdaging van een DIY-grafische kaart
FuryGpu DIY-grafische kaart

Het idee van een DIY-grafische kaart is niet nieuw. Sommige lezers herinneren zich misschien "De slechtste grafische kaart ter wereld" en "De eenvoudigste ter wereld", een optimalisatie van George Foot. Maar als we aan een GPU denken, gaan onze gedachten uit naar een traditioneler ontwerp, dat relatief eenvoudig te installeren en te activeren is.

Het probleem is dat het gaan van een prototype op een breadboard naar een complete kaart een enorme inspanning vereist, zelfs met decennia aan ervaring. Zo komen we bij de blog van Dylan Barrie, die zich na zijn specialisatie als software-ingenieur op rendering, besloot om zich te wagen aan hardware. Barrie was van plan om slechts een paar maanden aan dit project te besteden, met als doel "een draaiende kubus" te creëren, en dan te stoppen... maar na bijna vier jaar is zijn resultaat FuryGpu.

FuryGpu: een DIY-grafische kaart die werkt op Windows en Quake draait

FuryGpu is een GPU-op-FPGA, gebaseerd op de Xilinx Zynq UltraScale+, met een frequentie van 400 MHz in de kern en 480 MHz in de textuureenheid. Het ondersteunt een volledige FP32 front-end, lineaire en bilineaire filters, en maakt gebruik van een PCI Express 2.0 x4-interface. Er zijn geen programmeerbare shaders, en in plaats van conventionele API's zoals Direct3D en Vulkan, creëerde Barrie zijn eigen oplossing: FuryGL.

Dat betekent dat alle games een port nodig hebben om correct te werken op de FuryGpu, iets dat moeilijk maar niet onmogelijk is. Barrie moest SystemVerilog leren en worstelen met KiCad, maar hij geeft toe dat het meest pijnlijke deel van het project het schrijven van videostuurprogramma's voor Windows was. Helaas deelde hij geen details, maar het verbaast ons niet dat het besturingssysteem van Microsoft een obstakel is (en laten we niet vergeten dat het schrijven van drivers in elk geval ingewikkeld is).

Barrie's intentie is om FuryGpu open source te maken, maar hij waarschuwt dat er geen tijdslimiet is. Het beste is om zijn blog en YouTube-kanaal in de gaten te houden voor meer updates.

Officiële website van FuryGpu: Klik hier

Dylan Barrie op YouTube: Klik hier