自己設計自己的晶片:openTPU 讓 AI Agent 打造的 FPGA 加速器跑起 Qwen3
一位 GitHub 開發者聲稱,AI agents 設計了整套推論加速器——從 RTL、指令集到編譯器——如今它在一張約 200 美元的 Kintex-7 FPGA 卡上,位元級精確地跑著十個開源模型。
九月底,一位代號 FeSens 的 GitHub 使用者推送了一個儲存庫,標語讀起來像個謎題:「一個開源 AI 加速器,由 AI 開發。」 到了 10 月 6 日至 7 日,這個名為 openTPU 的專案衝上了 Hacker News 與各大 AI 媒體,謎底也揭曉了:一整套推論加速器堆疊——從 SystemVerilog RTL、自訂指令集、核心語言與編譯器、位元級精確模擬器、效能分析器,一直到驅動真實 PCIe FPGA 卡的主機端工具。作者表示,這一切都在 AI agents 的大量協助下完成。而且這張卡真的能跑:它以真實權重執行十個開源語言模型,產生的 token 與模擬器逐位元一致。
儲存庫裡到底有什麼
openTPU 是一個完整的 monorepo,而這正是它的重點。整個堆疊由下而上,就像一本每一層都有可執行程式碼的計算機結構教科書:
- 硬體(SystemVerilog RTL):目標是 Inspur YPCB-00338 PCIe 卡上的 Xilinx Kintex-7 xc7k480t FPGA,配備雙通道 4 GiB DDR3-1066 記憶體,頻寬峰值 17.1 GB/s。量產映像檔跑在 133.33 MHz。
- 自訂 ISA:每道指令 8×32 位元;搭配 Python 撰寫的 ISA 模擬器,測試套件會將它與 RTL 逐位元比對。
- 核心語言(ol)與編譯器:支援佈局、仿射迴圈定址與融合——你用
@ol.jit裝飾的 Python 核心來寫 MLP、注意力機制與完整模型層。 - 效能分析器 Lens:可從 RTL、模擬器或實體卡錄製一次執行,在瀏覽器中重播,附帶 roofline、時間軸與逐指令報表。
- 主機端工具:
otpu-chat與模型對話、otpu-smi顯示溫度、功耗、DRAM 頻寬與各單元使用率,另有自我測試與診斷。
這部機器刻意做得簡單且完全透明。序列器每週期發出一道指令給少數幾個單元:DMA 搬資料、四欄脈動陣列矩陣單元乘以從 DRAM 串流而來的 int8 權重、向量單元做 fp32 運算、量化器把結果四捨五入回 int8。「沒有快取、沒有隱藏排程:每一次資料搬移都是一道指令,所以一份 trace 就能告訴你每個週期花在哪裡。」
實測數字
結果表格讓這個專案不再是思想實驗。在實體卡上(9 月底至 10 月 1 日量測):
| 模型 | 權重格式 | 解碼速度 | DRAM 使用率 |
|---|---|---|---|
| LFM2.5-230M | int8 | 59.0 tok/s | 峰值的 85% |
| LFM2.5-230M | 4-bit + int8 head | 85.8 tok/s | 82% |
| Qwen3-0.6B | int8 | 21.6 tok/s | 84% |
| Qwen3.5-0.8B | 4-bit | 24.5 tok/s | 83% |
| SmolLM3-3B | 4-bit | 8.74 tok/s | 92% |
| Qwen3.5-4B | 4-bit | 5.88 tok/s | 92% |
解碼時 DRAM 頻寬用到峰值的 82–94%——這是記憶體受限設計的典型特徵,也正是小批次推論引擎該有的樣子。230M 模型的預填充(prefill)可達 295.6 tok/s。4-bit 路徑採用雙層區塊縮放的 FP4 值(每權重 4.25 位元)並保留 int8 的 LM head,將每 token 位元組數砍掉約三分之一,解碼速度提升 40–45%。
兩個超過卡上記憶體的混合專家(MoE)模型則從主機端串流專家權重:LFM2.5-8B-A1B 達到 10.6 tok/s,98.5% 的專家使用命中卡上插槽;Qwen3.5-35B-A3B 有 3.95 tok/s,每 token 經 PCIe 串流 153 MB。README 表示,兩者都與模擬器逐位元一致。
「由 AI 開發」究竟是怎麼運作的
來源與方法學是這個專案最大膽的主張。openTPU 承襲自 FeSens 先前的 auto-arch-tournament,方法是一場自動化的爬山(hill climb):每一輪,數個 LLM agents 閱讀某個硬體元件並提出修改,另一個 agent 負責撰寫。候選修改必須通過 lint 檢查、與模擬器的位元級精確比對、週期數檢查與效能測試,而且只有在「同速度下更小」或「同面積下更快」時才會被保留。第一場徹夜執行嘗試了六個元件的 96 項修改,保留了 38 項。加速器邏輯的估計時脈從 41 MHz 升到 106 MHz,查找表用量從 132K 降到 82K。
但保留態度是必要的,深入報導(尤其是 TrackFuture 的分析)並不掩蓋這些問題:那些是 yosys 的估計而非 Vivado 的結果,且未包含 PCIe 與 DDR3 控制器;過程中也有「人工修復」——一位 Hacker News 網友的形容相當公允:「一個有經驗的人,把 LLM 指向有品味的方向。」README 也沒有量化 agent 與人類的貢獻比例,也未揭露所用的工作框架與模型。標語裡的第二個問題——agents 能不能打造「執行自身推論」的晶片——其實是修辭:卡上跑的是 0.2B–4B 的開源模型,而不是撰寫設計的那些 agents。
儘管如此,它為什麼重要
剝掉 hype 之後,有兩件事是真正值得注意的。
第一,驗證是自動化的引擎。這場錦標賽之所以行得通,是因為關卡毫不留情:每項修改都必須先與模擬器逐位元一致才算數。這與形式驗證系統是同一課——當「AI 以外的東西」能檢查 AI 的產出時,AI 的輸出才變得有用。晶片設計裡一條接錯的線就是一次流片費用,正是這個模式最能發揮的領域。上個月 OpenAI 傳出以內部模型設計 Jalapeño 晶片,背後其實也是同一套:模型對準設計與基準軟體,底下墊著強健的檢查機制。
第二,探索性加速器設計的成本下限剛剛降低了。正如 AI Weekly 編輯所言:一個單人提交、宣稱由 agents 設計 RTL、ISA 與編譯器的堆疊,「很容易嗤之以鼻,卻很難複製;如果方法學站得住腳,公司內部探索性加速器設計的成本下限就會下降,而『把整個 monorepo 讀完』會成為加速器素養的入門途徑——這種開放程度是 Nvidia 和 Google 都給不了的。」對學生與小團隊來說,除了卡以外的所有東西都能在筆電上跑:pip install -e .、跑 pytest、裝 Verilator 5 測 RTL,然後 otpu-chat --backend isa 直接在模擬器上跟 Qwen3-0.6B 聊天。
FPGA 可以重燒來測新設計;客製矽晶片一旦製造就無法更改。Agent 驅動的設計能否撐過真實的流片成本與大規模驗證,目前是預測而非結論。但作為概念驗證——以及開源世界裡最易讀的端到端加速器程式碼庫——openTPU 值得你花一個晚上。
Sources
- [1] https://github.com/FeSens/openTPU
- [2] https://aiweekly.co/alerts/github-opentpu-ships-ai-designed-fpga-inference-accelerator-running-qwen3-and
- [3] https://news.ycombinator.com/item?id=49980715
- [4] https://trackfuture.ai/article/can-ai-agents-design-the-chip-they-run-on-inside-opentpu
- [5] https://aicoder.com/news/news-20261007-opentpu-ai-designed-open-source-accelerator-fpga