Acest tehnician a creat o unitate de procesare grafica de la zero in mai putin de doua saptamani

Estimated read time 3 min read


Construirea propriei plăci grafice este genul de sarcină la care majoritatea oamenilor nici măcar nu ar visa să încerce. Dar pentru un inginer plin de inițiativă cunoscut sub numele de „adammaj” pe X/Twitter, construirea unei GPU de la zero nu a fost doar o idee nebunească; a fost o provocare cucerită în doar două săptămâni, chiar și „fără experiență anterioară”.

Cum a reușit Adam Majmudar să fabrice un procesor grafic complet funcțional într-un timp atât de scurt? Conform firului său detaliat pe X, nu a fost deloc o joacă de copii – „mult mai dificil decât mă așteptam”, a declarat el.

Una dintre cele mai mari obstacole a fost pur și simplu încercarea de a înțelege funcționarea internă a arhitecturilor de GPU existente, care sunt în mare parte cutii negre proprietare. Dar puțină reverse-engineering a framework-urilor precum CUDA de la Nvidia a ajutat la oferirea de idei utile.

De acolo, Adam a trebuit să proiecteze propria arhitectură GPU minimalistă și eficientă, axată pe calculul paralel general și nu pe sarcini grafice. A creat un mic set de instrucțiuni personalizat pentru a scrie programe (denumite „kerneluri”) pentru GPU-ul său de executat folosind paradigma SIMD (Instrucțiune unică, date multiple) folosită de GPU-urile moderne.

Pentru a-și testa creația, Adam a codat kerneluri simple de matematică matricială pentru a rula pe proiectul său de GPU făcut acasă. Obținerea funcționării corecte a implementării Verilog cu toată logica de control a fost acolo unde au apărut adevăratele provocări, necesitând mai multe runde de revizuire și remedierea bug-urilor. Dar, în final, GPU-ul lui Adam a reușit să ruleze kernelurile și să producă rezultatele corecte ale operațiilor matrice.

„După tone de redesenări, în cele din urmă rularea kernelurilor mele de adunare și înmulțire a matricelor, vederea lucrurilor funcționând corect și GPU-ul meu afișând rezultatele corecte a fost o senzație incredibilă”, a scris el.

Adam a furnizat și o vizualizare 3D interesantă pentru a-și prezenta GPU-ul în acțiune. Pentru a fi clar, proiectul este încă în faza de proiectare a dispozitivului de cip, care a trecut prin software-ul OpenLane EDA pentru verificare, dovedind că totul este fizic realizabil.

Cu toate că GPU-ul lui Adam este evident un concept de probă redus la scară în comparație cu chip-urile imense de la AMD și Nvidia, realizarea este încă extrem de impresionantă. Construirea oricărui echipament semi-complex de la zero este o experiență de învățare incredibilă, cu atât mai mult reușirea unui lucru atât de sofisticat ca un procesor paralel.

Cu toate acestea, aceasta nu este prima oară când vedem GPU-uri DIY în acțiune. În aprilie, un dezvoltator a lansat un motor 3D remarcabil de neted pe care l-a demonstrat pe un mic GPU făcut în casă, alimentat de un microcontroler Espressif ESP32-S3. Nu demult înainte de asta, un dezvoltator de jocuri a proiectat ‘FuryGPU’, care putea reda Quake la un cadru solid de 60 FPS.

Adam a încărcat tot codul și documentația pentru mini-GPU-ul său pe GitHub, permițând altora să studieze, să ajusteze și să construiască pe baza muncii sale.

Similare