上一篇文章的結(jié)尾,我立了一個 flag:
三周后,科研創(chuàng)新課堂8 位同學(xué)在小板子上的戰(zhàn)報,也會發(fā)在「網(wǎng)絡(luò)交換FPGA」。關(guān)注這個號,我們板上見。
現(xiàn)在,戰(zhàn)報來了。
先劇透一句:這一次,我沒有等到那張熟悉的 FAIL 截圖。
我等到的是一行更讓我意外的東西——
板端 vs Python 參考:200 個 token,失配 0 個。小 8 倍的芯片,快 6 倍的速度,還全對了。
這篇文章講講這三周里發(fā)生了什么。老讀者可以把它當(dāng)上一篇的下集;新讀者不用回看,我會把背景一句話說清。
照例先交底:整套工程(包括上次的工程)已經(jīng)開源,從 Python 量化腳本、RTL 源碼、Vivado 工程到 200 token 板級實測日志,文中每個數(shù)字都能在倉庫里找到出處——
本篇(XC7Z020 小板子)[1]:
https://github.com/HanxinKING/nanogpt-zynq-backups/
上篇(xczu7ev 大作業(yè))[2]:
https://github.com/zcxsince2005/My_Transformer_on_fpga
兩代工程放在一起對照著讀,比單看任何一篇都有收獲。
值得一提的是,科研創(chuàng)新課程選課的八位同學(xué)全部順利完成任務(wù),可以先看吳言磊同學(xué)的實際操作視頻:
一句話背景:上學(xué)期,四個本科生用 AI 輔助,把一個 6 層的迷你 GPT(nanoGPT,莎士比亞語料,384 維、65 詞表)搬進(jìn)了一塊很大的 FPGA(Zynq UltraScale+ xczu7ev)。演示很流利,真相很誠實——完整模型 777 毫秒才憋出一個字符,他們?nèi)鐚嵈蛴×?FAIL。
這學(xué)期的科研創(chuàng)新課堂,我把同一道題出給了 8 位選課同學(xué),但把"考場"換小了:
先坦白一個小變動:上篇預(yù)告說用 ZedBoard,實際開課用的ZedBoard不夠用,上面視頻中使用的是一塊Smart Zynq SP2——芯片是同一顆,Zynq-7000 家族的 XC7Z020,考題難度分毫未變。
它有多小?

▲ 左:查找表(LUT)只有上一代的 1/4.3,乘法器(DSP)只有 1/7.9。右:這次的成績。
LUT 5.3 萬對 23 萬,DSP 220 對 1728,連片上大內(nèi)存 UltraRAM 都沒有。ARM 核也從 64 位的 A53 降級成了 32 位的 A9——這是一顆十幾年前架構(gòu)的老芯片。
按"資源換性能"的常識,這塊小板子理應(yīng)更慢。
三周后,它交出的成績是:每個 token 129.5 毫秒,比上學(xué)期大板子的 777 毫秒快 6 倍。
芯片小了 8 倍,速度快了 6 倍。這中間差著一個 48 倍的"不講道理"。
道理當(dāng)然是有的。拆開看,是三個聰明的決定。
上學(xué)期的大板子方案,給 Transformer 的每類運(yùn)算都蓋了獨立車間:LayerNorm 一個、注意力一個、矩陣乘一個……11 個加速器 IP 各占一塊地皮。地大,任性得起。
這次地皮只有零頭,同學(xué)們做了個反直覺的決定:
把車間全部拆掉,只留一個,讓所有工序排隊用。
Q、K、V 投影、注意力、殘差、FFN——全部塞進(jìn)同一個共享計算核,靠一個狀態(tài)機(jī)按時間片輪流調(diào)度。硬件圈的行話叫"時分復(fù)用":同一批乘法器,這一拍算注意力,下一拍算 FFN。
兩代架構(gòu)畫在一張圖上,差別一目了然:

▲ 左邊以面積換速度,右邊以調(diào)度換面積——沒有對錯,只有約束下的取舍。
代價是調(diào)度邏輯變復(fù)雜了,寫狀態(tài)機(jī)的人要非常清醒。
回報是:6 層 Transformer 塞進(jìn)去后,LUT 占用剛過一半(51.9%),乘法器也只用了一半(114/220)。片上緩存 BRAM 最緊張,用到 77.9%——但也沒爆。
小地盤逼出來的摳門,恰恰是芯片設(shè)計里最值錢的功夫:ASIC 工程師每天做的,就是這種"一平米當(dāng)三平米用"的取舍。
這是三個決定里含金量最高的一招,說破了簡單得讓人想笑。
生成式模型有個特點:寫第 100 個字的時候,需要"回看"前面 99 個字。
回看什么?
Transformer 會給讀過的每個字記兩份筆記:
寫每個新字,都要拿新字去和歷史上所有的 K 對一遍暗號,再按匹配程度把對應(yīng)的 V 加權(quán)取回來。
這就是“注意力機(jī)制”每天在做的事。
關(guān)鍵在于:一個字的 K 和 V 一旦算出來,終生不變。
上學(xué)期的方案是老實人做法:每寫一個新字,把前面所有字的 K、V 從頭重算一遍。寫到第 200 個字,前 199 個字的筆記已經(jīng)被重復(fù)謄寫了上百遍——正確,但極其浪費。
這次同學(xué)們把算好的 K、V 存進(jìn) DDR 內(nèi)存。新來一個字,只算新增的這一行,歷史筆記直接查表取用——工程里管這叫 K/V Cache(鍵值緩存)。
這份“筆記本”多大?
6 層全部存下,只占 1.1 MiB 內(nèi)存。用 1.1 MiB 空間,免掉上百倍的重復(fù)計算——這是全文性價比最高的一筆交易。
如果你關(guān)注大模型行業(yè),這個詞應(yīng)該眼熟:vLLM、TensorRT-LLM 這些工業(yè)級推理框架的看家優(yōu)化,第一條就是它。8 位本科生在一塊教學(xué)板上,把工業(yè)界的同款思想復(fù)現(xiàn)了一遍——外加一個工業(yè)界也要處理的細(xì)節(jié):量化尺度一旦變化,緩存自動整體刷新,絕不復(fù)用口徑不一致的舊數(shù)據(jù)。
順便報一個可愛的數(shù)字:管理這一切的 ARM 程序,代碼加數(shù)據(jù)總共不到 30 KB——不到一張手機(jī)照片的百分之一。
三周時間,他們沒有搞"一步到位的大重構(gòu)",而是像擰螺絲一樣一圈一圈地加速:

▲ 四步迭代,每一步都有簽核記錄可查(對數(shù)刻度)。虛線是上學(xué)期大板子的 777 ms。
第一步,純 ARM 軟件跑:約 2.1 秒一個字符。所有加速故事都需要一個誠實的起點。
第二步,把矩陣乘搬進(jìn) FPGA,Q/K/V 投影 16 路并行、FFN 64 路并行:壓到 163 毫秒。
第三步,提頻到 100 MHz。頻率不是白提的——重量化電路的組合邏輯太長,他們用寄存器打拍把長路徑切短,流水線化之后時序才收住。
第四步,專攻注意力:把 Q·K 點積改成每拍 8 個乘法的對齊讀取,一個 64 維注意力頭從 16 輪壓到 8 輪,注意力環(huán)節(jié)提速 1.31 倍。
最終定格:129.453 毫秒一個 token,時序報告 WNS +0.181 ns、TNS 為 0——全部路徑滿足 100 MHz 時序,這是一份可以簽字畫押的收斂報告。
懂行的朋友會注意到第四步只讓全局快了 3%。但他們還是做了,并且留下了記錄——因為剖析數(shù)據(jù)告訴他們注意力占 10%,值得擰這顆螺絲。按數(shù)據(jù)行事,不按感覺行事。
上學(xué)期的大板子,95.5% 的時間在做矩陣乘。這次呢?

▲ 三次板級實測均值。FFN 獨占近一半,是下一輪優(yōu)化的頭號目標(biāo)。
90.8%,還是矩陣乘。
優(yōu)化了三周,占比只從 95.5% 降到 90.8%——這不是失敗,這是這類系統(tǒng)的宿命:生成每個 token,都得把千萬級的權(quán)重從內(nèi)存里完整搬運(yùn)一遍。 你把計算修得再快,搬運(yùn)工還是那個搬運(yùn)工。
上一篇文章里我說過,這正是全世界大模型芯片共同的墻:帶寬墻。學(xué)生們用兩代板子、兩組實測數(shù)據(jù),把這堵墻摸了兩遍。
下一輪的靶子也已經(jīng)標(biāo)好:FFN 獨占 48.7%,誰先啃誰。
芯片行業(yè)評價一個設(shè)計,看三個字母:
PPA——Performance(性能)、Power(功耗)、Area(面積)。
任何架構(gòu)決定,最終都要在這三本賬上兌現(xiàn)。
777 毫秒降到 129.5 毫秒,快 6.0 倍。
對比同一塊小板子上純 ARM 軟件運(yùn)行的 2.1 秒,加速 16.4 倍。全部是三次板級實測均值,不是仿真值。
性能快 6 倍還不稀奇,稀奇的是它同時發(fā)生在一塊小 4.3 倍(LUT 口徑)的芯片上。
芯片設(shè)計有個綜合指標(biāo)叫“面積-延遲積”——面積乘以延時,越小越強(qiáng)。
這次兩頭同時改善:面積-延遲積改善約 26 倍(4.3 × 6.0,芯片總資源口徑)。
共享核貢獻(xiàn)面積,一套乘法器干六層的活;K/V Cache 貢獻(xiàn)延時,不再重算歷史。兩個決定各管一頭。
上代 xczu7ev 的功耗報告是 3.9 瓦,按 777 毫秒折算,每 token 約 3 焦耳。
這次的小芯片是 28nm 老工藝、資源只用一半,整板功耗在 2 瓦上下的量級。本工程未存檔功耗報告,此處按同類板卡典型值估算。
按 129.5 毫秒折算,每 token 約 0.3 焦耳——能量效率約改善一個數(shù)量級,其中大頭來自“快了 6 倍”。
省電的最好辦法,是快點算完。
三本賬合起來才是這門課想教的東西:架構(gòu)優(yōu)化不是玄學(xué),每個決定都能折成可測量的 PPA 數(shù)字。這正是"定制專用大模型芯片"路線上最核心的基本功——上一篇我們算的是產(chǎn)業(yè)的大賬,這一篇學(xué)生們用一塊教學(xué)板,把同一本賬在自己手上算了一遍。
老讀者記得,上一篇最打動我的是那張主動打印 FAIL 的截圖。
這次沒有 FAIL 了,我反而想強(qiáng)調(diào):誠實不是失敗時才需要的品格,成功時的誠實更難。
他們的驗收鏈?zhǔn)沁@樣搭的:
第一層,仿真器里逐算子對拍,6 層的 Q、K、V、注意力、投影全部零失配。
第二層,上板后把 6 層算完的中間結(jié)果(4224 個字節(jié))逐字節(jié)和金標(biāo)準(zhǔn)比:0/4224。
第三層,端到端生成 200 個 token,和電腦上的定點參考程序逐個比:0/200。
第四層,同樣的輸入連跑三次,輸出和耗時剖析完全一致——排除"碰巧對了一次"。
最容易被忽略的是第五層:報質(zhì)量指標(biāo)的口徑。INT8 量化后模型的困惑度回退是 4.06%,這個數(shù)字用的是和板子逐比特一致的嚴(yán)格計算路徑算的——工程文檔里專門寫了一句:"不使用較輕的軟件 fake-quant 回退代替"。
翻譯一下:有一條更寬松的算法能讓這個數(shù)字更好看,他們知道,但沒用。
連最終交付的比特流和程序,都附上了 SHA256 校驗碼——防的就是"最后一刻換了文件而沒人知道"。
上學(xué)期他們學(xué)會了誠實地失敗。這學(xué)期,他們學(xué)會了嚴(yán)謹(jǐn)?shù)爻晒Α?/span>
潑盆冷水降降溫。給這塊芯片輸入 "everything with a man",它生成的 200 個字符是:
that we have stood
The seal of the sea of the war,
the world begins
Of the seass of the seasons of the world,
Which the seals of the sea of the world,...莎士比亞的腔調(diào)有了,"海""世界""戰(zhàn)爭"來回打轉(zhuǎn),還造了個不存在的詞 seass。
200 個 token 全對,說的卻是胡話——這兩件事居然同時成立。
因為"對"的意思是:芯片輸出和數(shù)學(xué)上該輸出的一模一樣,一個比特都不差。而"胡話"是這個 1000 萬參數(shù)小模型的能力邊界——它只見過莎士比亞,還只認(rèn)識 65 個字符。
工程正確與模型能力,是兩場考試。硬件工程師負(fù)責(zé)第一場滿分,第二場要靠更大的模型、更多的數(shù)據(jù)——以及上一篇說過的那個詞:給小模型配上驗證層,讓系統(tǒng)知道自己什么時候不可信。
最后說說這門課本身交付了什么。除了跑通的板子,還有三樣?xùn)|西讓我覺得"這門課立住了":
同學(xué)們把串口交互做成了 Windows 圖形界面程序:選串口、輸提示詞、看生成,還能實時顯示首字延遲和生成速度。
下一屆學(xué)生的第一課,可以從雙擊一個 EXE 開始。
打開 VSCode 工作區(qū),六個任務(wù)按序排好:量化、生成 token、核對簽核、打開 Vivado、構(gòu)建 ARM 工程……
按一個鍵就能復(fù)現(xiàn)全部結(jié)論。上一篇立的這條規(guī)矩,這一屆變成了標(biāo)配。
從量化包統(tǒng)計、時序報告到 200 token 原始日志,全部在倉庫里,每個數(shù)字都能指回出處。
這就是我理解的"把驗收寫進(jìn)交付物":課程結(jié)束時,知識沒有留在 PPT 里,而是長在了一套可以被下一屆接手、被任何人復(fù)核的工程里。
十五五教育規(guī)劃講創(chuàng)新能力與實踐經(jīng)歷納入考核——落到我這間教室里,就是這份戰(zhàn)報的樣子。
寫到這里,不同背景的讀者對"用 FPGA 實現(xiàn)大模型"這件事,看到的東西應(yīng)該已經(jīng)不一樣了。分開說說。
這塊幾百塊錢的教學(xué)板想告訴你:大模型并不是只能活在云端天價顯卡里的神秘生物。
FPGA 是一種可以反復(fù)擦寫電路的“空白芯片”。一群本科生就能把一個會寫莎劇腔的模型裝進(jìn)去,還能拆開看清它的每一個比特在干什么。
AI 正在從“云上的魔法”變成“桌上的電路”。
下一次聽到“大模型芯片”的新聞,你會知道它并不遙遠(yuǎn)。你孩子的大學(xué)實驗課,可能就在做這件事。
這道題的價值,在于完成一次罕見的“全棧貫通”:
Python 訓(xùn)練 → INT8 量化 → 硬件描述語言 → 時序收斂 → 裸機(jī)驅(qū)動 → 板級驗證。
AI 軟件棧和芯片硬件棧,在一塊板子上首尾相接。
更重要的是練出兩個習(xí)慣:先立金標(biāo)準(zhǔn)再動手,以及讓每個數(shù)字都能指回出處。
這兩個習(xí)慣比任何一個具體工具都保值。簡歷上“在 FPGA 上跑通過 Transformer 并逐 token 對拍通過”這一行,比十個課程證書都有說服力。
這塊小板子用幾百塊錢的成本,把大模型推理芯片的核心矛盾復(fù)現(xiàn)了一遍:
每一個都是 FlightLLM、CD-LLM 等正式工作里的同類問題,只是縮小了一百倍。
在小系統(tǒng)上建立的架構(gòu)直覺,可以遷移到大系統(tǒng)。
這一點,下一節(jié)我會用一個讀者的提問再展開。
一塊板子,三層意義:科普的窗口、入行的梯子、產(chǎn)業(yè)的練兵場。
上一篇發(fā)出后,有讀者留言問得很直接:在 FPGA 上實現(xiàn)這么小的 Transformer,有什么意義?
這個問題值得認(rèn)真答。我又用 AI4Scholar 做了一輪檢索,發(fā)現(xiàn)“小 Transformer 上 FPGA”不是一條線,而是三層正在同時推進(jìn)的賽道。
它不負(fù)責(zé)陪人聊天,而是盯住一條傳感器序列、一幅圖或者一種異常。2025 年的 TinyTransformer4TS 把 4 比特 Transformer 部署到比 XC7Z020 更小的 Spartan-7 上,覆蓋預(yù)測、分類和異常檢測,最低只需 0.033 毫焦完成一次推理[3]。
在視覺側(cè),Neural ODE Tiny Transformer 在 ZCU104 上完成 96×96 圖像分類,量化后取得 79.68% 的 STL10 準(zhǔn)確率,端到端較 ARM A53 加速 9.85 倍、能效提高 7.10 倍[4]。Quasar-ViT 則把模型搜索和 FPGA 資源模型綁在一起,在 ZCU102 上做到 101.5—251.6 幀/秒,對應(yīng) ImageNet 準(zhǔn)確率 80.4%—74.9%[5]。
這些工作說明,工業(yè)傳感、設(shè)備異常、可穿戴和輕量視覺并不需要一個無所不知的聊天模型。它們要的是模型小、響應(yīng)確定、數(shù)據(jù)不離開設(shè)備,而且斷網(wǎng)仍能工作。
LlamaF 把 TinyLlama 1.1B 部署到 ZCU102,相比只用板上 ARM 處理器,獲得 14.3—15.8 倍加速和 6.1 倍能效提升[6]。Qwen2.5-0.5B 在 KV260 上經(jīng)過 AWQ 壓縮和軟硬件協(xié)同,從 2.8 提高到 5.1 token/s[7]。
同一階段還有更激進(jìn)的極低位寬路線:TeLLMe 把權(quán)重壓到 1.58 bit,在約 7 W 功耗下,512 token 上下文超過 9 token/s、1024 token 上下文約 8 token/s,還專門處理了經(jīng)常被忽略的提示詞預(yù)填充階段[8]。這些數(shù)字不能直接排名,因為模型、上下文和測量口徑不同;但它們共同證明,端側(cè)小語言模型已經(jīng)不是“能不能跑”,而是“怎樣跑得更值”。
2025 年有團(tuán)隊在只有 4 GB DDR 的 KV260 上部署 LLaMA2-7B,做到約 5 token/s:內(nèi)存容量用了 93.3%,解碼速度達(dá)到理論帶寬上限的 85%[9]。后續(xù) Hummingbird 借助權(quán)重卸載策略,在 KV260 和 ZCU104 上運(yùn)行 LLaMA3-8B,分別達(dá)到 4.8 和 8.6 token/s,模型帶寬利用率已經(jīng)逼近 93%—94%[10]。
這組數(shù)字揭示了一個容易被誤解的事實:模型越大,瓶頸越不像“乘法器不夠”,越像“權(quán)重搬不動”。LUT-LLM 因而嘗試把部分算術(shù)轉(zhuǎn)成片上查表,在 AMD V80 上運(yùn)行 Qwen3-1.7B,相比所測 GPU 報告了 1.10—3.29 倍生成速度和 3.05—6.60 倍能效[11]。這不是 FPGA 全面超過 GPU,而是在提醒我們:未來專用芯片的突破,可能來自計算范式變化,而不只是繼續(xù)堆乘法器。
還必須保留一個反例:Transformer 不是所有小任務(wù)的標(biāo)準(zhǔn)答案。
在污水溢流預(yù)測實驗中,8 比特 Transformer 以 0.370 毫焦/次換來更高精度;但 LSTM 只需 0.009 毫焦,能耗低 40 倍以上,代價是誤差高 14.89%[12]。在腕戴步態(tài)識別 StrikeWatch 中,研究者同時比較 Transformer、LSTM 和 CNN,最后勝出的反而是 6 比特 1D-SepCNN:0.140 毫秒、0.350 微焦/次,可連續(xù)工作約 13.6 天[13]。
這恰恰說明這條賽道的重要性:不是把所有問題都 Transformer 化,而是讓模型、任務(wù)和芯片一起做選擇。FPGA 的價值也不是全面替代 GPU,而是在工業(yè)、醫(yī)療、衛(wèi)星、網(wǎng)絡(luò)設(shè)備這些低功耗、低時延、重隱私的細(xì)分場景里,提供一塊可反復(fù)修改的“專用 AI 芯片試驗田”。
回到我們的課堂,共享計算核是在學(xué)面積效率,KV Cache 是在學(xué)狀態(tài)管理,INT8/Q30 是在學(xué)數(shù)值系統(tǒng),逐層金標(biāo)準(zhǔn)和 200 token 對拍是在學(xué)芯片驗證。它們拼起來,已經(jīng)是一套“專用 Transformer 芯片”的最小完整方法學(xué)。
一句話回答那位讀者:模型小是我刻意選的教具,但賽道是真的,瓶頸是真的,將來把某個領(lǐng)域的知識和能力做進(jìn)專用芯片的機(jī)會也是真的。
又有一位做衛(wèi)星遙感的讀者提到:2026 年 4 月,美國在軌運(yùn)行了 Gemma 3 4B,既然 Jetson AGX Orin 能跑,能不能換成 FPGA?
我核對了原論文。4 月 16 日,NASA JPL 團(tuán)隊的 NAVI-Orbital 系統(tǒng)確實在 Loft Orbital 的 YAM-9 衛(wèi)星上完成了在軌多模態(tài)推理。它用的是 Gemma 3 4B 指令模型、Q4_0 量化和獨立的多模態(tài)投影器 mmproj,可對遙感圖像分類、生成文字描述,并接受自然語言追問。論文在 7956 張有效 AID 圖像上報告了 88.16% 的零樣本分類準(zhǔn)確率[14]。
有個數(shù)字需要校準(zhǔn):論文寫的是,在支持 GPU 加速的星載計算節(jié)點上,5 張交叉驗證圖像的平均 VLM 周期為 26.6 秒;不是所有單圖都穩(wěn)定在“5—26 秒”。該節(jié)點配有 248 TOPS 級 GPU。
那么,F(xiàn)PGA 能不能做?
原理上能,工程上也已經(jīng)出現(xiàn)了相鄰證據(jù);但不能理解成把現(xiàn)有程序重新編譯一下,就能塞進(jìn)我們這塊 XC7Z020。
Gemma 3 4B 的 Q4 模型文件約 2.4 GB,F(xiàn)P16 mmproj 約 0.85 GB[15],還要給運(yùn)行時、KV Cache 和圖像中間特征留空間;NAVI-Orbital 論文給出的最低顯存要求是 8 GB。僅這一條,就排除了只有 512 MB DDR 的教學(xué)板。
使用帶 8 GB 以上 HBM/DDR 的高端 FPGA,將系統(tǒng)拆成:
Gemma 3 技術(shù)報告給出的視覺編碼器規(guī)模約為 4.17 億參數(shù),并將每幅圖像壓縮為 256 個視覺 token[16]。
這三段的主體仍是矩陣乘、注意力和數(shù)據(jù)搬運(yùn),正是 FPGA 可以定制流水線、INT4 數(shù)據(jù)通路和緩存層次的地方。
公開工程已經(jīng)有人在 Alveo U280 上用 HLS 實現(xiàn) TinyLLaVA-Phi-2-SigLIP 3.1B 的完整分段[17]。
2026 年的 TRINE 預(yù)印本也展示了在 U50/ZCU104 上用單一比特流執(zhí)行視覺與語言工作負(fù)載[18]。
它們說明“FPGA 跑 VLM”不是空想,但目前還不能據(jù)此宣稱 Gemma 3 4B 已經(jīng)在 FPGA 上達(dá)到 YAM-9 的在軌指標(biāo)。
如果真做,我不會第一步就追求“FPGA 全接管”。更穩(wěn)妥的路線是:先用 FPGA 加速相機(jī)前端、SigLIP 和 mmproj,把圖像壓成少量視覺 token;再評估 4B 解碼器是放進(jìn) HBM FPGA,還是保留在 GPU/NPU。這樣既發(fā)揮 FPGA 貼近傳感器、確定性強(qiáng)、接口靈活的優(yōu)勢,也避免一開始被 4B 權(quán)重的容量和帶寬拖垮。
還有一條路線,我們其實已經(jīng)做過前期研究:把視覺 Transformer 換成脈沖 Transformer。
西電團(tuán)隊 2026 年發(fā)表的 FPGA Spikformer 加速器,把連續(xù)激活變成低比特脈沖事件。
脈沖 Q、K、V 的相關(guān)運(yùn)算可用按位與、計數(shù)和選路器完成,從而減少傳統(tǒng)乘法器和無效計算;系統(tǒng)還采用卷積與 BN 融合、INT8 量化感知訓(xùn)練、4 個時間步并行和注意力算子融合。
實測中,Spikformer-1-384 的參數(shù)由 15.92 MB 壓到 3.98 MB,CIFAR-10 準(zhǔn)確率僅從 94.57% 降到 94.35%。
在同一款 xczu7ev 上,它實現(xiàn) 53 ms 端到端推理和 7.181 W 整機(jī)功耗;注意力+MLP 模塊較 RTX 4060 和 i9 分別加速 1.70 倍和 5.73 倍[19]。
但這里必須說準(zhǔn):它是一個脈沖視覺分類模型,不是已經(jīng)能看圖對話的4B脈沖VLM。論文的系統(tǒng)能效優(yōu)于CPU,但表中RTX 4060仍有更高的端到端速度和FPS/W,不能簡單宣傳成“全面超過GPU”。它真正證明的是:脈沖化可以顯著壓縮視覺前端,并讓注意力算子更適合FPGA。
因此,更現(xiàn)實的近中期方案不是馬上造一個“全脈沖Gemma”,而是做混合式星載VLM:前端采用Spikformer或事件驅(qū)動視覺編碼器,負(fù)責(zé)低功耗篩選、變化檢測和生成緊湊視覺token;mmproj完成模態(tài)映射;后端仍由Q4語言模型負(fù)責(zé)開放詞匯理解和自然語言交互。對于事件相機(jī)或變化稀疏的遙感任務(wù),這條路線尤其有吸引力;對于每幀都是稠密RGB的普通光學(xué)遙感,則必須實測脈沖稀疏度,不能預(yù)設(shè)一定省電。
它對遙感最現(xiàn)實的價值,也不是讓衛(wèi)星“看圖聊天”,而是做語義壓縮:在軌判斷云量、災(zāi)害、艦船、機(jī)場或異常變化,只下傳文字摘要和高價值圖像。真正的收益不是省幾秒,而是把有限下行鏈路留給值得傳回地面的內(nèi)容。
所以我的回答是:高端FPGA或FPGA+GPU/NPU異構(gòu)方案可行,脈沖視覺前端還能進(jìn)一步降資源與功耗;但XC7Z020級教學(xué)板無法承載Gemma 3 4B,先做視覺前端與投影器,再攻4B解碼器,是更可信的工程路線。 同時,VLM的概率輸出不能直接控制衛(wèi)星,仍需封閉標(biāo)簽、結(jié)構(gòu)化輸出、傳統(tǒng)算法復(fù)核和人工最終授權(quán)。
1. 架構(gòu) > 資源。 小 8 倍的芯片快 6 倍:共享核、K/V Cache、按剖析數(shù)據(jù)加速,每一條都比"換更大的板子"值錢。
2. 好的架構(gòu)決定,要能折成 PPA 數(shù)字。 性能實測 6 倍、面積-延遲積約 26 倍、每 token 能量約一個數(shù)量級(估算)——算不出賬的"優(yōu)化"要警惕。
3. 別重算已經(jīng)算過的。 K/V Cache 用 1.1 MiB 內(nèi)存省掉上百倍重復(fù)計算——工業(yè)界的看家優(yōu)化,往往樸素得可以進(jìn)中學(xué)課本。
4. 一次只擰一顆螺絲。 四步迭代每步有簽核記錄,3% 的提升也值得做——只要數(shù)據(jù)說它該做。
5. 成功時的誠實更難。 五層驗證鏈 + 從嚴(yán)的指標(biāo)口徑 + SHA256 存檔:不給"碰巧對了"留任何空間。
6. 工程正確與模型能力是兩場考試。 0/200 全對和滿口胡話同時成立——分清這兩件事,才算入了 AI 硬件的門。
最后還是那句話:
誠實,是工程師最貴的器件。這學(xué)期我想再加半句——嚴(yán)謹(jǐn),是它的另一半。
猜一猜:FFN 那 48.7% 的耗時,下一屆會用什么辦法啃下來?評論區(qū)聊聊。
開源倉庫地址在文章開頭(公眾號正文里鏈接點不了,后臺私信我即可,直接發(fā)你可點擊的鏈接和完整參數(shù)匯總)。
上一篇《把大模型塞進(jìn)FPGA,被我出成了課程大作業(yè)》講了這個故事的上集,還沒看過的朋友可以補(bǔ)票。
本文課程實驗數(shù)據(jù)來自參考資料[1]、[2]。129.453 ms/token為3次板級實測均值;純ARM基準(zhǔn)約0.47字符/s;777 ms為上學(xué)期xczu7ev工程實測。資源及時序取自Vivado路由后報告;0/4224、0/200和PPL回退4.0606%取自簽核報告。
“面積—延遲積改善約26倍”按器件LUT總量比4.3×實測延時比6.0估算。“本代每token約0.26 J”為同類板卡典型整板功耗約2 W×129.5 ms的量級估計,并非本工程實測功耗。
[1] HanxinKING. nanogpt-zynq-backups:nanoGPT Zynq QKT8 100 MHz最終工程. GitHub, 2026.
https://github.com/HanxinKING/nanogpt-zynq-backups/
[2] zcxsince2005. My_Transformer_on_fpga. GitHub, 2026.
https://github.com/zcxsince2005/My_Transformer_on_fpga
[3] Ling T, Qian C, Ha?ler L J, Schiele G. Automating Versatile Time-Series Analysis with Tiny Transformers on Embedded FPGAs. ISVLSI, 2025.
https://arxiv.org/abs/2505.17662
[4] Okubo I, Sugiura K, Matsutani H. A Cost-Efficient FPGA Implementation of Tiny Transformer Model Using Neural ODE. 2024.
https://arxiv.org/abs/2401.02721
[5] Li Z, Lu A, Xie Y, et al. Quasar-ViT: Hardware-Oriented Quantization-Aware Architecture Search for Vision Transformers. 2024.
https://arxiv.org/abs/2407.18175
[6] Xu H, Li Y, Ji S. LlamaF: An Efficient Llama2 Architecture Accelerator on Embedded FPGAs. 2024.
https://arxiv.org/abs/2409.11424
[7] Xiang M, Fernando R, Wang B. On-Device Qwen2.5: Efficient LLM Inference with Model Compression and Hardware Acceleration. arXiv preprint, 2025.
https://arxiv.org/abs/2504.17376
[8] Qiao Y, Chen Z, Zhang Y, Wang Y, Huang S. TeLLMe: An Energy-Efficient Ternary LLM Accelerator for Prefilling and Decoding on Edge FPGAs. arXiv preprint, 2025.
https://arxiv.org/abs/2504.16266
[9] Li J, Li T, Shen G, et al. Pushing up to the Limit of Memory Bandwidth and Capacity Utilization for Efficient LLM Decoding on Embedded FPGA. arXiv preprint, 2025.
https://arxiv.org/abs/2502.10659
[10] Li J, Li T, Chen R, et al. Hummingbird: A Smaller and Faster Large Language Model Accelerator on Embedded FPGA. arXiv preprint, 2025.
https://arxiv.org/abs/2507.03308
[11] He Z, Ye S, Ma R, Wang Y, Cong J. LUT-LLM: Efficient Large Language Model Inference with Memory-based Computations on FPGAs. arXiv preprint, 2025.
https://arxiv.org/abs/2511.06174
[12] Ling T, Singh V, Qian C, Biessmann F, Schiele G. Automated Energy-Aware Time-Series Model Deployment on Embedded FPGAs for Resilient Combined Sewer Overflow Management. arXiv preprint, 2025.
https://arxiv.org/abs/2508.13905
[13] Ling T, Qian C, Zdankin P, Weis T, Schiele G. StrikeWatch: Wrist-worn Gait Recognition with Compact Time-series Models on Low-power FPGAs. arXiv preprint, 2025.
https://arxiv.org/abs/2510.24738
[14] Delfa Victoria J M, John T C, Herson A W. NAVI-Orbital: First In-Orbit Demonstration of a Zero-Shot Vision-Language Model for Autonomous Earth Observation. arXiv preprint, 2026.
https://arxiv.org/abs/2606.18271
[15] Google. Gemma 3 4B IT QAT Q4_0 GGUF;Second State. Gemma 3 4B IT GGUF/mmproj. Hugging Face, 2025.
https://huggingface.co/google/gemma-3-4b-it-qat-q4_0-gguf
[16] Gemma Team. Gemma 3 Technical Report. arXiv, 2025.
https://arxiv.org/abs/2503.19786
[17] Liu Y T. FPGA Acceleration of TinyLLaVA Inference via HLS. GitHub, 2025.
https://github.com/liuutin9/FPGA-Acceleration-of-TinyLLaVA-Inference-via-HLS
[18] TRINE: A Token-Aware, Runtime-Adaptive FPGA Inference Engine for Multimodal AI. arXiv preprint, 2026.
https://arxiv.org/abs/2603.22867
[19] 鄒濤,項水英,盧小峰,等. 基于FPGA的脈沖Transformer硬件高能效加速器實現(xiàn)[J/OL]. 物理學(xué)報,2026. DOI: 10.7498/aps.75.20260085.
https://github.com/tooddler/FPGA_SpikingTransformer