Skip to content

Add DSV4 B200 Dynamo+SGLang AgentX configs with default optimizations / 新增采用默认优化的 DSV4 B200 Dynamo+SGLang AgentX 配置 - #3356

Open
nvpohanh wants to merge 3 commits into
mainfrom
dsv4-b200-agentx-default-envs-v2
Open

nvpohanh wants to merge 3 commits into
mainfrom
dsv4-b200-agentx-default-envs-v2

Conversation

@nvpohanh

Copy link
Copy Markdown
Collaborator

Summary

  • Add six DeepSeek-V4-Pro-0813 B200 Dynamo+SGLang AgentX configurations: aggregate TP8 at concurrency 1/4/8, 1P1D DEP8/DEP8 at concurrency 64/128, and 2P1D DEP8/DEP8 at concurrency 256.
  • Preserve the tuning qualified in Add DSV4 B200 Dynamo+SGLang AgentX configs / 添加 DSV4 B200 Dynamo+SGLang AgentX 配置 #3257 while removing five unnecessary SGLang environment overrides: SGLANG_OPT_USE_JIT_NORM, SGLANG_OPT_USE_TOPK_V2, SGLANG_OPT_SWA_SPLIT_LEAF_ON_INSERT, SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS, and SGLANG_OPT_USE_CUSTOM_ALL_REDUCE_V2.
  • Use InferenceX automatic golden acceptance-length selection instead of hard-coded synthetic acceptance settings, and keep the existing runner UV installation path unchanged.
  • Resolve the exact DeepSeek-V4-Pro-0813 checkpoint alias on the B200 Nscale native srt-slurm path.

This supersedes #3257 with a clean branch rebased on current main.

Validation

  • YAML parsing for the master config, changelog, and all six recipes
  • bash -n runners/launch_b200-nscale-slurm.sh
  • Exact-key matrix generation for both aggregate and disaggregated config keys (3 points each)
  • Pinned srt-slurm v2.2.1 srtctl migrate --verify over all six recipes: 6 identical, 0 mismatched, 0 skipped, 0 unreadable
  • Structured comparison against Add DSV4 B200 Dynamo+SGLang AgentX configs / 添加 DSV4 B200 Dynamo+SGLang AgentX 配置 #3257 confirms the six recipes differ only by removal of the five environment keys listed above

AI model disclosure

OpenAI GPT-5 (Codex) prepared the branch, validation, and PR description. No delegated agents were used.

中文

摘要

  • 新增六个 DeepSeek-V4-Pro-0813 B200 Dynamo+SGLang AgentX 配置:聚合 TP8 并发 1/4/8、1P1D DEP8/DEP8 并发 64/128,以及 2P1D DEP8/DEP8 并发 256。
  • 保留 Add DSV4 B200 Dynamo+SGLang AgentX configs / 添加 DSV4 B200 Dynamo+SGLang AgentX 配置 #3257 中已验证的调优,同时删除五个不需要的 SGLang 环境变量覆盖:SGLANG_OPT_USE_JIT_NORMSGLANG_OPT_USE_TOPK_V2SGLANG_OPT_SWA_SPLIT_LEAF_ON_INSERTSGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTSSGLANG_OPT_USE_CUSTOM_ALL_REDUCE_V2
  • 使用 InferenceX 自动黄金接受长度选择,不再硬编码 synthetic acceptance 设置;现有 runner UV 安装路径保持不变。
  • 在 B200 Nscale 原生 srt-slurm 路径中解析准确的 DeepSeek-V4-Pro-0813 检查点别名。

此 PR 使用基于最新 main 的干净分支取代 #3257

验证

  • master config、changelog 以及六个配方的 YAML 解析
  • bash -n runners/launch_b200-nscale-slurm.sh
  • 聚合与解耦配置键的精确矩阵生成(各 3 个数据点)
  • 使用固定 srt-slurm v2.2.1 对六个配方运行 srtctl migrate --verify:6 个一致,0 个不匹配,0 个跳过,0 个不可读
  • Add DSV4 B200 Dynamo+SGLang AgentX configs / 添加 DSV4 B200 Dynamo+SGLang AgentX 配置 #3257 做结构化比较,确认六个配方仅删除上述五个环境变量键

AI 模型披露

OpenAI GPT-5(Codex)用于准备分支、验证及 PR 描述。未使用委派代理。

新增 B200 Dynamo+SGLang AgentX 配方,并依赖固定 SGLang 镜像的默认优化设置。
@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 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明

补充 DSV4 B200 AgentX 配方的上游 PR 链接。

@claude claude Bot left a comment

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.

Findings marked 🟡 are optional suggestions and need no follow-up push.

Comment thread perf-changelog.yaml Outdated
- "Rely on the pinned SGLang image's defaults for JIT norm, Top-K v2, SWA leaf splitting, unified-cache out-of-window reclamation, and custom all-reduce v2 instead of overriding them in the recipes."
- "新增 B200 Dynamo+SGLang AgentX TP8 聚合式 HiCache 配方,并发为 1、4、8;使用 lmsysorg/sglang:nightly-dev-20260916-c9a8fba9、检查点内置 DSpark K=6、整节点 CPU/DRAM 分配,以及按数据点设置的请求数/CUDA graph 上限。"
- "依赖固定 SGLang 镜像对 JIT norm、Top-K v2、SWA leaf splitting、unified-cache 窗口外槽位回收和 custom all-reduce v2 的默认行为,不在配方中覆盖这些设置。"
pr-link: TBD

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.

🔴 Both new changelog entries use pr-link: TBD (lines 8600 and 8611) instead of the required XXX placeholder, so the changelog gate CI will reject this PR. validate_added_pr_link in infx/workflows/validate_perf_changelog.py:134-145 only accepts PR_LINK_PLACEHOLDERS = {"XXX", ".../pull/XXX"} or the exact https://github.com/SemiAnalysisAI/InferenceX/pull/<PR#> URL; "TBD" matches neither, so validate_added_pr_link raises ChangelogValidationError("new PR entry must use ... or an XXX placeholder; found 'TBD'"). …

Why this was flagged

…Fix: replace both pr-link: TBD occurrences with pr-link: XXX so infx.workflows.validate_perf_changelog (run in .github/workflows/run-sweep.yml:117-125) and the later PR-number substitution in infx/workflows/prepare_perf_changelog_merge.py pass, covering both new entries at perf-changelog.yaml:8600 and perf-changelog.yaml:8611.

The trigger is CI running infx.workflows.validate_perf_changelog (invoked from .github/workflows/run-sweep.yml:117-125, 'Validate perf-changelog matrix') on this PR's diff of perf-changelog.yaml. validate_added_pr_link (infx/workflows/validate_perf_changelog.py:134-145) is called for each appended entry with its pr-link string. It checks CANONICAL_PR_LINK regex or membership in PR_LINK_PLACEHOLDERS = {"XXX", "https://github.com/SemiAnalysisAI/InferenceX/pull/XXX"} (lines 20-24). 'TBD' is neither, so it raises ChangelogValidationError with message "new PR entry must use 'https://github.com/SemiAnalysisAI/InferenceX/pull/' or an XXX placeholder; found 'TBD'", failing the workflow that main() (line 336) turns into exit code 1. On base main, entries follow…

Verification: normal (mechanism corrected) — Both new appended entries end with pr-link: TBD (the added block at perf-changelog.yaml:8587+, agg entry ~line 8600 and disagg entry ~line 8611). The repo convention/tooling requires the literal XXX placeholder until the PR exists (CONTRIBUTING.md:180; .github/workflows/claude.yml:235). "TBD" is not accepted: PR_LINK_PLACEHOLDERS = {"XXX",… | Severity:…

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

[by Codex] Addressed before the sweep: both changelog entries now use the exact PR URL for #3356, which satisfies the validator.\n\n

中文\n\n已在触发扫描前处理:两个 changelog 条目现均使用 #3356 的准确 PR URL,符合校验器要求。\n\n

Comment thread perf-changelog.yaml Outdated
- "Use automatic golden acceptance-length selection and rely on the pinned SGLang image's defaults for SWA leaf splitting, unified-cache out-of-window reclamation, and custom all-reduce v2."
- "新增 B200 Dynamo+SGLang AgentX DEP8/DEP8 HiCache 配方:1P1D 并发 64、128,以及 2P1D 并发 256;decode max-running-requests 分别限制为 128、256、512;1P1D 的 decode swa-full-tokens-ratio 为 0.01,2P1D c256 为 0.005 且 memory fraction 为 0.91。"
- "使用自动黄金接受长度选择,并依赖固定 SGLang 镜像对 SWA leaf splitting、unified-cache 窗口外槽位回收和 custom all-reduce v2 的默认行为。"
pr-link: TBD

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.

🟡 (optional) The new perf-changelog entry for dsv4-fp4-b200-dynamo-sglang-agentic-disagg misstates the tuned decode value: it says "decode swa-full-tokens-ratio 0.01 for 1P1D" but the actual decode arg in both 1P1D recipes is 0.02 (0.01 is the prefill value). Fix: correct the description to state decode swa-full-tokens-ratio 0.02 for 1P1D (prefill uses 0.01), so the changelog matches disagg-b200-1p1d-dep8-dep8-c64-mtp-kvoffload.yaml and disagg-b200-1p1d-dep8-dep8-c128-mtp-kvoffload.yaml.

Why this was flagged

perf-changelog.yaml is the record maintainers rely on to know what tuning a recipe uses without opening the YAML. The new entry (perf-changelog.yaml line ~8611) claims decode swa-full-tokens-ratio 0.01 for the 1P1D recipes, but disagg-b200-1p1d-dep8-dep8-c64-mtp-kvoffload.yaml:194 and disagg-b200-1p1d-dep8-dep8-c128-mtp-kvoffload.yaml:194 both set decode swa-full-tokens-ratio: 0.02; 0.01 is actually the prefill value at line 122 in each file. A maintainer trusting the changelog to diff or reproduce the decode tuning gets the wrong number, since nothing cross-checks changelog prose against recipe args.

Verification: nit. The changelog description is factually wrong but nothing functional breaks. In disagg-b200-1p1d-dep8-dep8-c64-mtp-kvoffload.yaml the prefill worker (disaggregation-mode: prefill at line 117) sets swa-full-tokens-ratio: 0.01 at line 122, while the decode worker (disaggregation-mode: decode at line 190) sets swa-full-tokens-ratio: 0.02 at line 194.… | nit. The changelog entry at…

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

[by Codex] Fixed in 96dadb0. The changelog now states the actual 1P1D values: prefill swa-full-tokens-ratio: 0.01 and decode swa-full-tokens-ratio: 0.02; the 2P1D c256 decode value remains 0.005.\n\n

中文\n\n已在 96dadb0 中修复。changelog 现准确记录 1P1D:prefill 为 swa-full-tokens-ratio: 0.01,decode 为 swa-full-tokens-ratio: 0.02;2P1D c256 的 decode 值仍为 0.005。\n\n

更正 DSV4 解耦配方变更记录中的 prefill 与 decode SWA 比例。
@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

@kedarpotdar-nv

Copy link
Copy Markdown
Collaborator

As a PR reviewer and CODEOWNER, I have reviewed this and have:

  • Verified that as of the moment of typing this, this is the latest version of PR_REVIEW_CHECKLIST.md
  • Verified that the general code quality meets the InferenceX standard and does not make the code quality any worse.
  • Verified that this PR has passed PR validation. GitHub Actions workflow
  • Verified that this PR passes evals. GitHub Actions workflow
  • Verified that speculative decoding PRs uses chat templates to align the AL distribution to real world
  • Verified that every draft model and draft head is served as it ships: the draft that ships with the served checkpoint, at its stored precision, through the pinned upstream image's default handling, with the shipped and effective draft precision recorded in the additional detail section. No submission-side quantization, dtype override, checkpoint substitution, or patch may lower draft precision below that default, regardless of eval results or AL. See Draft-model precision for what counts as the default and the MLPerf comparison.
  • For agentic workloads: verified that speculative-decoding configs (EAGLE / MTP / draft models) run with simulated synthetic acceptance, with the acceptance-length value taken from the committed golden AL curve in golden_al_distribution/ for that model, thinking mode, and draft length. A submission may choose any supported draft length, but it may not substitute a different acceptance target.
  • Verified against the current MODELS.md that this PR does not submit a deprecated model, scenario, or model-scenario combination.
  • Verified that the model architecture isn't changed with benchmark hacks like using --hf-overrides to skipping indexer for every x layers on models that don't natively support this. As a general rule, we won't accept optimizations that reduces the number of model architecture FLOPs. Anything that makes that same computation run faster is fair game; target/verifier FLOPs at lower precisions is fine, given that the config passes private evals, but this does not permit lowering draft-model or draft-head precision below what ships. As an general north star princple, we should only use optimizations which is used in production by customers that care about accuracy
  • If an company claims that they support vLLM/SGLang as first class LLM inference engines on their hardware, I have verified that the respective vLLM submission made using upstream https://hub.docker.com/u/vllm docker repo, upstream SGLang https://hub.docker.com/u/lmsysorg docker repo. The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet as supported by vLLM/SGLang community maintainers
  • If an company claims that they support vLLM/SGLang as first class upstream in-tree LLM inference engines on their hardware, I have have verified that the respective vLLM/SGLang submission has been made before additional frameworks (TRT-LLM, ATOM, etc.). The only exceptions are for new hardware, such as MI455X UALoE72, Vera Rubin NVL72, Rubin NVL8, etc., and for new model architectures where there is an actual reason why vLLM/SGLang does not fundamentally support them yet.
  • Verified that every single-node vLLM/SGLang recipe in this PR is documented in the official vLLM recipes and/or the SGLang cookbook:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang repo and verified that it is MERGED before this InferenceX PR merges. An opened, draft, or closed-without-merge upstream PR does not satisfy this requirement. If the matching recipe was already published, I linked the published recipe/cookbook page in the additional detail section below.
  • Verified that this PR does not patch the inference engine or serving stack — the pinned image must run as shipped. This covers .patch files / git apply / patch, inline patches embedded in benchmark scripts (e.g. a python3/sed heredoc that rewrites installed engine sources before serving), in-place edits of site-packages, monkey-patching, overwriting container files, and installing forked/rebuilt engine wheels on top of the pinned image. The only exception is a patch covered by a filled-out waiver at docs/waiver/<PR_NUMBER>.md — named after the PR that introduces the patch and filed in that same PR, stating what is patched, why the unmodified upstream image cannot run this benchmark, the upstream PR/issue link, and the removal plan — which I have linked below in the additional detail section.
  • If this PR uses append-only: true, verified that it only adds generated points or recipe variants inside a selected existing config/scenario and existing same-image visual curve: every previously generated point remains present with the same recipe, no prior point is removed or rerun, and every benchmark-affecting change in the complete diff can affect only the corresponding newly appended points (never an existing point), regardless of which file contains it.
  • If any of the above criteria cannot reasonably be satisfied, I have provided additional reasoning below.
  • Reported measured throughput/E2EL Pareto counts and evidence per affected curve (≥5 points strongly recommended). Below 5 or unverifiable: tag a core maintainer for review; recorded admin bypass required before merge. N/A if no curves are affected. Details.

Additional detail section:

  • Reviewed head 96dadb02dea7e16e45b7f4bc72b11d72dbb76a09.
  • Validation and performance passed for all six full-duration points: c1, c4, c8, c64, c128, and c256, with zero error drops.
  • Agentic evals passed: c64 97.50%, c128 97.12%, and c256 97.50% GSM8K strict match.
  • The recipes use the bundled DSpark head with K=6 and the committed thinking_on golden acceptance length of 3.77.
  • Draft precision: the bundled DSpark head from deepseek-ai/DeepSeek-V4-Pro-0813 ships with mixed FP8 dense projections, FP4 routed experts, and BF16 Markov/confidence tensors. The pinned upstream SGLang image loads the checkpoint defaults and dequantizes FP8 wo_a to BF16 through its standard handling. No separate draft checkpoint, draft-precision override, quantization override, substitution, or engine patch is used. References: checkpoint configuration, pinned SGLang DSpark implementation.
  • The model/scenario is active, and the submission uses the upstream lmsysorg/sglang:nightly-dev-20260916-c9a8fba9 image without inference-engine patches.
  • The official-recipe requirement is N/A because these are multi-node recipes. append-only: true is not used.
  • Pareto coverage: the affected DSV4 AgentX B200-NScale/Dynamo-SGLang/FP4/P90 curve has 6 valid measured points and 4 frontier points: c8, c64, c128, and c256. This is below the recommended 5 frontier points, so tagging @SemiAnalysisAI/core for review; an explicit admin bypass for the assessed head is required before merge and has not yet been verified.

Signed: kedarpotdar-nv

@github-actions

Copy link
Copy Markdown
Contributor

❌❌❌ REJECTED ❌❌❌

⚠️ Pareto coverage needs additional review: @functionstackx @cquil11 @Oseltamivir @adibarra. At least 5 points per affected throughput-versus-E2EL frontier are highly recommended. Below 5, or when coverage cannot be verified, merge only with an explicit, recorded admin bypass for the assessed commit; this advisory comment does not grant or enforce a bypass.

@kedarpotdar-nv — two blocking issues at 96dadb02: no authorized /use <run_id> reuse command has been posted, and the three disaggregated recipes serve the bundled DSpark draft's routed experts with W4A4 MXFP4 activations (below the shipped FP8-activation path). Pareto coverage is also below the recommended 5 frontier points. Note: #3257 merged today (16:42Z) with the same two config keys and six recipe paths, so this PR is now CONFLICTING against main; a rebase will move the head and run 35687016078 will no longer be reusable, so a fresh sweep on the rebased commit will be needed.

❌ Check 4 (Reuse command): FAIL — No authorized reuse command has been posted on this PR. The only comments are two bot notices and the sign-off; an OWNER/MEMBER/COLLABORATOR must post /use 35687016078 (or the run of a new sweep after rebase) on its own line before merging via reuse.

❌ Check 13 (Draft runs as shipped): FAIL — disagg-b200-1p1d-dep8-dep8-c64-mtp-kvoffload.yaml, disagg-b200-1p1d-dep8-dep8-c128-mtp-kvoffload.yaml, and disagg-b200-2p1d-dep8-dep8-c256-mtp-kvoffload.yaml set enable-w4a4-mxfp4-megamoe: true with moe-a2a-backend: megamoe on both prefill and decode roles, which lowers the DSpark draft's routed-expert activations from FP8 to MXFP4. Baseline: the checkpoint stores mtp.0.ffn.experts.* as packed FP4 (I8 + F8_E8M0 scales, shard 64 header), and DeepSeek's reference inference/kernel.py fp4_gemm_kernel is "FP8 act x FP4 weight" (act_quant to FP8 before fp4_gemm, inference/model.py linear()), used unchanged by DSparkBlock. In the pinned image the default MegaMoE MMA is fp8xfp4 and the flag switches it to mxf4xmxf4 (mega_moe.py#L48-L49, E2M1-packed activations at L259-L275). The draft inherits it: DSparkV4Stage extends DeepseekV4DecoderLayer with the target quant_config, speculative_moe_a2a_backend/speculative_moe_runner_backend default to the target's (moe/utils.py#L454-L463), and Fp8MoEMethod.process_weights_after_loading builds MegaMoE weights for every FP4 expert layer with no NextN exclusion (fp8.py#L1803-L1808). The recipes set no speculative-moe-a2a-backend/speculative-moe-runner-backend to keep the draft on the FP8-activation path. The sign-off's "no quantization override" statement does not hold for these three recipes. The three agg-* recipes are compliant: flashinfer_mxfp4 is the SM100 auto-default for this checkpoint and quantizes activations to MXFP8, and the FP8 wo_a dequant to BF16 (_dequant_fp8_wo_a_streaming) matches the reference. Passing GSM8K evals and the same flags in already-merged main recipes do not override this rule.

⚠️ Check 14 (Pareto coverage): WARN — curve dsv4 / agentic-coding / cluster:b200-nscale / dynamo-sglang fp4 / run 35687016078 attempt 1 / p90_e2el / lmsysorg/sglang:nightly-dev-20260916-c9a8fba9: 4/5 frontier points (c8, c64, c128, c256; c1 and c4 dominated) from 6 measured bmk_agentic_* artifacts (tput_per_gpu total vs p90_e2el, computed with infx.workflows.pareto_coverage, no canonical-flag restriction). Admin bypass not verified: no bypass comment exists and the signer's repository role is write, not admin. Evidence: run 35687016078, unofficial run view.

Passed and not applicable checks

✅ Check 0 (CODEOWNER): PASS — @kedarpotdar-nv is a named owner of configs/nvidia-master.yaml; the recipe YAMLs, perf-changelog.yaml, and runners/launch_b200-nscale-slurm.sh fall under the * catch-all, which any listed CODEOWNER satisfies.

✅ Check 1 (Passing sweep on in-PR commit): PASS — head 96dadb02 (PR tip unchanged) carries six success multi-node agentic / and three success multi-node agentic eval / check-runs from run 35687016078; single-node */ and eval / lanes are skipped only because the PR adds no single-node configs.

✅ Check 2 (Evals pass): PASS — agg_eval_all.json from run 35687016078: GSM8K em_strict 0.9750 (c64), 0.9712 (c128), 0.9750 (c256), n_eff 1319 each, above the dsv4 floor of 0.91 in infx/evals/thresholds.yaml; all jobs ran lmsysorg/sglang:nightly-dev-20260916-c9a8fba9, the image pinned in both master-config entries.

➖ Check 3 (Recipe linked/merged/complete): N/A — disaggregated/multi-node submission; both entries are multinode: true under benchmarks/multi_node/srt-slurm-recipes/** and the recipe-link requirement applies to single-node recipes only.

✅ Check 5 (Latest checklist template): PASS — all 14 items plus the merged-upstream sub-item of the current docs/PR_REVIEW_CHECKLIST.md are present and checked [x].

✅ Check 6 (Upstream image / engine-first): PASS — image is upstream lmsysorg/sglang:nightly-dev-20260916-c9a8fba9; for the dynamo-sglang framework, configs/nvidia-master.yaml already has dsv4-fp4-b200-sglang-agentic-hicache-mtp (sglang) and dsv4-fp4-b200-vllm-agentic-mtp (vllm) on cluster:b200-nscale.

✅ Check 7 (No deprecated models/scenarios): PASS — dsv4 Agentic coding, including the DSpark arm, is active in MODELS.md on 2026-09-22; only Single-turn 8k1k is retired for dsv4.

✅ Check 8 (No architecture hacks): PASS — no --hf-overrides, --json-model-override-args, or model-config edits; enable-deepseek-v4-fp4-indexer matches the reference indexer's FP4 q/kv simulation (inference/model.py L421-L422) and SGLANG_OPT_USE_ONLINE_COMPRESS=0 restates the pinned default.

✅ Check 9 (Spec-decode via chat template): PASS — recipes run benchmarks/multi_node/agentic_srt.sh, whose replay uses --endpoint /v1/chat/completions --endpoint-type chat (benchmarks/benchmark_lib.sh:3265-3266).

✅ Check 10 (No engine patches): PASS — no .patch, git apply, sed -i, heredoc source rewrites, or engine wheel installs; dynamo.install: true installs the declared Dynamo router wheel and the launcher change only resolves MODEL_PATH/SRT_SLURM_MODEL_PREFIX.

✅ Check 11 (Agentic spec-decode golden AL): PASS — infx/srt_slurm/synthetic_acceptance.py maps speculative-algorithm: DSPARK + speculative-dspark-block-size: 6 + THINKING_MODE=thinking_on to golden_al_distribution/dsv4-pro-0813-dspark.yaml value 3.77; run logs show SGLANG_SIMULATE_ACC_LEN=3.77, match-expected, real-draft-token applied to agg, prefill, and decode roles, and eval-only jobs run unsimulated.

➖ Check 12 (Append-only): N/A — neither new perf-changelog.yaml entry uses append-only: true.

Assessed commit: 96dadb02dea7e16e45b7f4bc72b11d72dbb76a09.

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