PDA

View Full Version : FuryGPU: un appassionato ha creato da zero una GPU open source. Funziona!


Redazione di Hardware Upg
29-03-2024, 07:11
Link alla notizia: https://www.hwupgrade.it/news/skvideo/furygpu-un-appassionato-ha-creato-da-zero-una-gpu-open-source-funziona_125719.html

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.

Click sul link per visualizzare la notizia.

Saturn
29-03-2024, 07:45
Grande ! É veramente un piacere leggere e commentare queste notizie !

Hai detto niente riuscire a tirar da solo su una gpu che riesce a muovere mostri sacri come il primo Quake ! :)

io78bis
29-03-2024, 08:23
Grande

Ottimo anche il fatto che abbia deciso in qualche modo di diffondere le conoscenze apprese e magari anche gli ostacoli che ha dovuto superare.

Opteranium
29-03-2024, 08:24
questo lo recluterei tempo zero se fossi un'azienda..!

Therinai
29-03-2024, 08:32
Mah, sono un po' perplesso, sto tizio si sta sbattendo tanto per fare qualche frame in più con quake quando basterebbe usare la mod del frame generator per triplicarli :rolleyes:

UtenteHD
29-03-2024, 08:53
Che impresa epica, e' ancora piu' incredibile che a quanto letto per l'hardware e' partito da zero ed ha imparato tutto strada facendo, il tempo impiegato di 4 anni sembra ancora piu' miracoloso.
Incredibile.

alien321
29-03-2024, 09:00
Grande rispetto, anche solo per imparare a programmare un chip FPGA ci vuole coraggio, specialmente partendo da 0 o quasi.

supertigrotto
29-03-2024, 09:24
Gli fpga da quel che dicono,sono ostici da programmare

Totix92
29-03-2024, 09:30
Veramente notevole, sviluppare da soli una GPU funzionante, questo tizio è un genio, fossi in AMD o Nvidia lo assumerei all'istante.

demon77
29-03-2024, 09:33
:mbe: :mbe:
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. :stordita:

cignox1
29-03-2024, 10:03
--Mah, sono un po' perplesso, sto tizio si sta sbattendo tanto per fare qualche frame in più con quake quando basterebbe usare la mod del frame generator per triplicarli

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.

Saturn
29-03-2024, 10:04
Mah, sono un po' perplesso, sto tizio si sta sbattendo tanto per fare qualche frame in più con quake quando basterebbe usare la mod del frame generator per triplicarli :rolleyes:

Meglio rileggere (bene e con attenzione) la notizia.

the_joe
29-03-2024, 10:55
Mah, sono un po' perplesso, sto tizio si sta sbattendo tanto per fare qualche frame in più con quake quando basterebbe usare la mod del frame generator per triplicarli :rolleyes:

Faceva prima a entrare in un negozio o a ordinare on line una scheda grafica già pronta.

Ma questo tizio si è costruito la sua personale scheda grafica con tanto di driver per windows in grado di fare girare un videogioco di metà anni '90 nel tempo libero e partendo da zero come conoscenze.

Direi che non merita un Nobel, ma perlomeno un'attenzione da parte delle aziende si.

corgiov
29-03-2024, 12:16
Grande ! É veramente un piacere leggere e commentare queste notizie !

Hai detto niente riuscire a tirar da solo su una gpu che riesce a muovere mostri sacri come il primo Quake ! :)
Il primo Quake non richiedeva una GPU nelle richieste tecniche (non esistevano neanche all'epoca). Anche se era previsto un Pentium da 75 MHz con 0,5 MB di RAM video, funzionava anche con un 486, a patto di avere a disposizione molta RAM (magari 32 MB).

Saturn
29-03-2024, 12:28
Il primo Quake non richiedeva una GPU nelle richieste tecniche (non esistevano neanche all'epoca). Anche se era previsto un Pentium da 75 MHz con 0,5 MB di RAM video, funzionava anche con un 486, a patto di avere a disposizione molta RAM (magari 32 MB).

Ricordo. L'ho "giocato" se così si può dire sia su un 486 DX2 66 Mhz (subito rinunciato) che su un Pentium 133 Mhz (già più accettabile) - entrambi senza accelerazione hardware video.

Poi l'ho provato con una Matrox M3D e ancora, dopo, con una 3Dfx Voodoo....

Un altro mondo. Non la richiedeva, vero, ma anche con tutta la ram e i mhz del mondo di allora, senza scheda video dedicata, per quello che mi riguarda, non lo si godeva a pieno !

lumeruz
29-03-2024, 12:48
Gli fpga da quel che dicono,sono ostici da programmare
Già!!!
Sono piu di 20 anni che sviluppo. So usare e sviluppare codice per i pic della microchip, gli avr della atmel, stm32 della ST, msp430 della Texas Instrument ed altri che neanche ricordo, conosco vari linguaggi C, java, vari assembler di vari processori, cobol, un po' di C++, python, perl ed altri linguaggi che ho anche dimenticato, ora sto studiando rust, ma il Verilog ed il VHDL degli FPGA, non c'è niente da fare non riesco ad impararli e mi fanno passare la voglia di impegnarmi, eppure mi piacerebbe tanto.
Una volta ho messo mano al codice verilog del proxmark3, anche se ho avuto successo non è che ho capito come ho fatto a farlo funzionare.

lumeruz
29-03-2024, 12:52
Veramente notevole, sviluppare da soli una GPU funzionante, questo tizio è un genio, fossi in AMD o Nvidia lo assumerei all'istante.

Mah, perchè secondo te tutte le persone che hanno creato le attuali schede grafiche sono incapaci?
È stato sicuramente un grande, ma per chi non ci capisce niente, se lo si vede dall'ottica di chi ha fatto meglio, è giusto un hello world

voodooFX
29-03-2024, 13:44
Progetto davvero interessante, non lo conoscevo.
Non sono andato ancora a leggere nulla, ma dal video mi sembra di capire che questo per adesso sia un "2D video adapter" (non certo una GPU, non ancora almeno), un po come le prime schede video degli anni 90.
Detto ciò, so che anche le schede 2D usate per riprodurre contenti 3D renderizzati in software dalla CPU (come Quake) hanno alcune funzioni atte ad "accelerare" la scena.
Quake (DOS, software) va meglio se si usa una Matrox G400 piuttosto che una S3 Trio, ad esempio.

Immagino che lui si sia al momento concentrando ad ottimizzare queste funzioni 2D, comunque tanto di cappello, ovviamente.

demon77
29-03-2024, 13:51
Ricordo. L'ho "giocato" se così si può dire sia su un 486 DX2 66 Mhz (subito rinunciato) che su un Pentium 133 Mhz (già più accettabile) - entrambi senza accelerazione hardware video.

Poi l'ho provato con una Matrox M3D e ancora, dopo, con una 3Dfx Voodoo....

Un altro mondo. Non la richiedeva, vero, ma anche con tutta la ram e i mhz del mondo di allora, senza scheda video dedicata, per quello che mi riguarda, non lo si godeva a pieno !

A chi lo dici.. me lo ricordo bene quando in quegli anni decisi di levarmi lo sfizio ed aggiornare il pentium 133 con una bella vodoo2.
Prima giocavo solo in software rendering a 640x480 e tutti i limiti del caso.. con la vodoo2 ero passato ad 800x600 super fluido con effetti di luce, nebbia e tutto il resto.. era un altro mondo!!

Gnubbolo
29-03-2024, 15:22
il 60080 su fpga, upgrade del 68060. superscalare. fa girare Quake vanilla benone in software mode su Amiga in 240p.

il progetto commerciale lo trovate facilmente in rete, è una meraviglia per chi lo ha seguito dall'inizio, un ragazzo è partito da zero ed ha fondato una piccola azienda famigliare. grandissimo !

allo stesso tempo ci sono progetti inversi, cioè prendere una cosa moderna e ridurla all'osso per farla girare su cose antiquate, il progetto di portare doom su amiga 500 spero spinga altri a seguire.

Peppe1970
29-03-2024, 15:28
Link alla notizia: https://www.hwupgrade.it/news/skvideo/furygpu-un-appassionato-ha-creato-da-zero-una-gpu-open-source-funziona_125719.html

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.


Che dire... Bravo ma da TSO ! :p

Ratberg
30-03-2024, 09:08
...ma il Verilog ed il VHDL degli FPGA, non c'è niente da fare non riesco ad impararli e mi fanno passare la voglia di impegnarmi, eppure mi piacerebbe tanto.
Una volta ho messo mano al codice verilog del proxmark3, anche se ho avuto successo non è che ho capito come ho fatto a farlo funzionare.

Per capire bene come usare quei linguaggi non si può prescindere da uno studio classico delle reti logiche. Verilog oltretutto non è nato come uno strumento di sintesi (leggi programmazione delle FPGA o CPLD o simili) ma è nato come linguaggio di specifica e di simulazione. Chi usava Verilog nei primi anni della sua comparsa testava il disegno e poi lo "sintetizzava" a mano. Verilog ha una mappatura abbastanza diretta (per chi riesce a vederla) con l'hardware. Poi, all'epoca, magari ci si faceva minimizzare la logica combinatoria con strumenti come "espresso" in cui ha messo pesantemente le zampe anche Alberto Sangiovanni Vincentelli, fondatore di Cadence e allievo del Politecnico di Milano.

Poi hanno cominciato a vedersi i sintetizzatori (ricordo di avere usato Synplicity nel 1992 con FPGA antifuse di QuickLogic). Non tutto il verilog era sintetizzabile, e non lo è tutt'ora. Generare le bitstream per programmare FPGA e affini richiede la conoscenza della struttura del target, altrimenti si rischia di voler "cavare il sangue dalle rape". Ad esempio, una State Machine costruita su una CPLD o con logica discreta, a parità di funzionamento, avrà una struttura ben diversa da come è implementata in una FPGA. Nel primo caso la codifica degli stati probabilmente seguirà uno schema classico (con numerazione binaria) mentre in una FPGA, per motivi di occupazione di spazio, ma soprattutto per questioni di prestazioni, sarà codificata "one hot per state", cioè con una codifica 1 to N; vale a dire che un flip-flop ad 1 rappresenta lo stato attivo e gli altri stanno tutti a zero.

Detto ciò, l'utilizzo di Verilog o VHDL (essenzialmente equivalenti, scegline uno, ma io ti consiglio Verilog che è meno prolisso, meno Mil-Std, più Industry-Friendly), necessita di una buona conoscenza della teoria delle reti logiche e delle strutture dei sistemi digitali in generale.

Ci sono dei testi classici che è un piacere leggere. In Italia è stato scritto un capolavoro sulle Teoria delle Reti Logiche edito da Bollati Boringhieri che s'intitola "Reti Logiche e Calcolatori" di Fabrizio Luccio e Linda Pagli che sono due professori dell'Università d Pisa. Testo meraviglioso... molto sintetico. Non c'è una frase di troppo. Bello. ISBN: 9788833954875.

Poi ci sono i classici che in era pre-internet andavo ad accattarmi alla libreria sotto CLUP sotto il Polimi: tutte le volte che capitavo a Milano co facevo un giro. E sono i testi di Wakerly e quelli di M. Morris Mano. Molto più pratici del testo italiano ma anche più poveri. Ora immagino siano stati ampiamente aggiornati. Io possiedo edizioni antiche che non menzionano nulla circa gli HDL moderni.

Anche dei buoni appunti universitari di qualcuno che li ha messi giù bene possono essere molto preziosi.

Ecco, se si vuole imparare bene un linguaggio HDL prima si deve passare per la teoria delle reti logiche, perché per descrivere processi complessi serve trattare sia l'RTL che tecniche come la microprogrammazione e quant'altro.

Dopo uno può anche passare a vedere SystemVerilog (che copre il Verilog ultimo e aggiunge la verifica formale) e SystemC, che è un approccio di programmazione con C++ che può produrre strutture sintetizzabili.

ZeroSievert
30-03-2024, 14:48
Già!!!
Sono piu di 20 anni che sviluppo. So usare e sviluppare codice per i pic della microchip, gli avr della atmel, stm32 della ST, msp430 della Texas Instrument ed altri che neanche ricordo, conosco vari linguaggi C, java, vari assembler di vari processori, cobol, un po' di C++, python, perl ed altri linguaggi che ho anche dimenticato, ora sto studiando rust, ma il Verilog ed il VHDL degli FPGA, non c'è niente da fare non riesco ad impararli e mi fanno passare la voglia di impegnarmi, eppure mi piacerebbe tanto.
Una volta ho messo mano al codice verilog del proxmark3, anche se ho avuto successo non è che ho capito come ho fatto a farlo funzionare.

IMHO e' questione di abitudine. Se si e' nell'ottica che si sta sviluppando un componente elettronico invece di un programma eseguito su un processore, il linguaggio risulta molto piú naturale. Parlo di VHDL, ma penso che Verilog sia uguale.

Anzi.. a dirla tutta a volte il problema che ho riscontrato e' che VHDL-93 e' troppo semplice in quanto deficitario dal punto di vista della metaprogrammazione.

La parte 'difficile' e' tutto il resto. Ovvero: conoscenza e uso delle primitive disponibili, verifica, capacità di capire quale sia il miglior compromesso tra velocità e occupazione e conoscenza dei protocolli e dei tool.

Se comunque sei interessato a giocare con gli FPGA ti consiglio di vedere

https://github.com/SpinalHDL/SpinalHDL

E' un linguaggio HDL basato su Scala a cui ho contribuito. Genera VHDL o Verilog indipendentemente dal componente scritto.

Lo raccomando a chi inizia.
- Permette di iniziare a programmare HDL senza un tool di un vendor specifico.
- Simulatori come GHDL, verilator e icarus sono integrati direttamente nel linguaggio.
- Fornisce astrazioni molto comode per le state machines, per I bus/segnali e per i tipi strutturati.
- Fornisce out-of-the box una libreria di componenti usabiliti su qualsiasi IC.

L'unico neo e' che la compilazione e' lenta.