由 vLLM 核心團隊創辦的新創公司 Inferact 公布了一組推理測試結果:用 16 顆 Google TPU v7 Ironwood 跑月之暗面(Moonshot AI)的 Kimi K3,單路解碼速度達到每秒 709 個 token;同樣是 16 顆的 NVIDIA GB200 對照組,速度為每秒 452 個,TPU 快了約 57%。
測試報告與程式碼在 9 月 23 日一併釋出,程式碼庫 inferact/tpu-megakernels 以 Apache 2.0 授權開源。Inferact 由前 vLLM 團隊班底創立,先前完成 1.5 億美元種子輪募資,估值達 8 億美元,由 a16z 與 Lightspeed 領投。
紙上規格 GB200 略占上風
先看雙方的紙上規格。依報告列出的數字,單顆 TPU v7 的 BF16 峰值算力為 2.31 PFLOPS、FP8 為 4.61 PFLOPS,搭配 206GB HBM、頻寬 7380 GB/s;單顆 GB200 則分別是 2.5 PFLOPS、5 PFLOPS,186GB HBM、頻寬 8000 GB/s。算力與頻寬兩項,GB200 都略高一截,TPU 只在記憶體容量上多出 20GB。
Kimi K3 是 92 層的 MoE 模型,注意力機制混用 Kimi Delta Attention 與多頭潛在注意力(MLA)。測試以張量平行 4 路、專家平行 8 路,將模型切分到 16 顆晶片上。
不開啟推測解碼的裸速比較如下:
| 批次大小 | TPU v7(megakernel) | GB200(vLLM) |
|---|---|---|
| 1 | 249 | 127 |
| 2 | 392 | 227 |
| 4 | 515 | 373 |
| 8 | 865 | 636 |
單位是每秒 token 數。批次大小為 1 時 TPU 幾乎快兩倍,批次大小到 8,領先幅度收窄到三成多。開啟 DeepSeek 提出的 DSpark 推測解碼後,單路速度變成 709 對 452,單步解碼約需 8.5 毫秒。
訣竅在於把 92 層合成一支程式
Inferact 把這套做法稱為 megakernel。一般推理框架裡,每一層的運算被拆成若干獨立的核心(kernel)依序啟動,核心之間存在空檔,權重也要等對應核心開始執行才能從記憶體搬到晶片上。
Inferact 用 Pallas 把整個解碼步驟的 92 層寫成一支程式。報告指出,一支 megakernel 抹除了核心之間的邊界,權重載入不再綁定於使用它的核心,晶片內建記憶體能容納多少,就能提前多少去抓取。單路解碼時,晶片大部分時間都在等資料,這種預先抓取正好補上這個空檔;批次大小一拉高,運算占比變高,這一招的效益就變薄,這與表格中的趨勢吻合。
附帶的好處是編譯時間:原本走 XLA 編譯要 30 分鐘以上,megakernel 則不到 90 秒。為證明加速沒有犧牲準確度,報告附上 Kimi K3 在 TPU 上的成績:GPQA-Diamond 94.4%、GSM8K 97.2%。
粗算單位算力的產出
用單路推測解碼的結果粗估:TPU v7 的 BF16 峰值約為 GB200 的 92%,產出的 token 速度卻是後者的 1.57 倍,換算成每單位峰值算力的產出,TPU 這邊約為 GB200 的 1.7 倍。按頻寬換算,結果也落在 1.7 倍左右。
這個數字要打點折扣。GB200 一側用的是 vLLM 公開釋出的 Kimi K3 配方,走的是常規多核心路線,並未做同等力度的 megakernel 改造。報告裡沒有對等優化過的 GB200 對照結果,差距裡有多少來自晶片本身、多少來自軟體投入,目前無法拆分。NVIDIA 方面也尚未對這組數字做出回應。
對月之暗面(Moonshot AI)來說,這組測試提供了 Kimi K3 在非 NVIDIA 硬體上的一條可行部署路徑。Kimi K3 是 2.8 兆參數的開放權重模型,這個規模讓自行部署的門檻相當高;有了開源的 TPU 核心,在雲端租用 TPU 來跑 K3 多了一個選項。
參考來源:Inferact 技術部落格、CocoLoop、inferact/tpu-megakernels 程式碼庫、量子位;輸出速度數字以 Inferact 報告的 16 對 16 顆晶片測試口徑為準,募資資訊則依據公開報導。