Skip to content

dsv4-fp4-b200-vllm: bump to vllm v0.20.0, deep_gemm_mega_moe MoE#1204

Merged
functionstackx merged 11 commits into
mainfrom
claude/dsv4-fp4-b200-vllm-v0.20.0
Apr 28, 2026
Merged

dsv4-fp4-b200-vllm: bump to vllm v0.20.0, deep_gemm_mega_moe MoE#1204
functionstackx merged 11 commits into
mainfrom
claude/dsv4-fp4-b200-vllm-v0.20.0

Conversation

@functionstackx

@functionstackx functionstackx commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Pin dsv4-fp4-b200-vllm image to vllm/vllm-openai:v0.20.0-cu130 (canonical v0.20.0 tag) — replaces the floating deepseekv4-cu130 tag. DeepGEMM is preinstalled in this image, so no install_deepgemm.sh step is needed at benchmark time.
  • All configs share --compilation-config '{"cudagraph_mode":"FULL_AND_PIECEWISE","custom_ops":["all"]}' and --attention_config.use_fp4_indexer_cache=True.
  • Gate --moe-backend deep_gemm_mega_moe and --gpu-memory-utilization 0.85 on DP_ATTENTION=true per the v0.20.0 recipe. The two flags travel together via MOE_ARGS / GMU_ARGS.
  • Drop --pipeline-parallel-size 1 (no longer in the v0.20.0 recipe). Retain --no-enable-prefix-caching (so cross-request cache hits don't skew steady-state throughput) and --max-cudagraph-capture-size 2048 (preserve cudagraph coverage at the top of the search space).

Resulting flag matrix

search-space entry DP_ATTENTION EP compile-config moe-backend gpu-mem-util
{tp:8} false FULL_AND_PIECEWISE,custom_ops:all (default) (default)
{tp:8, ep:8} (1k1k @ 128) false enabled FULL_AND_PIECEWISE,custom_ops:all (default) (default)
{tp:8, ep:8, dp-attn:true} true enabled FULL_AND_PIECEWISE,custom_ops:all deep_gemm_mega_moe 0.85

PARALLEL_ARGS / EP_ARGS / GMU_ARGS / MOE_ARGS arrays are preserved so the existing DP_ATTENTION / EP_SIZE search-space branching drives the right flags cleanly.

Adds a perf-changelog.yaml entry to trigger the affected configs.

Test plan

  • Trigger the dsv4-fp4-b200-vllm benchmark workflow on a B200 runner and confirm the engine starts and the sweep completes for at least one cell in each row of the matrix above.
  • Confirm the v0.20.0-cu130 image pulls and DeepGEMM is already importable inside the container (no install step at runtime).
  • Spot-check server.log to verify the right flags are logged per branch:
    • DP_ATTENTION=false (any CONC, any EP): no --moe-backend, no --gpu-memory-utilization.
    • DP_ATTENTION=true: --moe-backend deep_gemm_mega_moe --gpu-memory-utilization 0.85.
    • All branches: --compilation-config '{"cudagraph_mode":"FULL_AND_PIECEWISE","custom_ops":["all"]}', --no-enable-prefix-caching, --max-cudagraph-capture-size 2048.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution! For vLLM & SGLang, please ensure that your recipes is similar to the official vLLM recipes and/or the SGLang cookbook

If it is not, please create a PR first before we can merge your PR into the master branch. Let's ensure that the documentation is first class such that the entire ML community can benefit from your hard work! Thank you

PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. If re-running failed jobs is attempted, PR authors are responsible for ensuring it passes. See GitHub's docs on re-running failed jobs: https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow

As a rule of thumb, generally, PR authors should request a review & get a PR approval from the respective companies' CODEOWNERS before requesting a review from core maintainers.

If additional help is needed, PR authors can reach out to core maintainers over Slack.

@functionstackx
functionstackx force-pushed the claude/dsv4-fp4-b200-vllm-v0.20.0 branch from 1872f6c to f28dfcc Compare April 28, 2026 01:29
functionstackx added a commit that referenced this pull request Apr 28, 2026
Per AGENTS.md ("Updating Docker Images"), image bumps and recipe
changes need a perf-changelog entry to trigger the affected configs'
benchmarks and record the change. Adds the entry for #1204:
v0.20.0-x86_64-cu130-ubuntu2404 image, DeepGEMM install step,
new compilation-config / use_fp4_indexer_cache=True / deep_gemm_mega_moe
launch flags.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
functionstackx added a commit that referenced this pull request Apr 28, 2026
CI failed in PR #1204 with "git: command not found" because the
v0.20.0 vllm image (vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404)
doesn't ship git, but install_deepgemm.sh git-clones the DeepGEMM
repo. Install git via apt-get before invoking the script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
functionstackx added a commit that referenced this pull request Apr 28, 2026
Same fix as PR #1204: the v0.20.0 vllm image
(vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404) doesn't ship git,
but install_deepgemm.sh git-clones the DeepGEMM repo. Install git via
apt-get before invoking the script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@functionstackx

Copy link
Copy Markdown
Collaborator Author

talked to vllm maintainer esmeetu and he said that deepgemm extra install only needed for pip wheels and docker already has deepgemm megamoes kernels

image

@functionstackx

Copy link
Copy Markdown
Collaborator Author

functionstackx added a commit that referenced this pull request Apr 28, 2026
Per AGENTS.md ("Updating Docker Images"), image bumps and recipe
changes need a perf-changelog entry to trigger the affected configs'
benchmarks and record the change. Adds the entry for #1204:
v0.20.0-x86_64-cu130-ubuntu2404 image, DeepGEMM install step,
new compilation-config / use_fp4_indexer_cache=True / deep_gemm_mega_moe
launch flags.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
functionstackx added a commit that referenced this pull request Apr 28, 2026
CI failed in PR #1204 with "git: command not found" because the
v0.20.0 vllm image (vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404)
doesn't ship git, but install_deepgemm.sh git-clones the DeepGEMM
repo. Install git via apt-get before invoking the script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@functionstackx
functionstackx force-pushed the claude/dsv4-fp4-b200-vllm-v0.20.0 branch from dfb4304 to cb08406 Compare April 28, 2026 06:28
Comment thread benchmarks/single_node/dsv4_fp4_b200_vllm.sh Outdated
Comment thread benchmarks/single_node/dsv4_fp4_b200_vllm.sh
functionstackx added a commit that referenced this pull request Apr 28, 2026
Per AGENTS.md ("Updating Docker Images"), image bumps and recipe
changes need a perf-changelog entry to trigger the affected configs'
benchmarks and record the change. Adds the entry for #1204:
v0.20.0-x86_64-cu130-ubuntu2404 image, DeepGEMM install step,
new compilation-config / use_fp4_indexer_cache=True / deep_gemm_mega_moe
launch flags.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
functionstackx added a commit that referenced this pull request Apr 28, 2026
CI failed in PR #1204 with "git: command not found" because the
v0.20.0 vllm image (vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404)
doesn't ship git, but install_deepgemm.sh git-clones the DeepGEMM
repo. Install git via apt-get before invoking the script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@functionstackx
functionstackx force-pushed the claude/dsv4-fp4-b200-vllm-v0.20.0 branch from 44f5885 to 5e68e64 Compare April 28, 2026 18:50
@functionstackx

Copy link
Copy Markdown
Collaborator Author
image image

Pin the image to vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404 (in
place of the floating deepseekv4-cu130 tag) and install DeepGEMM from
the v0.20.0 tools script before launching the engine.

Update launch flags per the v0.20.0 DeepSeek-V4-Pro recipe:
- compilation-config -> {"mode": 0, "cudagraph_mode": "FULL_DECODE_ONLY"}
- --attention_config.use_fp4_indexer_cache=True (= form)
- add --moe-backend deep_gemm_mega_moe
- drop --pipeline-parallel-size 1, --no-enable-prefix-caching, and
  --max-cudagraph-capture-size 2048 (no longer in the recipe)

PARALLEL_ARGS, EP_ARGS, and GMU_ARGS are preserved so DP_ATTENTION /
EP_SIZE branching keeps working across the existing search-space
entries.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
functionstackx and others added 10 commits April 28, 2026 18:34
Restore the prefix-caching disable that the previous launch had,
matching the other vLLM B200 benchmark scripts (gptoss, minimaxm2.5)
so cross-request cache hits don't skew steady-state throughput.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per AGENTS.md ("Updating Docker Images"), image bumps and recipe
changes need a perf-changelog entry to trigger the affected configs'
benchmarks and record the change. Adds the entry for #1204:
v0.20.0-x86_64-cu130-ubuntu2404 image, DeepGEMM install step,
new compilation-config / use_fp4_indexer_cache=True / deep_gemm_mega_moe
launch flags.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move --moe-backend deep_gemm_mega_moe into EP_ARGS so it only takes
effect when expert parallelism is enabled (EP_SIZE>1). The
deep_gemm_mega_moe backend isn't applicable in TP-only configs, so
applying it unconditionally changed behavior for the small-batch
TP-only search-space entries.

Update the perf-changelog entry to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI failed in PR #1204 with "git: command not found" because the
v0.20.0 vllm image (vllm/vllm-openai:v0.20.0-x86_64-cu130-ubuntu2404)
doesn't ship git, but install_deepgemm.sh git-clones the DeepGEMM
repo. Install git via apt-get before invoking the script.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The slim x86_64-cu130-ubuntu2404 tag ships without git and without
CUDA library dev headers, which made install_deepgemm.sh fail twice
(first on git, then on cusparse.h while compiling DeepGEMM's torch
extension).

Switch to the canonical vllm/vllm-openai:v0.20.0-cu130 tag, which
includes the dev tooling needed to compile torch extensions, and drop
the workaround apt-get-install-git step.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The canonical vllm/vllm-openai:v0.20.0-cu130 image already ships with
DeepGEMM, so installing it from source at benchmark time is redundant
(and was the root of the recent CI failures: missing git, then missing
cusparse.h dev headers when building DeepGEMM's torch extension).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per the vLLM v0.20.0 DeepSeek-V4-Pro recipe, the cudagraph mode and
the MoE backend differ between the TP-only / TP+EP path and the
DP-attn + EP path. Move --moe-backend deep_gemm_mega_moe out of
EP_ARGS (it doesn't apply to plain TP+EP) and gate it together with
the cudagraph mode on DP_ATTENTION:

- DP_ATTENTION=false (TP-only or TP+EP):
    --compilation-config '{"mode": 0, "cudagraph_mode": "FULL_DECODE_ONLY"}'
    no --moe-backend flag (default MoE backend)
- DP_ATTENTION=true (DP-attn + EP):
    --compilation-config '{"cudagraph_mode":"FULL_AND_PIECEWISE", "custom_ops":["all"]}'
    --moe-backend deep_gemm_mega_moe

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…NC>=256

Per the v0.20.0 vLLM DeepSeek-V4-Pro recipe:
- All configs share --compilation-config
  {"cudagraph_mode":"FULL_AND_PIECEWISE","custom_ops":["all"]}.
- --moe-backend deep_gemm_mega_moe and --gpu-memory-utilization 0.85
  only apply on the high-throughput DP-attn band: DP_ATTENTION=true
  AND CONC>=256.

In the current search space, this means (8k1k) DP-attn entries at
CONC 64/128 no longer get mega_moe / GMU=0.85 — only CONC>=256 does.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Revert the extra concurrency check — gate --moe-backend deep_gemm_mega_moe
and --gpu-memory-utilization 0.85 on DP_ATTENTION=true alone. All DP-attn
search-space entries now get the mega_moe + lower-GMU treatment, including
the 8k1k DP-attn band at CONC 64/128.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Restore the --max-cudagraph-capture-size 2048 launch flag that was
dropped during the v0.20.0 sweep. Capture size still drives the upper
bound of the cudagraph batch sweep at high concurrency, so leaving it
out reduces graph coverage at the top of the search space.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@functionstackx
functionstackx force-pushed the claude/dsv4-fp4-b200-vllm-v0.20.0 branch from bd8dd21 to 9d0bf73 Compare April 28, 2026 22:35
@functionstackx
functionstackx merged commit 0659613 into main Apr 28, 2026
17 checks passed
@functionstackx
functionstackx deleted the claude/dsv4-fp4-b200-vllm-v0.20.0 branch April 28, 2026 22:46
@claude claude Bot mentioned this pull request Apr 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants