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 | 平均 TTFT | MTP 接受率 |
|---|---|---|---|
| 单用户(512 输入 / 512 输出) | 55.9 | 166 ms | 85.4% |
| 并发 32(1024 输入 / 512 输出) | 433.4 | 2,317 ms | 85.2% |
| 长输出(4096 tokens) | 158.0 | 251 ms | 92.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 的内存带宽是密集 token 生成的硬性上限。
Qwen3.5-122B-A10B — 性能优化阶梯
这个更大的模型需要 vLLM 0.19+ 以及 2026 年 4 月的 Marlin kernel 补丁。以下是 NVIDIA 论坛上的优化阶梯:
| 配置 | Tok/s | 增益 |
|---|---|---|
| 基准 INT4(Intel AutoRound) | 28.3 | — |
| + 共享 expert 层 Hybrid INT4+FP8 | 30.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