Conversation
|
Thanks for the contribution!
中文感谢你的贡献!
|
|
Claude finished @xinli-sw's task in 3m 15s —— View job Review of PR #3393
Summary: One 🔴 blocking issue, posted inline on Everything else checks out: the image is a public Docker Hub tag, |
| 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 |
There was a problem hiding this comment.
🔴 BLOCKING: This gate also fires on GB200 and GB300, which are not part of this PR.
Why it matters: dsv41flash_fp4_gb200_vllm_mtp.sh, dsv41flash_fp4_gb300_vllm_mtp.sh and dsv41flash_fp4_h200_vllm_mtp.sh are symlinks to this file. The GB200 arm (256 GiB per GPU, nightly-cd10ed6f, 2026-09-15) and the GB300 arm (277 GiB per GPU, nightly-af1c0149, 2026-09-16) both clear GPU_MEM_MIB >= 150000, and both run TP2 and TP4, so every one of their points now gets --attention-config {...DSV41...,"indexer_sparse_logits":true} --kv-cache-dtype fp8. The PR description says these settings need the 2026-09-22 nightly; on the older images an unknown backend name or indexer_sparse_logits key would fail at argument parsing, and even if they happen to parse, the GB200/GB300 recipes change without a perf-changelog.yaml entry (only dsv41flash-fp4-b200-vllm-agentic-dspark is listed). I could not confirm the flag availability at cd10ed6f/af1c0149 from this sandbox (no network, source MCP server timed out), so please treat the crash as unverified but the scope leak as certain.
Fix: Gate on a launcher-exported variable, the same way this script already handles VLLM_SAFETENSORS_LOAD_STRATEGY, and export it only from runners/launch_b200-nscale-slurm.sh next to the new VLLM_ENGINE_READY_TIMEOUT_S line:
| 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 | |
| ATTENTION_ARGS=() | |
| if [[ "${DSV41_BLACKWELL_SPARSE_INDEXER:-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 |
and in runners/launch_b200-nscale-slurm.sh inside the MODEL_PREFIX == "dsv41flash" block:
export DSV41_BLACKWELL_SPARSE_INDEXER=1(Update the comment on lines 80-82 accordingly; it currently only mentions excluding H200.) If the intent really is to roll these settings out to GB200/GB300 as well, those images need bumping to a nightly that carries them and the changelog needs entries for both config keys.
There was a problem hiding this comment.
Beyond the inline finding, I also checked the new ATTENTION_ARGS block and the VLLM_ENGINE_READY_TIMEOUT_S export against the repo's bash conventions (no ${VAR:-default} fallbacks, required vars validated via check_env_vars) — both comply: GPU_MEM_MIB/TP feed off already-validated/derived values and the timeout is an explicit assignment. I also looked for a model.container field to cross-check against the bumped image, but single-node recipes in this config don't carry one, so that convention doesn't apply here.
Extended reasoning...
The diff bumps a pinned vLLM nightly image and adds a GPU-memory-gated sparse-indexer attention block shared by benchmarks/single_node/agentic/dsv41flash_fp4_vllm_mtp.sh, plus a longer engine-ready timeout in runners/launch_b200-nscale-slurm.sh and the matching perf-changelog entry; no auth/crypto surface is touched. The confirmed inline finding (GB200/GB300 vllm configs, pinned to different older images per configs/nvidia-master.yaml, silently inherit the new untested attention backend via the shared script and its >=150000 MiB gate) is significant enough that a human should weigh in before merge. I additionally checked the new code against the repo's bash conventions (no default-fallback env vars, explicit timeout assignment) and found no violations, which I'm noting here rather than repeating the inline comment.
| 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 |
There was a problem hiding this comment.
🔴 GB200/GB300 agentic runs pick up the new sparse-indexer attention flags via this shared script, even though those images weren't bumped for it. The GPU_MEM_MIB>=150000 gate at line 84 also fires for gb200-nv (256GB) and gb300-nv (277GB), since dsv41flash_fp4_gb200_vllm_mtp.sh and dsv41flash_fp4_gb300_vllm_mtp.sh are symlinks to this file. But configs/nvidia-master.yaml leaves their images unchanged: gb200 stays on nightly-cd10ed6f9f6b37a8ace9cf380007e66fe12ec0c3 (the exact build b200 is moving off in this PR) and gb300 on nightly-af1c01499b289be555c475669ba50a88e96d846e. If either predates the new FLASHINFER_MLA_SPARSE_DSV41/FLASHMLA_MEGA_ATTN_DSV41 backends, vllm serve rejects --attention-config on the next gb200/gb300 sweep. …
Why this was flagged
…Fix: gate ATTENTION_ARGS on the vLLM image/version that actually ships the backend, not on GPU memory alone, or bump gb200/gb300 images together with b200.
dsv41flash_fp4_gb200_vllm_mtp.sh and dsv41flash_fp4_gb300_vllm_mtp.sh are symlinks to dsv41flash_fp4_vllm_mtp.sh (verified via ls -la), so the new ATTENTION_ARGS block (lines 83-91) runs for them too. Its only gate is GPU_MEM_MIB>=150000 at line 84, true for GB200 (256GB) and GB300 (277GB) per the script's own comments at lines 50-51. configs/nvidia-master.yaml:8093 pins gb200-vllm-agentic-dspark to nightly-cd10ed6f9f6b37a8ace9cf380007e66fe12ec0c3, unbumped by this PR and identical to b200's pre-bump image; gb300 (line 8196) stays on nightly-af1c01499b289be555c475669ba50a88e96d846e, also untouched. On base, this script never passed --attention-config, so gb200/gb300 ran unaffected; now, if either nightly lacks the new backend keys, vllm serve fails to start for those SKUs on the next sweep.
Verification: Severity: normal. The gb200/gb300 agentic vLLM arms regress because the shared script now injects new attention flags onto their un-bumped images. Structural chain (all verified): - dsv41flash_fp4_gb200_vllm_mtp.sh and dsv41flash_fp4_gb300_vllm_mtp.sh are symlinks to dsv41flash_fp4_vllm_mtp.sh (ls -la: both "-> dsv41flash_fp4_vllm_mtp.sh"). So the new block added by the diff at lines 83-91…
|
View unofficial run (performance): https://inferencex.semianalysis.com/inference?unofficialRun=36084674808 View unofficial run (accuracy): https://inferencex.semianalysis.com/evaluation?unofficialRun=36084674808 |
|
As a PR reviewer and CODEOWNER, I have reviewed this and have:
Additional detail section:
Signed: |
✅✅✅ Verdict: PASS ✅✅✅Passed and not applicable checks✅ Check 0 (CODEOWNER): PASS — ✅ Check 1 (Passing sweep on in-PR commit): PASS — PR head ✅ Check 2 (Evals pass): PASS — eval artifact ✅ Check 3 (Recipe linked, merged, complete): PASS — published DeepSeek-V4.1-Flash recipe (vllm-project/recipes ✅ Check 4 (Reuse command): PASS — ✅ Check 5 (Latest checklist template): PASS — all 17 items (including the merged-upstream sub-item) of the current ✅ Check 6 (Upstream images, engine-first): PASS — ✅ Check 7 (No deprecated models/scenarios): PASS — ✅ Check 8 (No architecture hacks): PASS — no ✅ Check 9 (Spec-decode via chat template): PASS — the AgentX replay client in ✅ Check 10 (No engine patches): PASS — the diff adds only launch flags and launcher env vars; no patch files, heredoc rewrites, site-packages edits, or wheel installs. ✅ Check 11 (Agentic golden AL): PASS — performance ➖ Check 12 (Append-only): N/A — the new ✅ Check 13 (Draft runs as shipped): PASS — the draft is the embedded three-stage DSpark head ( ✅ Check 14 (Pareto coverage): PASS — one affected curve, Assessed commit: |
27126ca to
d806a95
Compare
更新 B200 DeepSeek-V4.1-Flash vLLM nightly 配方,并在 TP2 和 TP4 使用 FlashInfer 稀疏注意力。
58aa0a8 to
28647c9
Compare
|
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 |
…LLM nightly-0961bbae with FlashInfer sparse indexer + fp8 KV Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Closing in favor of #3459, which ports this PR onto the srt-slurm recipe that #3428 switched |
Pin the B200 DeepSeek-V4.1-Flash AgentX configuration to the upstream vLLM image
vllm/vllm-openai:nightly-0961bbae2894d574be790d219651824eb199318e.This enables the published Blackwell sparse-indexer configuration on B200 only: TP2 uses
FLASHINFER_MLA_SPARSE_DSV41, TP4 usesFLASHMLA_MEGA_ATTN_DSV41, indexer KV uses MXFP4, and the target/draft KV cache uses FP8. The launcher supplies the B200-specific opt-in and a 7200-second engine-readiness timeout, so the shared H200, GB200, and GB300 script paths remain unchanged.The vLLM tracking issue and published upstream recipe document these settings.
Validation
27126ca4fa42f301782ce5a4be4c20802f1da50b.0.9780136467andn_eff=1319.AI model disclosure
中文
将 B200 DeepSeek-V4.1-Flash AgentX 配置固定到上游 vLLM 镜像
vllm/vllm-openai:nightly-0961bbae2894d574be790d219651824eb199318e。此变更仅在 B200 上启用已发布的 Blackwell 稀疏索引器配置:TP2 使用
FLASHINFER_MLA_SPARSE_DSV41,TP4 使用FLASHMLA_MEGA_ATTN_DSV41,索引器 KV 使用 MXFP4,目标模型与草稿模型的 KV 缓存使用 FP8。启动脚本传入仅适用于 B200 的显式开关和 7200 秒引擎就绪超时,因此共享脚本中的 H200、GB200 和 GB300 路径保持不变。相关参数见 vLLM 跟踪问题和已发布的上游配方。
验证
27126ca4fa42f301782ce5a4be4c20802f1da50b上通过。0.9780136467,n_eff=1319。AI 模型披露