把 Transformer 直接刻進晶片裡?!
gateGPT 這開源專案把 Karpathy 的 nanoGPT 用硬體語言重寫,讓它完全跑在 1 塊 Xilinx Virtex-5 FPGA 上,不靠 CPU 也不靠 GPU,實現每秒 5 到 6 萬的 Token 生成速度。
這顆模型刻意做得很小,只有單層 Transformer,全部都用整數精度,才塞得進有限的硬體資源。作者沒有把所有邏輯寫死成一坨巨大的電路,而是設計了一個像「指令表」的排程器,一步一步指揮各個運算單元輪流工作,大家共用同一塊記憶體當作草稿紙。
一開始的版本每秒只有 2,400 個 Token,作者一路調校到接近 7 萬,整整快了 28 倍,其中最有效的一招是 KV 快取,簡單說就是每生成一個字時,只算新增的部分,不用把前面整段重新算一遍,光這招就快了 3 倍多。
不過也不是一帆風順。在電腦模擬時一切正常,一上真實的板子卻直接當機。追查後發現,是合成工具偷偷把某些資料區塊清成 0,又把一個還在用的暫存器當成沒用的刪掉,這 2 個問題在模擬裡完全看不出來。代表當模擬跑得過時,不見得東西真的會動。