GB10 實測 DiffusionGemma 26B 挑戰 32K 極限

작성자

카테고리:

← 피드로
DEV Community · JH5 · 2026-06-20 개발(SW)
Cover image for GB10 實測 DiffusionGemma 26B 挑戰 32K 極限

JH5

作為三平台評測的最終章(前兩篇為 M2 Max 96GB MLXGH200 vLLM),本篇將完整測試一下 GB10 的吞吐量表現、32K 長 Context 的速度代價、以及在 Podman 部署時讓人抓狂的 OOM 踩坑紀錄。

在數據的結果來看,155 tok/s,比 M2 Max 快了整整 10 倍! 更重要的是,Context 長度一路從 2K 解鎖到 32K都成功Pass,直接與老大哥 GH200 站在同一條起跑線上,直到 32,600 tokens 才開始撞牆。

整體來說, NVIDIA GB10(Grace Blackwell 128GB)在執行 DiffusionGemma 26B 時,交出了一份令人驚艷的成績單,雖然 Context 拉長後,速度衰減得比 GH200 明顯,但實際串接在CLI 的使用體感與超高性價比,絕對是本地推理 Server 的首選。

測試環境:GB10 + vLLM,32K Context 達標

項目 內容 平台 NVIDIA GB10(Grace Blackwell),128 GB 統一記憶體 框架 vLLM 0.22.1rc1 模型 nvidia/diffusiongemma-26B-A4B-it-NVFP4 部署參數 --gpu-memory-utilization 0.7 --max-model-len 32768 --max-num-seqs 4 --enable-auto-tool-choice --tool-call-parser gemma4 --reasoning-parser gemma4 容器 vllm-diffusiongemma 部署方式 Podman,需用 --device nvidia.com/gpu=all 而非 --gpus all

部署的設定我跟 GH200 那台使用相同的 vLLM 版本(0.22.1rc1),部署參數也差不多,另外設定--gpu-memory-utilization 0.7 只分配約 90 GB GPU 記憶體給 vLLM,但靠 --max-num-seqs 4 限制併發數避免 OOM,也成功把 --max-model-len 推到 32768 跟 GH200 達到差不多的輸出體驗。

Generation Throughput

Output 長度 速度 延遲 64 tokens 35 tok/s 1.82s 128 tokens 78 tok/s 1.64s 256 tokens 140 tok/s 1.83s 512 tokens 155 tok/s 3.30s 1024 tokens 151 tok/s 6.76s

Throughput 的峰值在 512 tokens(155 tok/s),不過有趣的是 64 tokens 反而最慢(35 tok/s),應該是因為在較短輸出時 denoising step 的 warmup overhead 佔比大,剛開始的 decoding overhead 被攤分到的 token 數太少,而跟 GH200 的 1180 tok/s 相比,GB10 約 1/8,但對比 M2 Max 的 14.7 tok/s 已經是 10 倍。

輸出的速度曲線很平穩,大概從 256 到 1024 tokens 都維持在 140-155 tok/s,這也代表 Blackwell GPU 在 multi-canvas 處理上 scale 得不錯。

Context 限制:32K 達標,20K 內都還算順

前面有提到,透過設定--max-model-len 從 8192 再拉到 32768 之後,context 極限跟 GH200 打平了。

實測上的最大輸入有到 32,600 tokens(配 1 個 output token,距 32,768 差 168),超過就會一直跳出類似的提示

This model's maximum context length is 32768 tokens.

Enter fullscreen mode Exit fullscreen mode

當然,context 越長速度越慢,跟 GH200 比起來還是有一段距離

Context 長度 輸入 tokens GB10 速度 GH200 速度(對照) ~1.5K 1,484 tok 35.4 tok/s — ~5K 7,500 tok 15.7 tok/s 104 tok/s ~10K 15,070 tok 9.3 tok/s 66 tok/s ~20K 30,273 tok 3.3~15.6 tok/s 39 tok/s ~30K 32,216 tok 9.9 tok/s — ~32K(極限) 32,600 tok 0.09 tok/s 4.0 tok/s

前 10K 都還有 9 tok/s 以上,對多輪對話和中等長度文件分析完全夠用,到快 20K 的時候生成速度看 workload 差異很大(簡單 prompt 有 15.6 tok/s,複雜摘要掉到 3.3 tok/s),而 30K 還有 10 tok/s,但到極限 32K 就只剩 0.09 tok/s。

跟 GH200 比起來,GB10 在同 context 長度下大約慢 4-7 倍。但考慮到 GB10 的價格和功耗,這個 trade-off 很合理,實際上在CLI 的串接體感上,較長context的等待時間我覺得還可以接受,偶爾需要等一下。

部署踩到的坑

這顆模型在 Podman 上部署不算順利,記錄幾個有筆記起來的部分。

一開始在 CUDA graphs warmup OOM:gpu-memory-utilization 設太高(~0.8+)時,模型權重載入後剩餘空間不足以讓 CUDA graphs 完成 warmup,直接噴 OOM,後來陸續調降到 0.7 後才變得比較穩定,再配合參數 --max-num-seqs 4 限制併發,可以把 max-model-len 推到 32768。

Podman GPU 參數--gpus all 在 Podman 上不支援,要用 --device nvidia.com/gpu=all

CNI DNAT 殘留:刪除舊容器重建後,nftables 還留著舊容器的 DNAT 規則,連 localhost:8090 會 No route to host,後來是利用 sudo nft flush chain ip nat CNI-HOSTPORT-DNAT && sudo systemctl restart podman來成功排除。

DGX Spark CNI 插件路徑:這台機器的 CNI plugins 放在 /usr/lib/cni/ 不是預期的 /opt/cni/bin/,Podman 會找不到網路插件,需要手動 symlink。

併發

併發數 總吞吐量 Wall time 1 70 tok/s 1.14s 2 126 tok/s 1.27s 4 123 tok/s 2.59s

在併發數2的時候還是接近線性 scaling(70→126),但到 4後就 plateau 了(123 tok/s),跟GH200 的 4個併發結果可以到 256 tok/s,GB10 大約是它的一半,再跟 M2 Max 的 1.4 tok/s 比,已經是阿彌陀佛了🤣

三平台定位

到目前為止三台的關鍵數字:

項目 M2 Max 96GB GH200 480GB GB10 128GB 框架 MLX vLLM vLLM 峰值生成 14.7 tok/s 1180 tok/s 155 tok/s 4 路併發 1.4 tok/s 256 tok/s 123 tok/s 可用 context ~8K-16K ~32K ~32K 優勢 開發方便、RAM 大 極致效能 價格效能比最佳

GB10 把 context 推到 32K 之後,跟 GH200 站在同一條起跑線了,雖然 155 tok/s 的生成速度雖然只有 GH200 的 1/8,但 32K context 全滿可用、不貴、不吵、插電就能當 local 推理 server。

以 GB10 的價位來說,這個表現已經遠超出預期,如果你的應用需要長時間執行推理任務(batch processing、定期分析),GB10 搭配 GH200 可以形成一個很有效率的 tiered 架構,一般日常開發和短任務給 GB10,長 context 或高併發丟給 GH200。

  • 模型:nvidia/diffusiongemma-26B-A4B-it-NVFP4
  • 框架:vLLM 0.22.1rc1
  • 平台:GB10 Grace Blackwell(128 GB 統一記憶體)

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다