Skip to content

[NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261030 nightly with the tuned low-latency settings and TP4 c1 megakernel / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261030 nightly,采用调优后的低延迟配置并在 TP4 c1 启用 megakernel - #4603

Open
weireweire wants to merge 12 commits into
mainfrom
weireweire/dsv41flash-gb300-sgl-single-0025

Conversation

@weireweire

@weireweire weireweire commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Move dsv41flash-fp4-gb300-sglang-agentic-dspark (single-node SGLang AgentX on GB300) to digest-pinned lmsysorg/sglang:nightly-dev-cu13-20261030-302b78cc, and apply the low-latency settings tuned on the Dynamo + SGLang aggregated row.

  • Image: from nightly-dev-cu13-20261021-c1c287a4 to nightly-dev-cu13-20261030-302b78cc.
  • TP4 c1: runs the batch-1 NVIDIA megakernel, as the Dynamo + SGLang TP4 c1 row does: --enable-nvidia-megakernel, fp8_e4m3 KV cache, mem-fraction-static 0.91, decode graph batch 1 and the Engram host table. Target and draft megakernels are active on all four TP ranks on this image.
  • TP4 c1/c4/c16 and TP2/EP2 c16/c32: pin dsv4-attn-backend: flashmla, as the Dynamo + SGLang aggregated rows do. auto resolves to FlashMLA MegaAttention, which zero-pads per-rank attention heads to 64 (4x at TP4, 2x at TP2). The DP-attention points (c64/c128/c160) are unchanged.
  • The search space is unchanged.

Risk: this image stores the DeepSeek-V4.1 KV cache in about 55 % of the previous bytes per token, so a given mem-fraction-static holds more tokens and commits more memory. On a DEP16 decode worker this left too little memory for CUDA graph capture at 0.85. The previous sweep of this PR on nightly-dev-cu13-20261028-586355a8 started every point except the megakernel one. If a point fails to start on this image, its memory setting will be lowered.

中文

将 dsv41flash-fp4-gb300-sglang-agentic-dspark(GB300 单节点 SGLang AgentX)更新到固定 digest 的 lmsysorg/sglang:nightly-dev-cu13-20261030-302b78cc,并采用在 Dynamo + SGLang 聚合式配置上调好的低延迟参数。

风险: 该镜像中 DeepSeek-V4.1 每个 token 的 KV 只占原来约 55% 的字节,同样的 mem-fraction-static 能放更多 token,实际占用的显存也更多。在 DEP16 decode worker 上,0.85 时剩余显存不够 CUDA graph capture。本 PR 上一轮在 nightly-dev-cu13-20261028-586355a8 上的 sweep 中,除 megakernel 点外的所有点都能启动;如在新镜像上有点无法启动,会调低其显存设置。

AI model disclosure
  • Claude Opus 5.5 (runtime identifier aws/anthropic/eccn-claude-opus-5-5) chose the image, ported the tuned settings from the Dynamo + SGLang aggregated row, ran the changelog and recipe checks, and wrote this description. Cluster validation runs through a delegated agent on the same model.

…61025-65633129

Move dsv41flash-fp4-gb300-sglang-agentic-dspark from nightly-dev-cu13-20261021-c1c287a4 to the digest-pinned nightly-dev-cu13-20261025-65633129, the image the Dynamo + SGLang agg key already uses. Recipes and search space are unchanged.

@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.

Code review found no issues

No high-confidence issues detected in this change.

This review covers commit 67af7c3, which is no longer the latest commit on this pull request; later commits are not covered by it.

…ned low-latency settings

Use nightly-dev-cu13-20261028-586355a8, which includes sgl-project/sglang#46404 and #46891. TP4 c1 runs as the batch-1 NVIDIA megakernel point of the Dynamo + SGLang aggregated row, without SIM_DRAW_AHEAD so the simulated step does the same work as a real one. TP4 c4/c16 and TP2/EP2 c16/c32 pin the flashmla attention backend instead of auto (MegaAttention pads per-rank heads to 64).
@weireweire weireweire changed the title [NVIDIA][AgentX] Update GB300 DSV4.1-Flash SGLang image to nightly-dev-cu13-20261025-65633129 / [NVIDIA][AgentX] 将 GB300 DSV4.1-Flash SGLang 镜像更新至 nightly-dev-cu13-20261025-65633129 [NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261028 nightly with the tuned low-latency settings / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261028 nightly 并采用调优后的低延迟配置 Oct 28, 2026
The gate only moves the simulated-acceptance draw, a host-side sample plus a fill that real acceptance never runs, ahead of the draft launch. It does not skip work that a real-acceptance step performs.
@weireweire weireweire added full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) and removed full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) labels Oct 28, 2026
@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

… 2 plugin

nightly-dev-cu13-20261028-586355a8 bundles sgl-nvidia-mega 6fd7ac30 (megakernel API 1), while its SGLang requires API 2 since sgl-project/sglang#45266, so --enable-nvidia-megakernel fails at startup. TP4 c1 keeps its previous engine settings and pins flashmla like the other TP-sharded points.
@weireweire weireweire added the full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) label Oct 28, 2026
…-gb300-sgl-single-0025

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
…run TP4 c1 on the megakernel

nightly-dev-cu13-20261029-c10e0e17 bundles sgl-nvidia-mega 54b428921749
(megakernel API 2), so TP4 c1 returns to its megakernel config. The 16
runtime-optimization variables it set one by one are replaced by
SGLANG_ENABLE_NV_MEGA_RUNTIME_OPTIMIZATION (sgl-project/sglang#47105).
@weireweire weireweire changed the title [NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261028 nightly with the tuned low-latency settings / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261028 nightly 并采用调优后的低延迟配置 [NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261029 nightly with the tuned low-latency settings and TP4 c1 megakernel / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261029 nightly,采用调优后的低延迟配置并在 TP4 c1 启用 megakernel Oct 29, 2026
@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook integration of this PR's AgentX config (dsv41flash-fp4-gb300-sglang-agentic-dspark) will happen in sgl-project/sglang#47214, in the Agentic Long-Context Deployment section of the DeepSeek-V4.1 cookbook page.

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (9bd047ac7) as "in progress". A later cookbook PR switches it to the measured run once a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#47214 has been merged. This PR's AgentX config (dsv41flash-fp4-gb300-sglang-agentic-dspark) is now in the Agentic Long-Context Deployment section of the SGLang DeepSeek-V4.1 cookbook: https://docs.sglang.io/cookbook/autoregressive/DeepSeek/DeepSeek-V4_1#agentic-long-context-deployment

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (9bd047ac7) as "in progress". A later cookbook PR switches it to the measured run once a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] The SGLang cookbook update of this PR's AgentX config (dsv41flash-fp4-gb300-sglang-agentic-dspark) will happen in sgl-project/sglang#47464, in the Agentic Long-Context Deployment section of the DeepSeek-V4.1 cookbook page. The config has been live in that section since sgl-project/sglang#47214; sgl-project/sglang#47464 refreshes it with the pin below.

This PR has no authorized /use <run_id> comment yet, so the cookbook shows the recipe at this PR's head (9bd047ac7) as "in progress". A later cookbook PR switches it to the measured run once a run is pinned or this PR merges.

@nvpohanh

Copy link
Copy Markdown
Collaborator

/use 40809149952

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

@nvpohanh staged run 40809149952.

This run remains available across future /stage-results requests. Staging the same run ID again updates its staged data. Staging workflow

@nvpohanh

Copy link
Copy Markdown
Collaborator

[by Claude Code] sgl-project/sglang#47464 has been merged. This PR's AgentX config (dsv41flash-fp4-gb300-sglang-agentic-dspark) is now in the Agentic Long-Context Deployment section of the SGLang DeepSeek-V4.1 cookbook: https://docs.sglang.io/cookbook/autoregressive/DeepSeek/DeepSeek-V4_1#agentic-long-context-deployment

This PR's /use 40809149952 comment came after this cookbook round was synced, so the cookbook shows the recipe at 9bd047ac7 as "in progress". That is the commit run 40809149952 measured, so the commands are already the measured ones; a later cookbook PR marks them verified.

@nvpohanh

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. Please link to GitHub Action workflow that shows this.
  • Verified that this PR passes evals. Please link to GitHub Action workflow that shows this.
  • 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. Explicitly verified that SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE is not enabled in the effective recipe, including inherited settings; enabling it is prohibited going forward, and historical runs do not grant an exception. 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 infx/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
  • Verified that new models disable integer all-reduce, with SGLang ROCm explicitly setting ROCM_QUICK_REDUCE_QUANTIZATION=NONE. Existing models are grandfathered per MODELS.md.
  • For affected Dynamo TRT-LLM benchmarks, verified that iteration/KV-cache metrics are collected and published under the pinned Dynamo implementation and effective engine settings. Resolve the installed Dynamo version separately from the container tag; use supported metrics controls without requiring KV events. Record the version and configuration evidence in the additional detail section. See verifier Check 17. N/A for unaffected serving paths or frameworks without these Dynamo settings.
  • 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
  • For official InferenceX (non-preview), verified that established models use upstream engine images built from master (or the equivalent default development branch), with new models transitioning within a reasonable time after release. See MODELS.md.
  • 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 affected vLLM/SGLang production serving configuration in this PR, including Dynamo deployments, is documented in the official vLLM recipes and/or the SGLang cookbook, for both single-node and multi-node aggregated and disaggregated serving. The documentation covers production-useful flags, environment variables, and launch commands (including prefill, decode, and router/frontend commands for disaggregation); InferenceX-only benchmark/harness settings are excluded with reasoning in the additional detail section:
    • I linked the corresponding upstream PR in the vLLM recipe repo or SGLang cookbook source 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:

  • Assessed head: 9bd047ac75b8275723fd864987639e29d03efc91. The pinned run is Run Sweep 40809149952 (pull_request, head 9bd047ac, conclusion success). /use 40809149952 is posted and is the latest /use on this PR.
  • Code quality: The diff is config-only. It touches the override_tp2_c16, override_tp2_c32, override_tp4_c1, override_tp4_c4 and override_tp4_c16 overrides in dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml, and the image pin of dsv41flash-fp4-gb300-sglang-agentic-dspark in nvidia-master.yaml. It also appends one perf-changelog.yaml entry at the end of the file and edits no existing entries. The search space is unchanged, so no points are added or removed.
  • PR validation: In run 40809149952, all 8 agentic / benchmark jobs succeeded: TP4 c1 (canary), TP4 c4/c16, TP2/EP2 c16/c32, and TP2/EP2/DPA c64/c128/c160. All 6 agentic eval / jobs, check-changelog, collect-results and collect-evals also succeeded. The skipped jobs are the fixed-sequence, multi-node and non-agentic eval lanes, which this config does not generate. All result artifacts (results_bmk, eval_results_all, bmk_agentic_*) are unexpired until 2027-01-27.
  • Evals (gsm8k em_strict, n=1319, SE ≈ 0.0044): TP4 c1 0.9750, TP4 c4 0.9735, TP4 c16 0.9719, TP2/EP2 c16 0.9742, TP2/EP2 c32 0.9727, and TP2/EP2/DPA c160 0.9742. Each score clears the 0.90 default in infx/evals/thresholds.yaml, which has no dsv41flash entry, and the stricter 0.91 dsv4 value. The changed TP4 c1 megakernel path has its own eval, and it is not weaker than its siblings.
  • Chat template: The AgentX client replays through the chat endpoint with thinking: true / reasoning_effort: high, which the server reinforces through SGLANG_DEFAULT_THINKING=1 and SGLANG_DSV41_REASONING_EFFORT=high. This is the thinking-on regime of the golden curve.
  • Draft precision:
    • The draft is the DSpark head bundled in deepseek-ai/DeepSeek-V4.1-Flash. The TP4 c1 server log shows speculative_draft_model_path: deepseek-ai/DeepSeek-V4.1-Flash and Draft checkpoint bundles a DSpark head; loading draft arch DeepseekV4ForCausalLMDSpark, with no substituted checkpoint.
    • Shipped precision: The checkpoint config.json has quantization_config quant_method: fp8, weight_block_size: [32, 32], scale_fmt: ue8m0 and expert_dtype: fp4, which means MXFP8 dense weights and MXFP4 experts. By default, the pinned image loads the DSpark wo_a as BF16 and keeps markov_w2 in BF16 (SGLANG_DSPARK_OPT_MARKOV_W2_BF16 = EnvBool(True) in environ.py at sglang c10e0e17). The recipe's 'True' restates that default.
    • Effective precision: It matches the shipped baseline. All points log dtype: auto, quantization: None, speculative_draft_model_quantization: None and speculative_draft_kv_cache_dtype: None, so the draft KV inherits the target's. TP4 c1 logs speculative_moe_runner_backend: flashinfer_mxfp4, which runs on the stored MXFP4 experts.
    • TP4 c1 kv-cache-dtype: fp8_e4m3: This restates the image default. DEP2 c64, which does not set the flag, also resolves kv_cache_dtype: fp8_e4m3. It applies to both target and draft.
    • Megakernel draft path: The image bundles sgl-nvidia-mega 54b428921749 (Dockerfile SGL_NVIDIA_MEGA_COMMIT; the run fingerprint shows sgl-nvidia-mega.git@54b42892). That commit is plugin main. The draft_* slots reuse the weights SGLang already loaded, and draft_wo_a consumes the default BF16 wo_a. The 5 plugin commits since 6fd7ac30 (verified in [NVIDIA][AgentX] Run GB300 DSV4.1-Flash agg TP4 c1 as a batch-1 NVIDIA megakernel point / [NVIDIA][AgentX] 将 GB300 DSV4.1-Flash 聚合 TP4 c1 改为 batch-1 NVIDIA megakernel 点 #4434) only change FlashMLA scheduling, an import path, the Engram host-table layout and indexer operand grouping under deepseek_v41/. None changes a draft dtype.
    • SGLANG_ENABLE_NV_MEGA_RUNTIME_OPTIMIZATION=1: At c10e0e17, it only flips scheduling and fusion defaults: fused accept tail, deferred context KV, draft-prep fork, post-fold, skip-prefilled-inputs, one-launch commit stage, and block-wise rejection ("exact in law"). None lowers precision.
    • SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE: It is not enabled. It is absent from the recipe, the generated config.yaml/sbatch_script.sh and the server logs, and environ.py at c10e0e17 defines it as EnvBool(False).
  • Golden AL:
    • The server logs show SGLANG_SIMULATE_ACC_LEN=3.51, SGLANG_SIMULATE_ACC_METHOD=match-expected and SGLANG_SIMULATE_ACC_TOKEN_MODE=real-draft-token. This matches dsv41flash_dspark.yaml deepseek-v4.1-flash.thinking_on.5 = 3.51 for speculative-dspark-block-size: 5 with thinking on.
    • SGLANG_SIMULATE_ACC_GREEDY: '0' on TP4 c1 restates the EnvBool(False) default.
    • SGLANG_OPT_DSV41_DSPARK_SIM_DRAW_AHEAD=1 only moves the simulated draw before the draft launch, and is inactive with real acceptance (sim_draw_ahead_enabled in dspark_worker_v2.py). It does not change the target. The measured mean accept length is 3.508 over 5,107 TP4 c1 decode log lines and 3.512 on DEP2 c64.
  • MODELS.md: It lists dsv41flash Agentic coding (SGLang DSpark) as active, with no deprecated scenario.
  • Benchmark hacks: There is no --hf-overrides, --json-model-override-args, model-config edit, layer skipping or indexer skipping. The dsv4-attn-backend: flashmla pin selects an upstream attention backend instead of auto (FlashMLA MegaAttention, which zero-pads heads). It runs the same attention computation, and the evals above cover it.
  • Integer all-reduce: N/A. dsv41flash is an existing model on NVIDIA, and no integer all-reduce setting is used.
  • Dynamo TRT-LLM metrics: N/A. This is single-node SGLang.
  • Upstream image: lmsysorg/sglang:nightly-dev-cu13-20261029-c10e0e17@sha256:78142f9f4b7fb3ee27f59065615dc7bb263f643ed256c9299c3861086ade4d47 is an upstream lmsysorg nightly. Its commit c10e0e17735f is on sgl-project/sglang main (compare: main is ahead by 134, behind by 0).
  • Engine-first ordering: This is an SGLang (in-tree engine) entry, so the ordering rule is satisfied.
  • Upstream recipe:
    • Merged cookbook PR sgl-project/sglang#47464 (MERGED 2026-10-30T11:23:25Z) publishes this PR's head 9bd047ac in docs/src/snippets/agentx/deepseek-ai/deepseek-v4_1.jsx. It appears in the SGLang DeepSeek-V4.1 cookbook, Agentic Long-Context Deployment section. The config was first published there by sgl-project/sglang#47214.
    • The cookbook entry covers the 20261029 image and digest. It also covers the python3 -m sglang.launch_server TP4 c1 megakernel launch: --enable-nvidia-megakernel, --kv-cache-dtype fp8_e4m3, --mem-fraction-static 0.91, --dsv4-attn-backend flashmla, --moe-a2a-backend none, --startup-weight-load-mode serial, --context-length 1048576, --schedule-policy lpm and --swa-prefix-tails 128.
    • The c1 environment is covered too: SGLANG_NVIDIA_MEGAKERNEL_SLOTS (all 42 slots), SGLANG_ENABLE_NV_MEGA_RUNTIME_OPTIMIZATION, SGLANG_OPT_DSV41_DSPARK_SIM_DRAW_AHEAD, SGLANG_SPEC_TP_SYNC, the Engram host table and the NCCL settings.
    • The TP4 c4/c16, TP2/EP2 c16/c32 (with flashmla) and DEP2 router points are covered as per-point patches.
    • Excluded InferenceX-only settings: the SGLANG_SIMULATE_ACC_* synthetic-acceptance controls, enable-metrics / enable-metrics-for-all-schedulers (server-metrics scraping for result collection), PYTHONNOUSERSITE / PYTHONUNBUFFERED, health-check timing, the observability/tachometer toggles, and the AIPERF_* / AGENTIC_WARMUP_GRACE_PERIOD / CONC client controls. These are harness, collection or synthetic benchmark controls with no production serving effect.
  • No engine patches: At 9bd047ac, the recipe has no setup script, .patch, overlay, git apply, site-packages edit or wheel install. The PR does not touch runners/srt-slurm/patches/, and there is no waiver. The megakernel plugin ships in the pinned image.
  • append-only: N/A. The new changelog entry does not use append-only: true.
  • Pareto coverage:
    • There is one affected curve: dsv41flash / agentic-coding / GB300 sglang / fp4 / run 40809149952. It has 8 measured points from the bmk_agentic_* artifacts (results_bmk), plotted as per_gpu.total_tput_tps against E2EL.

      Point P90 E2EL (s) P75 E2EL (s) tput/GPU
      TP4 c1 5.65 3.27 8,099
      TP4 c4 6.50 3.02 10,225
      TP4 c16 6.27 3.04 29,250
      TP2/EP2 c16 7.59 3.47 57,863
      TP2/EP2 c32 11.81 5.78 118,818
      TP2/EP2/DPA c64 15.43 7.65 224,228
      TP2/EP2/DPA c128 24.17 10.76 320,087
      TP2/EP2/DPA c160 31.82 14.18 353,167
    • P90 E2EL: 7/8 frontier points. Only TP4 c4 is off the frontier; TP4 c16 dominates it.

    • P75 E2EL: 7/8 frontier points. Only TP4 c1 is off the frontier; TP4 c4 dominates it.

    • Both percentiles meet the 5-point recommendation.

Signed: nvpohanh

@github-actions

Copy link
Copy Markdown
Contributor

✅✅✅ Verdict: PASS ✅✅✅

Passed and not applicable checks

✅ Check 0 (CODEOWNER): PASS — @nvpohanh is a named owner of inferencex-e2e/configs/nvidia-master.yaml and of srt-slurm-recipes/**/gb300-*/. perf-changelog.yaml falls under the catch-all, which any listed CODEOWNER satisfies.

✅ Check 1 (Sweep on in-PR commit): PASS — Run 40809149952 ran on the pinned head 9bd047ac (pull_request, attempt 1). The TP4 c1 canary, all 7 other agentic / jobs and all 6 agentic eval / jobs concluded success. The skipped single-node 1k1k/8k1k and eval / lanes are not generated for this agentic-only config. No commits follow the validated SHA.

✅ Check 2 (Evals): PASS — eval_results_all holds 6 gsm8k rows on the PR image nightly-dev-cu13-20261029-c10e0e17@sha256:78142f9f…. Their em_strict scores are TP4 c1 0.9750, c4 0.9735, c16 0.9719, TP2/EP2 c16 0.9742, c32 0.9727 and DPA c160 0.9742. Every gap against the best sibling and against the exact-scope ingested cohort (run 40059333495) is within 2σ: the largest is 0.0030 against a threshold of 0.0125. The changed TP4 c1 path has its own eval: the eval job launched --enable-nvidia-megakernel with the same slots and flashmla, and the plugin raises on requested slots it cannot serve.

✅ Check 3 (Upstream recipe): PASS — sgl-project/sglang#47464 is MERGED (2026-10-30T11:23:25Z). On main, docs/src/snippets/agentx/deepseek-ai/deepseek-v4_1.jsx records PR 4603 at 9bd047ac with the c10e0e17 image and digest. It covers TP4 c1 (megakernel, fp8_e4m3 KV, mem 0.91, flashmla, moe-a2a-backend none, serial load, lpm, slots, runtime-opt, sim-draw-ahead, SPEC_TP_SYNC, Engram host table, NCCL), TP4 c4/c16 and TP2/EP2 c16/c32 with flashmla retained, and DEP2 c64/c128/c160 with the sglang-router command. The excluded settings (SIMULATE_ACC_*, metrics flags, AIPERF_*, health-check timing) are harness-only, and the sign-off justifies each exclusion.

✅ Check 4 (Reuse command): PASS — /use 40809149952 was posted on its own line by nvpohanh (COLLABORATOR, comment). It is the newest reuse command and names the Check 1 run.

✅ Check 5 (Latest checklist): PASS — All 20 items in the current PR_REVIEW_CHECKLIST.md template, including the recipe sub-item, appear checked in the sign-off.

✅ Check 6 (Upstream image / provenance / ordering): PASS — The image is lmsysorg/sglang:nightly-dev-cu13-20261029-c10e0e17@sha256:78142f9f…, an upstream lmsysorg build. The c10e0e17 commit is an ancestor of sgl-project/sglang main (main is 134 ahead, 0 behind). This is an SGLang entry, so the engine-first ordering rule does not apply.

✅ Check 7 (Deprecated models): PASS — MODELS.md lists dsv41flash agentic coding (SGLang DSpark) as active as of 2026-10-30, with no deprecated scenario.

✅ Check 8 (No arch-changing hacks): PASS — (a) The recipe has no --hf-overrides, model-config edits, or layer/expert/indexer skipping. (b) The TP4 c1 kv-cache-dtype fp8_e4m3 is covered by that point's own passing eval. (c) This is the CUDA SGLang path on NVIDIA, and no integer all-reduce or quick-reduce control is set anywhere in the effective recipe.

✅ Check 9 (Spec-decode chat template): PASS — The AgentX aiperf client replays traces through its default chat endpoint (CLI in the TP4 c1 benchmark.log). The server enforces thinking via SGLANG_DEFAULT_THINKING=1 / SGLANG_DSV41_REASONING_EFFORT=high.

✅ Check 10 (No engine patches): PASS — At 9bd047ac the recipe has no setup script, .patch, git apply, source overlay or wheel install. The PR does not touch runners/srt-slurm/patches/, and the megakernel plugin ships in the pinned image.

✅ Check 11 (Agentic golden AL): PASS — The run's srtctl overrides inject SGLANG_SIMULATE_ACC_LEN=3.51, match-expected and real-draft-token. This equals dsv41flash_dspark.yaml thinking_on, block size 5, which signoff_facts golden-al reports as matches: true. Measured TP4 c1 accept length is 3.50.

➖ Check 12 (Append-only): N/A — The new changelog entry does not set append-only: true.

✅ Check 13 (Draft precision): PASS — The draft is the DSpark head bundled in deepseek-ai/DeepSeek-V4.1-Flash, with no draft path, draft quantization or dtype override. At sglang c10e0e17, SGLANG_NVFP4_CKPT_FP8_NEXTN_MOE = EnvBool(False) and nothing sets it. SGLANG_DSPARK_OPT_MARKOV_W2_BF16='True' restates the EnvBool(True) default. The flags under SGLANG_ENABLE_NV_MEGA_RUNTIME_OPTIMIZATION only fuse or schedule work. The sgl-nvidia-mega 54b42892 draft path reuses SGLang-loaded weights, and its BF16 tail skips a redundant FP32 upcast before hc_combine, which widens loads to FP32 itself. The fp8_e4m3 KV cache applies to target and draft alike.

✅ Check 14 (Pareto coverage): PASS — One affected curve: dsv41flash / agentic-coding / GB300 sglang / fp4 / run 40809149952. From results_bmk/agg_bmk.json (per_gpu.total_tput_tps vs E2EL), pareto_coverage reports P90 E2EL 7/8 frontier points (only TP4 c4 is dominated) and P75 E2EL 7/8 (only TP4 c1 is dominated).

✅ Check 15 (PR description): PASS — The body's claims match the evidence: the image tag and digest, the inclusion of sglang #46404, #46891, #47145 and #47105 (all merged ancestors of c10e0e17), the TP4 c1 settings, flashmla on TP4 c1/c4/c16 and TP2/EP2 c16/c32 with DPA unchanged, and an unchanged search space (8 base and 8 head points).

✅ Check 16 (NVIDIA overview): PASS — The NVIDIA overview Framework Recipes table lists DeepSeek-V4.1-Flash with a populated SGLang cell, covering the GB300 SGLang pair.

➖ Check 17 (Metrics publication): N/A — This is single-node SGLang with no Dynamo TRT-LLM worker, so the Dynamo metrics controls do not apply.

✅ Check 18 (Recipe/image/sweep consistency): PASS — (a/b) No generation errors at base or head, and master tp/ep/dp-attn and conc lists match the recipe overrides' GPUs and parallelism. (c) The digest resolves. (d/e) No orchestration pin or dispatch changes. (f) The changelog states the image bump, megakernel, fp8_e4m3 KV, the runtime-opt env var and the flashmla CLI pin accurately. (g) All 8 points are re-tuned, with none removed undominated. (h) Re-tune deltas in tput/GPU and interactivity: TP4 c1 +12.1%/+76.7%, c4 +1.5%/+27.2%, c16 +0.5%/+15.1%; TP2 c16 +0.6%/+4.7%, c32 −1.9%/−1.1%; DPA c64 −2.6%/−4.4%, c128 −0.8%/−2.7%, c160 +1.4%/−5.1%. The master comment "TP4 C1 uses GPU Engram" is now stale; this is informational only.

Assessed commit: 9bd047ac75b8275723fd864987639e29d03efc91.

env:
SGLANG_ENABLE_DSV41_ENGRAM_HOST_TABLE: '0'
SGLANG_RAGGED_VERIFY_MODE: static
SGLANG_SPEC_TP_SYNC: rng,-dspark-accept-sample

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

what is SPEC_TP_SYNC=rng,-dspark-accept-sample? does this affect draft model accuracy?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

mainly wanna make sure it doesnt affect speculator perf (since we are simulating acc len )

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.

hi. this is used to reduce unnecessary communication between ranks, it won't change the draft model precision.

…-gb300-sgl-single-0025

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
…e simulated verify accept cost fix

Root cause: nightly-dev-cu13-20261029-c10e0e17 predates sgl-project/sglang#46840,
so simulated acceptance skipped the real verify accept cost and the TP4 c1 point
was not measured on the methodology-conformant path.

Fix: pin lmsysorg/sglang:nightly-dev-cu13-20261030-302b78cc by digest. It is
63 commits past the #46840 merge and bundles the same sgl-nvidia-mega
54b428921749 (megakernel API 2). Update this PR's changelog entry to name the image
and #46840.

Validation: Dynamo + SGLang TP4 c1 megakernel, c4 and c16 started and completed
on 302b78cc with target and draft megakernels active on all four ranks.
…-gb300-sgl-single-0025

# Conflicts:
#	inferencex-e2e/perf-changelog.yaml
@weireweire weireweire changed the title [NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261029 nightly with the tuned low-latency settings and TP4 c1 megakernel / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261029 nightly,采用调优后的低延迟配置并在 TP4 c1 启用 megakernel [NVIDIA][AgentX] Move GB300 DSV4.1-Flash SGLang to the 20261030 nightly with the tuned low-latency settings and TP4 c1 megakernel / [NVIDIA][AgentX] GB300 DSV4.1-Flash SGLang 升级到 20261030 nightly,采用调优后的低延迟配置并在 TP4 c1 启用 megakernel Nov 1, 2026
@weireweire weireweire added full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures and removed full-sweep-fail-fast Full sweep with canary gate; first failure cancels the rest of that matrix (recommended) labels Nov 1, 2026

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

Labels

full-sweep-enabled Full sweep with canary gate; matrix jobs run to completion despite failures

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants