Builder Daily

2026-05-04

DGX Spark上のQwen3 MoE — NVFP4 vs FP8ベンチマークと実際に動く設定

GB10でのQwen3.6-35B-A3BとQwen3.5-122B-A10Bのコミュニティ検証済み数値:NVFP4+MTPで単一ユーザー55.9 tok/s、c=32で433 tok/s。TRITON-only MoEバックエンドの注意点とMTP+prefix-cache失敗モードを解説。

2026年5月、DGX Spark(GB10、128 GB統合LPDDR5X)上のQwen3 MoEに関するコミュニティベンチマークの結果が安定してきました。以下が検証済みの数値と、それを実現する設定です。

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トークン)158.0251 ms92.8%

MTP-1(投機的デコーディング、ドラフトトークン1個)がFP8ベースラインの約32 tok/sから55.9 tok/sへのジャンプをもたらしています。85〜93%の採用率は、ドラフトトークンがほぼ常に採用されていることを意味します。

MTPなしでは、FP8は単一ユーザーで28〜33 tok/s、c=32で155.6 tok/sが上限です。273 GB/s LPDDR5Xのメモリ帯域幅が密なトークン生成のハードウォールです。

Qwen3.5-122B-A10B — 最適化の階段

この大型モデルにはvLLM 0.19+と2026年4月のMarlinカーネル修正が必要です:

設定Tok/s向上率
ベースラインINT4(Intel AutoRound)28.3
+ 共有エキスパート層にHybrid INT4+FP830.8+8.8%
+ MTP-1投機的デコーディング(FlashInfer)38.4+35.8%

38.4 tok/sが単一Sparkでの検証済みハードウェア上限です。タスクによって変動があり、短い数学出力では36.3 tok/s、長いコード生成(2048+トークン)では39.9 tok/sでした。

時間を無駄にする落とし穴

1. SM121のMoEバックエンドはTRITONのみ。 FP8 MoEではFLASHINFER、CUTLASS、DEEPGEMMはコンシューマーBlackwellで利用不可。NVFP4は明示的なフラグでflashinfer_cutlassを使用できます。

2. MTP + prefix caching = 失敗。 投機的デコーディングとprefix cachingを同時に使用すると、c=8で17/32のリクエストが失敗しました(FP8モデル)。上流で修正されるまでどちらか一方だけを使用してください。

3. NVFP4は2026年4月まではINT4より遅かった。 Marlinカーネル修正でこれが変わりました。古いコンテナでNVFP4が16.6 tok/sしか出ない場合はコンテナを更新してください。

4. CUDAグラフのコンパイルに5〜8分かかる。 サーバーが初回起動時にフリーズしているように見えますが、コンパイル中です。ヘルスチェックのreadiness probeタイムアウトを最低600秒に設定してください。

5. Qwen3-27B未量化の上限。 BF16/FP8では帯域理論値から約10 tok/s(27 GB × 1バイト = 27 GB/パス、÷ 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

チップ