Skip to content

Update GB300 DeepSeek V4.1 Flash vLLM nightly / 更新 GB300 DeepSeek V4.1 Flash vLLM nightly - #3396

Draft
xinli-sw wants to merge 1 commit into
mainfrom
config/dsv41flash-gb300-vllm-nightly
Draft

xinli-sw wants to merge 1 commit into
mainfrom
config/dsv41flash-gb300-vllm-nightly

Conversation

@xinli-sw

@xinli-sw xinli-sw commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Pin GB300 DeepSeek-V4.1-Flash vLLM to nightly ddd6fbca148a867aad1fcab7ec72f582b9977db4 on the native srt-slurm AgentX recipe. Use FlashInfer sparse attention at TP2 and TP4 with MXFP4 indexer KV, sparse logits, fp8 KV cache, and Engram CPU offload. Topology and concurrency remain unchanged. Shared TP2 and TP4 points now use B300's batching and CUDA graph tiers; GB300's extra TP2 c1 point retains its existing settings.

中文

在原生 srt-slurm AgentX 配方中,将 GB300 DeepSeek-V4.1-Flash vLLM 固定到 nightly ddd6fbca148a867aad1fcab7ec72f582b9977db4。TP2 和 TP4 均使用 FlashInfer 稀疏注意力,并启用 MXFP4 索引器 KV、稀疏 logits、fp8 KV 缓存及 Engram CPU 卸载。 拓扑与并发设置不变。共有的 TP2 和 TP4 测试点现采用 B300 的批处理与 CUDA graph 档位;GB300 独有的 TP2 c1 测试点保持原设置。

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps only run on labeled PRs. Add full-sweep-fail-fast (strongly recommended); use full-sweep-enabled only when matrix jobs should continue after a failure.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**扫描仅在带有标签的 PR 上运行。强烈建议添加 full-sweep-fail-fast;仅当需要矩阵任务在失败后继续运行时才使用 full-sweep-enabled。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

@xinli-sw
xinli-sw marked this pull request as ready for review September 23, 2026 17:53
@xinli-sw
xinli-sw requested a review from a team September 23, 2026 17:53
@claude

claude Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @xinli-sw's task in 4m 3s —— View job


Review of PR #3396

  • Gather context (diff, changed files, repo guidelines)
  • Review benchmarks/single_node/agentic/dsv41flash_fp4_vllm_mtp.sh changes
  • Validate configs/nvidia-master.yaml image and perf-changelog.yaml entry position
  • Post review

One 🔴 BLOCKING issue (inline on benchmarks/single_node/agentic/dsv41flash_fp4_vllm_mtp.sh:80-91): the new --attention-config / --kv-cache-dtype fp8 block is gated on GPU_MEM_MIB >= 150000, but dsv41flash_fp4_b200_vllm_mtp.sh and dsv41flash_fp4_gb200_vllm_mtp.sh are symlinks to this shared script and both SKUs clear that threshold. The B200 and GB200 vLLM arms remain pinned to nightly-cd10ed6f (2026-09-15), which predates the "merged Blackwell sparse indexer settings" this PR targets, so they would likely fail at vllm serve argument parsing. Even if the older nightly accepted the flags, their recipes change without a perf-changelog.yaml entry for those config keys. Suggested fix: opt in via an env var exported from runners/launch_gb300-nv.sh (same pattern as VLLM_SAFETENSORS_LOAD_STRATEGY), or re-pin B200/GB200 and document them in the changelog. Fix this →

Other checks passed: configs/nvidia-master.yaml and perf-changelog.yaml are edited together, the new changelog entry is appended at the tail of the file, the image is a public Docker Hub tag, and the TP2/TP4 backend selection matches the PR description. Note that I could not reach the upstream vLLM source or tracking issue from this session (network fetches were not permitted), so the claim that cd10ed6f lacks the new keys is inferred from the PR description and the pin dates rather than verified against the code.
· Branch

Comment on lines +80 to +91
# Sparse indexer logits are opt-in in the upstream Blackwell recipe. This
# shared script also serves H200, where these SM100 backends are unsupported.
# TP2 uses FlashInfer; TP4 uses MegaAttention. fp8 resolves backend KV layout.
ATTENTION_ARGS=()
if (( GPU_MEM_MIB >= 150000 )); then
if (( TP == 2 )); then
ATTENTION_CONFIG='{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
else
ATTENTION_CONFIG='{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
fi
ATTENTION_ARGS=(--attention-config "$ATTENTION_CONFIG" --kv-cache-dtype fp8)
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 BLOCKING: This gate is not GB300-specific. dsv41flash_fp4_b200_vllm_mtp.sh and dsv41flash_fp4_gb200_vllm_mtp.sh are symlinks to this file, and both B200 (~183 GB) and GB200 pass GPU_MEM_MIB >= 150000, so dsv41flash-fp4-b200-vllm-agentic-dspark and dsv41flash-fp4-gb200-vllm-agentic-dspark also start receiving --attention-config {FLASHINFER_MLA_SPARSE_DSV41 | FLASHMLA_MEGA_ATTN_DSV41, indexer_kv_dtype=mxfp4, indexer_sparse_logits=true} --kv-cache-dtype fp8. The comment above only accounts for H200.

Why it matters: Those two arms stay pinned to vllm/vllm-openai:nightly-cd10ed6f (2026-09-15), while the PR describes these as newly merged Blackwell settings landing in the 2026-09-22 nightly. vLLM's AttentionConfig rejects unknown keys and resolves backend through the AttentionBackendEnum name, so an older image that lacks indexer_sparse_logits, the mxfp4 indexer dtype, or the *_DSV41 backend names fails at vllm serve argument parsing and the whole B200/GB200 grid goes red. Even if the old nightly did accept them, this silently changes the B200/GB200 recipe (fp8 KV cache, MXFP4 indexer KV, different attention backends) while perf-changelog.yaml only lists the GB300 config key, which violates the AGENTS.md rule that every perf-affecting recipe change needs a changelog entry for the affected configs. (I could not reach the upstream vLLM source from this session to confirm which nightly introduced the keys, so please verify against cd10ed6f if you intend to keep the memory gate.)

Fix: Opt in from the GB300 launcher instead of inferring from GPU memory, following the existing VLLM_SAFETENSORS_LOAD_STRATEGY pattern in this script. Add export DSV41_SPARSE_INDEXER_LOGITS=1 next to export VLLM_ENGINE_READY_TIMEOUT_S=7200 in runners/launch_gb300-nv.sh (line 130), and gate here on that variable:

Suggested change
# Sparse indexer logits are opt-in in the upstream Blackwell recipe. This
# shared script also serves H200, where these SM100 backends are unsupported.
# TP2 uses FlashInfer; TP4 uses MegaAttention. fp8 resolves backend KV layout.
ATTENTION_ARGS=()
if (( GPU_MEM_MIB >= 150000 )); then
if (( TP == 2 )); then
ATTENTION_CONFIG='{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
else
ATTENTION_CONFIG='{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
fi
ATTENTION_ARGS=(--attention-config "$ATTENTION_CONFIG" --kv-cache-dtype fp8)
fi
# Sparse indexer logits are opt-in in the upstream Blackwell recipe. This
# shared script also serves H200, B200 and GB200; H200 lacks these SM100
# backends and the B200/GB200 arms pin an older nightly, so the GB300
# launcher opts in explicitly via DSV41_SPARSE_INDEXER_LOGITS=1.
# TP2 uses FlashInfer; TP4 uses MegaAttention. fp8 resolves backend KV layout.
ATTENTION_ARGS=()
if [[ "${DSV41_SPARSE_INDEXER_LOGITS:-0}" == "1" ]]; then
if (( TP == 2 )); then
ATTENTION_CONFIG='{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
else
ATTENTION_CONFIG='{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
fi
ATTENTION_ARGS=(--attention-config "$ATTENTION_CONFIG" --kv-cache-dtype fp8)
fi

Alternatively, if the intent is for B200 and GB200 to adopt the same settings, re-pin both to nightly-0961bbae in configs/nvidia-master.yaml and add their config keys and the recipe change to the perf-changelog.yaml entry.

Comment on lines +83 to +90
ATTENTION_ARGS=()
if (( GPU_MEM_MIB >= 150000 )); then
if (( TP == 2 )); then
ATTENTION_CONFIG='{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
else
ATTENTION_CONFIG='{"backend":"FLASHMLA_MEGA_ATTN_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}'
fi
ATTENTION_ARGS=(--attention-config "$ATTENTION_CONFIG" --kv-cache-dtype fp8)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 This script is symlinked to by dsv41flash_fp4_b200_vllm_mtp.sh and dsv41flash_fp4_gb200_vllm_mtp.sh too, so the new ATTENTION_ARGS block also fires for those arms, not just GB300. GPU_MEM_MIB>=150000 is true on B200 (180GB) and GB200 (256GB) as well as GB300, but only the gb300-vllm-agentic-dspark image was bumped; b200 and gb200 still pin vllm/vllm-openai:nightly-cd10ed6f9f6b37a8ace9cf380007e66fe12ec0c3, the same build documented as lacking these SM100 sparse-indexer backends on H200. Passing --attention-config with FLASHINFER_MLA_SPARSE_DSV41/FLASHMLA_MEGA_ATTN_DSV41 and --kv-cache-dtype fp8 to that older image will likely fail vllm serve startup, breaking the b200 and gb200 agentic-coding benchmark runs. …

Why this was flagged

…Fix: gate ATTENTION_ARGS on the image/nightly actually shipping this feature (e.g. per-config-key or image-tag check), not solely on GPU_MEM_MIB, and add matching perf-changelog entries if those arms' behavior does change too.

dsv41flash_fp4_b200_vllm_mtp.sh and dsv41flash_fp4_gb200_vllm_mtp.sh are symlinks to this file (benchmarks/single_node/agentic/dsv41flash_fp4_vllm_mtp.sh), confirmed via ls -la showing both -> dsv41flash_fp4_vllm_mtp.sh. Their configs (configs/nvidia-master.yaml lines ~8092 and ~8155, dsv41flash-fp4-gb200-vllm-agentic-dspark and dsv41flash-fp4-b200-vllm-agentic-dspark) still use image vllm/vllm-openai:nightly-cd10ed6f9f6b37a8ace9cf380007e66fe12ec0c3, unchanged by this diff. Both are Blackwell so GPU_MEM_MIB>=150000 at line 84 is true, so the new --attention-config/--kv-cache-dtype fp8 args at line 90 get added to their vllm serve invocation. The PR/changelog only pins and documents this feature for dsv41flash-fp4-gb300-vllm-agentic-dspark on the new nightly-0961bbae image; the older shared nightly is the same one the script's own comment says lacks SM100…

Verification: normal. The new block at benchmarks/single_node/agentic/dsv41flash_fp4_vllm_mtp.sh:83-91 is gated only on hardware memory (if (( GPU_MEM_MIB >= 150000 ))), and GPU_MEM_MIB comes from nvidia-smi --query-gpu=memory.total (line 59). The script's own comment at line 51 enumerates the Blackwell arms sharing this file — "B200 180 GB, GB200 256 GB, GB300 277 GB" — all far above 150000 MiB; the…

@xinli-sw
xinli-sw marked this pull request as draft September 24, 2026 15:54
@github-actions

github-actions Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

@xinli-sw
xinli-sw force-pushed the config/dsv41flash-gb300-vllm-nightly branch 3 times, most recently from 3494e65 to b4fa176 Compare September 25, 2026 02:03
@functionstackx

Copy link
Copy Markdown
Collaborator

InferenceX has switched away from unmaintainable bash scripts to YAML files that don't repeat the same stuff over and over again. Please merge the latest main into this PR: we have migrated single-node AgentX onto native srt-slurm (#3428), so AgentX configs are now declarative YAML recipes, not per-config 1000+ line bash slop scripts. Please also delete the old benchmarks/single_node/** scripts (see this recipe for the new format).

@xinli-sw
xinli-sw force-pushed the config/dsv41flash-gb300-vllm-nightly branch 3 times, most recently from 1456b41 to 5e51844 Compare September 27, 2026 22:08
将 GB300 的批处理与 CUDA graph 档位对齐 B300,并保留 GB300 独有的 TP2 c1 设置。
@xinli-sw
xinli-sw force-pushed the config/dsv41flash-gb300-vllm-nightly branch from 5e51844 to 70cf20f Compare September 27, 2026 22:11

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants