FuryGPU: un appassionato ha creato da zero una GPU open source. Funziona!
Dopo quattro anni di sviluppo, un appassionato ha completato un suo particolare progetto: creare una GPU da zero. FuryGPU, basata su un FPGA Xilinx, funziona e può gestire giochi degli anni '90 come Quake con un buon frame rate.
di Manolo De Agostini pubblicata il 29 Marzo 2024, alle 08:11 nel canale Schede VideoQuattro anni fa Dylan Barrie, uno sviluppatore di videogiochi e appassionato di hardware, decise di imbarcarsi in un'impresa epica: creare da zero una GPU funzionante nel tempo libero.
Un impegno che, lo stesso Barrie, ha definito "infernale", ma che dopo quattro anni ha portato a termine dando finalmente "dando alla luce" FuryGPU. Dietro a quella che sembra una scheda video degli anni '90 c'è un progetto basato su un FPGA Xilinx Zynq UltraScale+, posto su un un PCB personalizzato con interfaccia PCIe.
Se il look ci ricorda schede video come le GeForce 4 o la Radeon 8500, anche le capacità hardware di FuryGPU strizzano l'occhio ai tempi che furono: la scheda video supporta funzionalità hardware equivalenti a una scheda grafica "high-end" della metà degli anni '90, con uno stack completo di software e driver per le moderne versioni di Windows.
La GPU può eseguire il rendering dei giochi di quell'epoca con frame rate giocabili in tempo reale. Per esempio, FuryGPU riproduce Quake - sì, quello del 1996 - con un frame rate solido a 720p che migliora ottimizzazione dopo ottimizzazione, dai 44 fps registrati nella Timedemo ai 60 fps stabili ottenuti in seguito.
L'appassionato, pronto a pubblicare schemi, software e driver tramite licenza open source, ha deciso di costruire un chip grafico da zero perché non conosceva i "dettagli effettivi" di come funzionano le GPU. Avendo estrema familiarità con il processo di rendering 3D lato software, Barrie ha maturato la convinzione che progettare una GPU poteva essere un progetto personale realizzabile, anche se complesso.
Ha trascorso "innumerevoli ore" a imparare come funzionano gli FPGA e come approntare progetti di chip tramite descrizione hardware, la verifica e il linguaggio di implementazione SystemVerilog. E se progettare la scheda è stato uno "sforzo erculeo", scrivere i driver per Windows è stato un compito ancora più "doloroso".
Lo sviluppatore ha scritto una API grafica personalizzata per comunicare con la GPU e ha creato driver per il kernel Windows in modo da gestire i segnali video e audio.
Barrie ha intenzione di diffondere maggiori dettagli sul processo di creazione della GPU sul suo blog, dove ha iniziato a parlare delle Texture Unit. Inoltre, punta a ottimizzare la sua versione personalizzata di Quake per farla girare ancora più velocemente su FuryGPU.
Meno chiara l'identità di Dylan Barrie, anche se su LinkedIn c'è un Lead Graphics Programmer di Respawn Entertainment (Star Wars Jedi: Survivor, ecc.) che sembra corrispondere perfettamente al profilo dell'appassionato.
22 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoHai detto niente riuscire a tirar da solo su una gpu che riesce a muovere mostri sacri come il primo Quake !
Ottimo anche il fatto che abbia deciso in qualche modo di diffondere le conoscenze apprese e magari anche gli ostacoli che ha dovuto superare.
Incredibile.
questo ha fatto un lavoro mostruoso. Ma mostruoso veramente.
..nel "TEMPO LIBERO".. me cojoni.
Come dire che di lavoro faccio il carpentiere in falegnameria ma nel tempo libero sto scavando il monte bianco a mani nude per fare una galleria a 4 corsie di marcia.
Sei serio? Non credo...
Complimenti al tizio in questione. Lavoro immenso, spero gli frutti qualcosa, ad esempio un lavoro ben pagato che gli piaccia fare.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".