Builder Daily

2026-05-04

Qwen3 MoE 在 DGX Spark 上的效能 — NVFP4 vs FP8 基準測試與實際可行的設定

社群驗證的 Qwen3.6-35B-A3B 與 Qwen3.5-122B-A10B 在 GB10 上的數據:NVFP4+MTP 單使用者可達 55.9 tok/s,c=32 可達 433 tok/s。涵蓋 TRITON-only MoE 後端問題與 MTP+prefix-cache 失敗模式。

2026 年 5 月,Qwen3 MoE 在 DGX Spark(GB10,128 GB 統一 LPDDR5X)上的社群基準測試結果已趨於穩定。以下是經驗證的數據與產生這些結果的設定。

Qwen3.6-35B-A3B — 日常使用設定

模型: RedHatAI/Qwen3.6-35B-A3B-NVFP4
容器: vllm/vllm-openai:cu130-nightly(NVFP4 必須使用此版本 — 其他 vLLM 映像會出現量化格式錯誤)
後端: --moe-backend=flashinfer_cutlass

情境輸出 tok/s平均 TTFTMTP 接受率
單使用者(512 輸入 / 512 輸出)55.9166 ms85.4%
並發 32(1024 輸入 / 512 輸出)433.42,317 ms85.2%
長輸出(4096 tokens)158.0251 ms92.8%

MTP-1(投機解碼,1 個草稿 token)是從 FP8 基準約 32 tok/s 跳升至 55.9 tok/s 的關鍵。85–93% 的接受率意味著草稿 token 大多數時間都被採用 — 這個模型的預測性夠強,投機解碼效益顯著。

沒有 MTP 的情況下,FP8 單使用者頂多 28–33 tok/s,c=32 時約 155.6 tok/s。273 GB/s LPDDR5X 的記憶體頻寬是 dense token 生成的硬性上限。

Qwen3.5-122B-A10B — 效能優化階梯

這個更大的模型需要 vLLM 0.19+ 以及 2026 年 4 月的 Marlin kernel 修補。以下是 NVIDIA 論壇上的優化階梯:

設定Tok/s增益
基準 INT4(Intel AutoRound)28.3
+ 共享 expert 層 Hybrid INT4+FP830.8+8.8%
+ MTP-1 投機解碼(FlashInfer)38.4+35.8%

38.4 tok/s 是此模型在單台 Spark 上的驗證硬體上限。任務類型有實際差異:短數學輸出約 36.3 tok/s,長程式碼生成(2048+ tokens)可達 39.9 tok/s。

常見踩坑點

1. SM121 上 MoE 後端只支援 TRITON。 FLASHINFER、CUTLASS 和 DEEPGEMM 無法用於消費者 Blackwell 上的 FP8 MoE。NVFP4 透過明確旗標取得 flashinfer_cutlass — 不要省略此設定。

2. MTP + prefix caching = 失敗。 同時啟用投機解碼和 prefix caching 在 c=8 時導致 17/32 請求失敗(FP8 模型)。在上游修復前只能二選一。

3. NVFP4 在 2026 年 4 月前比 INT4 更慢。 Marlin kernel 修補改變了這一點。如果你使用的是四月前的容器且 NVFP4 顯示 16.6 tok/s(比 INT4 基準的 28.3 還慢),請更新容器。

4. CUDA graph 編譯需要 5–8 分鐘。 伺服器初次啟動時看起來像是卡住了 — 它其實正在編譯。健康檢查的 readiness probe 超時時間至少要設為 600 秒。

5. Qwen3-27B 未量化的上限。 以 BF16/FP8 計算,頻寬理論上限約 10 tok/s(27 GB × 1 byte = 27 GB/pass,÷ 270 GB/s)。MTP-3 最佳情況可達 15.2 tok/s。要在這個尺寸下互動使用,NVFP4 是正確選擇。

快速啟動指令

docker run -d --gpus all --ipc host --shm-size 64gb \
  -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:cu130-nightly \
  RedHatAI/Qwen3.6-35B-A3B-NVFP4 \
  --served-model-name qwen3.5-35b \
  --host 0.0.0.0 --port 8000 \
  --dtype bfloat16 --gpu-memory-utilization 0.9 \
  --max-model-len 262144 \
  --enable-prefix-caching \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --reasoning-parser qwen3 \
  --moe-backend=flashinfer_cutlass

啟用 MTP-1 投機解碼請加上:--speculative-model-type=ngram --num-speculative-tokens=1


Sources

請喝咖啡