Инженер споделя пътя си към "създаването на графичен процесор от нулата без никакъв предишен опит". Както и при предишния си проект за проектиране на процесор от нулата, Адам Маджмудар е имал нужда само от две седмици, за да извърши този мозъчен подвиг.
В тема в Twitter/X Маджмудар ни запознава с процеса стъпка по стъпка и признава, че проектирането на графичен процесор е било много по-трудна задача от очакваното. За да сме наясно, настоящото заключение на проекта е макет на чип във Verilog, който накрая е преминал през софтуера OpenLane EDA, за да бъде проверен. Въпреки това графичният процесор ще бъде подаден за разпечатване чрез Tiny Tapeout 7, така че е предопределен да се превърне във физически чип през следващите месеци.
По-горе можете да видите потока от задачи, които мъжът е изпълнил, за да проектира своя графичен процесор. И все пак, тъй като става дума за проект "от нулата", са били необходими много проучвания и размисли още преди да бъде направена първата стъпка. Миналия път изтъкнахме опасенията на инженера, че графичните процесори ще бъдат сравнително трудна област на изследване поради доминирането на патентованите технологии, тъй като тази прогноза се сбъдна.
След няколко итерации на горната архитектура Маджмудар реши да се съсредоточи върху възможностите на паралелните изчисления с общо предназначение (GPGPU). Така той коригира своята архитектура на набора от инструкции (ISA), която включва само 11 инструкции, за да постигне тази цел. След това инженерът написал две матрични математически ядра, които да работят на неговия GPU. Тези ядра за събиране и умножение на матрици щяха да демонстрират ключовата функционалност на GPU и да предоставят доказателства за полезното му приложение в графични задачи и задачи за машинно обучение.
Досега инженерът е работил сравнително лесно, но изграждането на неговия графичен процесор на езика Verilog представлява "много проблеми". Съветите на известния хакер Джордж Хоц помогнаха на Маджмудар да преодолее едно от първите си препятствия по отношение на паметта и реализацията на warp-scheduler. Третото пренаписване на кода му обаче свърши работа, като поправи планирането на изпълнението на изчислителните ядра.
Още няколко неуточнени преработки по-късно и доказателството за пудинга - видеоклип, показващ работата и валидирането на ядрото за добавяне на матрици - беше споделено в темата в Х.
Накрая завършеният Verilog дизайн беше тестван през OpenLane EDA, насочен към 130nm технологичен възел Skywater (за Tiny Tapeout). Отново се наложи да бъдат изгладени някои проблеми. По-специално Маджмудар обяснява, че някои проверки на правилата за проектиране (DRC) са се провалили и са наложили преработване.
След двуседмичните усилия инженерът се наслади на резултата с готина 3D визуализация на своя дизайн на графичен процесор. Разбира се, работата няма да се нареди сред най-добрите графични карти, но ентусиазмът е похвален.
Снимка: Unsplash/Adam Majmudar