← All posts / Tools

自己設計自己的晶片:openTPU 讓 AI Agent 打造的 FPGA 加速器跑起 Qwen3

一位 GitHub 開發者聲稱,AI agents 設計了整套推論加速器——從 RTL、指令集到編譯器——如今它在一張約 200 美元的 Kintex-7 FPGA 卡上,位元級精確地跑著十個開源模型。

自己設計自己的晶片:openTPU 讓 AI Agent 打造的 FPGA 加速器跑起 Qwen3

九月底,一位代號 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-230Mint859.0 tok/s峰值的 85%
LFM2.5-230M4-bit + int8 head85.8 tok/s82%
Qwen3-0.6Bint821.6 tok/s84%
Qwen3.5-0.8B4-bit24.5 tok/s83%
SmolLM3-3B4-bit8.74 tok/s92%
Qwen3.5-4B4-bit5.88 tok/s92%

解碼時 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 值得你花一個晚上。