Nella comunità di ingegneri e appassionati di hardware, Adam Majmudar è conosciuto per aver realizzato un progetto audace: la costruzione di una GPU (Graphics Processing Unit) partendo da zero, senza avere precedenti esperienze specifiche nel campo. Vi avevamo parlato di Majmudar un paio di settimane fa, quando l'ingegnere ha mostrato al mondo la sua CPU "fatta in casa" in sole due settimane, dichiarando poi di voler intraprendere un nuovo viaggio nel mondo dell'hardware digitale, affrontando questa volta una sfida ancor più complessa.
Tramite una serie di post su Twitter/X, Majmudar ha condiviso le tappe di questo percorso impegnativo, sottolineando come il design della GPU si sia rivelato un obiettivo più arduo del previsto. Il culmine di questo progetto è stata la creazione di un layout di chip utilizzando Verilog, un linguaggio di modellazione hardware, che poi è stato verificato mediante il software OpenLane EDA. L'intenzione è quella di portare il concept alla realizzazione fisica attraverso il processo denominato Tiny Tapeout 7, promettendo la trasformazione del design in un chip tangibile nei prossimi mesi.
Anche in assenza di infrastrutture e risorse comparabili a quelle dei giganti del settore, il lavoro di Majmudar riflette un notevole esempio di determinazione e ingegnosità. Il suo scopo primario è stato quello di esplorare le capacità delle GPU general-purpose per il parallel computing (GPGPU), una scelta che ha richiesto la riformulazione dell'Instruction Set Architecture (ISA), composta da soltanto 11 istruzioni. Questa configurazione mirata ha consentito di implementare due fondamentali operazioni matriciali - l'addizione e la moltiplicazione - dimostrando così le applicazioni pratiche del dispositivo in ambiti quali grafica e machine learning.
Nonostante le apparenti facilitazioni iniziali, Majmudar ha incontrato diverse sfide tecniche nella codifica in Verilog, compresa la gestione della memoria e dell'esecuzione parallela. In suo soccorso è intervenuto George Hotz, figura nota nell'ambito dell'informatica, fornendo consulenze preziose per superare ostacoli significativi riguardanti, ad esempio, l'implementazione di un warp scheduler e il perfezionamento dell'architettura computazionale.
Sigillando le varie fasi di progettazione con un video che mostra il funzionamento del kernel di addizione matriciale, Majmudar ha avuto la possibilità di godere di una prima soddisfazione pratica. Tuttavia, la verifica finale attraverso il software OpenLane, mirato alla produzione su nodo di processo Skywater 130nm, ha evidenziato ulteriori complicanze. Alcuni Design Rule Checks (DRC) hanno fallito, necessitando di una rielaborazione ulteriore prima della definitiva approvazione per la produzione.
Il risultato di due settimane di instancabile impegno si materializza non solo nel potenziale impatto tecnico che la piccola GPU potrà avere una volta costruita, ma anche nel contributo alla comunità e nell'ispirazione per altri appassionati e professionisti del settore. Sebbene il dispositivo di Majmudar non si posizionerà tra le migliori schede grafiche, il valore del suo lavoro risiede nell'avventura dell'apprendimento e nella passione per l'hardware.
Chi fosse interessato a saperne di più su quest'iniziativa pionieristica può consultare la discussione su Twitter/X oppure esplorare il progetto nella sua interezza sulla pagina GitHub dedicata al profetto Tiny-GPU.