From 80eb81acac90ee565ed0f2c45692e38e526ad7f3 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Tue, 18 Aug 2026 14:41:39 +0800 Subject: [PATCH 01/10] perf(agentx): tune SGLang low-concurrency throughput MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add TP8 concurrency 1/4 and TP4 concurrency 8 aggregate profiles with phase-specific decode CUDA graph limits and throughput-only synthetic acceptance. 中文:优化 SGLang AgentX 低并发吞吐,新增 TP8 并发 1/4 和 TP4 并发 8 的聚合配置,并使用解码阶段 CUDA Graph 上限及仅吞吐测试启用的模拟验收率。 --- .../agentic/agg-gb300-tp4-mtp-kvoffload.yaml | 156 ------------------ .../agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 115 +++++++++++++ .../agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 115 +++++++++++++ configs/nvidia-master.yaml | 35 ++-- 4 files changed, 254 insertions(+), 167 deletions(-) delete mode 100644 benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-kvoffload.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml create mode 100644 benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-kvoffload.yaml deleted file mode 100644 index 7bb82d2b5b..0000000000 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-kvoffload.yaml +++ /dev/null @@ -1,156 +0,0 @@ -name: "agg-gb300-tp4-mtp-kvoffload" - -# Agentic-coding SGLang aggregated recipe for DeepSeek-V4-Pro on GB300 -# (single aggregated worker, TP4, MTP + hierarchical-cache KV offload). -# -# Uses the flat single-variant schema the agentic CI flow expects. Concurrency is NOT -# a recipe field here: the GHA matrix fans out one job per concurrency from -# the master-config conc-list, exporting CONC into agentic_srt.sh. Modeled on -# the flat vllm/deepseek-v4/agentic recipes (agentic infra + benchmark wiring) -# and the flat sglang/deepseek-v4/8k1k recipes (sglang backend schema). - -model: - path: "deepseek-v4-pro" - container: "dynamo-sglang" - precision: "fp4" - -dynamo: - install: true - wheel: "1.3.0.dev20260718" - -slurm: - time_limit: "8:00:00" - -health_check: - max_attempts: 1440 - interval_seconds: 10 - -resources: - gpu_type: "gb300" - gpus_per_node: 4 - agg_nodes: 1 - agg_workers: 1 - gpus_per_agg: 4 - -infra: - # Dedicated etcd/nats node — matches the vllm agentic recipes; under the - # dynamo router + multiple frontends the infra services need their own node. - etcd_nats_dedicated_node: true - # cc-traces prompts (~125K tokens) serialize to ~2.8MB; the 1 MiB NATS - # default drops them. 32 MiB matches the agentic vllm recipes (~10x headroom - # over the largest observed payload); schema recommends 24+ for long ISL. - nats_max_payload_mb: 32 - -frontend: - type: dynamo - nginx_session_affinity: true - nginx_session_affinity_header: X-Dynamo-Session-ID - enable_multiple_frontends: true - num_additional_frontends: 4 - env: - # The sglang image is PEP 668 externally-managed; the runtime dynamo - # install (dynamo_wheels.py / source build) runs pip and fails with - # "externally-managed-environment" without this. Lets pip install into - # the system env. Applies to both dynamo.hash (source) and dynamo.wheel. - PIP_BREAK_SYSTEM_PACKAGES: "1" - args: - router-mode: "kv" - router-session-affinity-ttl-secs: "3600" - active-decode-blocks-threshold: "None" - active-prefill-tokens-threshold: "None" - active-prefill-tokens-threshold-frac: "None" - -backend: - type: sglang - - aggregated_environment: - SGLANG_DEFAULT_THINKING: '1' - # TP4/bs128 can spend over an hour capturing the DSV4 EAGLE draft-extend - # graph. Keep the target/decode graphs and use the upstream eager fallback. - SGLANG_DISABLE_DRAFT_EXTEND_CUDA_GRAPH: "1" - SGLANG_DSV4_REASONING_EFFORT: high - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" - # Lets the runtime dynamo install's pip bypass PEP 668 on the sglang image. - PIP_BREAK_SYSTEM_PACKAGES: "1" - # from submission for B300 - SGLANG_JIT_DEEPGEMM_PRECOMPILE: "1" - SGLANG_OPT_SWA_SPLIT_LEAF_ON_INSERT: "1" - SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS: "1" - SGLANG_OPT_USE_CUSTOM_ALL_REDUCE_V2: "1" - SGLANG_OPT_USE_ONLINE_COMPRESS: "0" - SGLANG_OPT_USE_JIT_INDEXER_METADATA: "1" - SGLANG_OPT_USE_JIT_NORM: "1" - SGLANG_OPT_USE_TOPK_V2: "True" - # for kvcache offload - SGLANG_ENABLE_UNIFIED_RADIX_TREE: "1" - - sglang_config: - aggregated: - served-model-name: "deepseek-ai/DeepSeek-V4-Pro" - enable-metrics: true - trust-remote-code: true - stream-interval: 50 - watchdog-timeout: 1000000 - mem-fraction-static: 0.90 - chunked-prefill-size: 8192 # can only support 11000 for TP - moe-runner-backend: "flashinfer_mxfp4" - disable-flashinfer-autotune: true - swa-full-tokens-ratio: 0.1 - max-running-requests: 128 - cuda-graph-max-bs: 128 - - scheduler-recv-interval: 30 - dp-size: 1 - tp-size: 4 - ep-size: 1 - # kv-cache offload - enable-hierarchical-cache: true - hicache-ratio: 6 - hicache-write-policy: write_through - hicache-io-backend: kernel - # mtp section - speculative-algorithm: EAGLE - speculative-num-steps: 3 - speculative-eagle-topk: 1 - speculative-num-draft-tokens: 4 - -sbatch_directives: - mem: "0" - cpus-per-task: "144" - -srun_options: - mem: "0" - # gb300-nv: pyxis maps the calling user into the container as a non-root - # uid; agentic_srt.sh's apt-get install git step needs EUID 0. Remap to - # uid 0 inside the container. srt-slurm renders empty-string values as - # flag-only srun args. - container-remap-root: "" - -benchmark: - type: custom - command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh - env: - INFMAX_CONTAINER_WORKSPACE: /infmax-workspace - RESULT_DIR: /logs/agentic - PORT: "8000" - # Aggregated: one worker serves both prefill and decode, so GPU accounting - # is the single-worker form num_gpus = TP (not the disagg prefill+decode - # sum). The multinode post-processing path assumes disagg and would divide - # throughput by prefill_gpus + decode_gpus; force the single-node code path - # in process_agentic_result.py instead. TP must match sglang_config tp-size. - IS_MULTINODE: "false" - TP: "4" - # Stamp X-Dynamo-Session-ID on every turn so both nginx and Dynamo's - # router keep the session on the worker that owns its KV prefix. - AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true" - AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0" - AIPERF_REQUIRED_SERVER_METRIC_PREFIX: "sglang:" - # Container-side path of the aiperf mmap dataset cache; host-side mount - # wired via launch_gb300-*.sh srtslurm.yaml default_mounts. Without it, - # aiperf re-tokenizes + re-writes the dataset mmap on every run. - AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" - # Persistent HF hub cache (also via default_mounts) so the trace dataset - # isn't re-downloaded each run; overrides the workflow-level HF_HUB_CACHE. - HF_HUB_CACHE: "/hf_hub_cache" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml new file mode 100644 index 0000000000..300080dca5 --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -0,0 +1,115 @@ +name: "agg-gb300-tp4-mtp-lowlatency" + +# Low-latency AgentX aggregate topology: one TP4 worker occupies one +# four-GPU GB300 node and serves both prefill and decode. + +model: + path: "deepseek-v4-pro" + container: "dynamo-sglang" + precision: "fp4" + +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + +dynamo: + install: true + hash: "7a4e47ead90ec6b479e397996f6479ce7d251510" + +slurm: + time_limit: "4:00:00" + +health_check: + max_attempts: 1440 + interval_seconds: 10 + +resources: + gpu_type: "gb300" + gpus_per_node: 4 + agg_nodes: 1 + agg_workers: 1 + gpus_per_agg: 4 + +infra: + etcd_nats_dedicated_node: false + nats_max_payload_mb: 32 + +frontend: + type: dynamo + nginx_session_affinity: true + nginx_session_affinity_header: X-Dynamo-Session-ID + enable_multiple_frontends: false + env: + PIP_BREAK_SYSTEM_PACKAGES: "1" + DYN_NATS_REQUEST_TIMEOUT_SECS: "1800" + args: + router-mode: "kv" + router-session-affinity-ttl-secs: "3600" + active-decode-blocks-threshold: "None" + active-prefill-tokens-threshold: "None" + active-prefill-tokens-threshold-frac: "None" + +backend: + type: sglang + aggregated_environment: + SGLANG_DEFAULT_THINKING: "1" + SGLANG_DSV4_REASONING_EFFORT: high + PIP_BREAK_SYSTEM_PACKAGES: "1" + SGLANG_JIT_DEEPGEMM_PRECOMPILE: "1" + SGLANG_OPT_SWA_SPLIT_LEAF_ON_INSERT: "1" + SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS: "1" + SGLANG_OPT_USE_CUSTOM_ALL_REDUCE_V2: "1" + SGLANG_OPT_USE_ONLINE_COMPRESS: "0" + SGLANG_OPT_USE_JIT_INDEXER_METADATA: "1" + SGLANG_OPT_USE_JIT_NORM: "1" + SGLANG_OPT_USE_TOPK_V2: "True" + + sglang_config: + aggregated: + served-model-name: "deepseek-ai/DeepSeek-V4-Pro" + enable-metrics: true + trust-remote-code: true + stream-interval: 10 + watchdog-timeout: 1000000 + mem-fraction-static: 0.94 + chunked-prefill-size: 8192 + max-prefill-tokens: 8192 + moe-runner-backend: "flashinfer_mxfp4" + disable-flashinfer-autotune: true + swa-full-tokens-ratio: 0.1 + max-running-requests: 32 + cuda-graph-max-bs-decode: 32 + scheduler-recv-interval: 30 + dp-size: 1 + tp-size: 4 + ep-size: 1 + speculative-algorithm: EAGLE + speculative-num-steps: 3 + speculative-eagle-topk: 1 + speculative-num-draft-tokens: 4 + +sbatch_directives: + mem: "0" + cpus-per-task: "144" + +srun_options: + mem: "0" + container-remap-root: "" + +benchmark: + type: custom + command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh + env: + INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace" + RESULT_DIR: "/logs/agentic" + PORT: "8000" + IS_MULTINODE: "false" + TP: "4" + AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true" + AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0" + AIPERF_REQUIRED_SERVER_METRIC_PREFIX: "sglang:" + AIPERF_WARMUP_REQUESTS_PER_LANE: "1" + AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" + HF_HUB_CACHE: "/hf_hub_cache" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml new file mode 100644 index 0000000000..dda7f1adad --- /dev/null +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -0,0 +1,115 @@ +name: "agg-gb300-tp8-mtp-lowlatency" + +# Low-latency AgentX aggregate topology: one TP8 worker spans two +# four-GPU GB300 nodes and serves both prefill and decode. + +model: + path: "deepseek-v4-pro" + container: "dynamo-sglang" + precision: "fp4" + +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + +dynamo: + install: true + hash: "7a4e47ead90ec6b479e397996f6479ce7d251510" + +slurm: + time_limit: "4:00:00" + +health_check: + max_attempts: 1440 + interval_seconds: 10 + +resources: + gpu_type: "gb300" + gpus_per_node: 4 + agg_nodes: 2 + agg_workers: 1 + gpus_per_agg: 8 + +infra: + etcd_nats_dedicated_node: false + nats_max_payload_mb: 32 + +frontend: + type: dynamo + nginx_session_affinity: true + nginx_session_affinity_header: X-Dynamo-Session-ID + enable_multiple_frontends: false + env: + PIP_BREAK_SYSTEM_PACKAGES: "1" + DYN_NATS_REQUEST_TIMEOUT_SECS: "1800" + args: + router-mode: "kv" + router-session-affinity-ttl-secs: "3600" + active-decode-blocks-threshold: "None" + active-prefill-tokens-threshold: "None" + active-prefill-tokens-threshold-frac: "None" + +backend: + type: sglang + aggregated_environment: + SGLANG_DEFAULT_THINKING: "1" + SGLANG_DSV4_REASONING_EFFORT: high + PIP_BREAK_SYSTEM_PACKAGES: "1" + SGLANG_JIT_DEEPGEMM_PRECOMPILE: "1" + SGLANG_OPT_SWA_SPLIT_LEAF_ON_INSERT: "1" + SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS: "1" + SGLANG_OPT_USE_CUSTOM_ALL_REDUCE_V2: "1" + SGLANG_OPT_USE_ONLINE_COMPRESS: "0" + SGLANG_OPT_USE_JIT_INDEXER_METADATA: "1" + SGLANG_OPT_USE_JIT_NORM: "1" + SGLANG_OPT_USE_TOPK_V2: "True" + + sglang_config: + aggregated: + served-model-name: "deepseek-ai/DeepSeek-V4-Pro" + enable-metrics: true + trust-remote-code: true + stream-interval: 10 + watchdog-timeout: 1000000 + mem-fraction-static: 0.94 + chunked-prefill-size: 8192 + max-prefill-tokens: 8192 + moe-runner-backend: "flashinfer_mxfp4" + disable-flashinfer-autotune: true + swa-full-tokens-ratio: 0.1 + max-running-requests: 4 + cuda-graph-max-bs-decode: 4 + scheduler-recv-interval: 30 + dp-size: 1 + tp-size: 8 + ep-size: 1 + speculative-algorithm: EAGLE + speculative-num-steps: 3 + speculative-eagle-topk: 1 + speculative-num-draft-tokens: 4 + +sbatch_directives: + mem: "0" + cpus-per-task: "144" + +srun_options: + mem: "0" + container-remap-root: "" + +benchmark: + type: custom + command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh + env: + INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace" + RESULT_DIR: "/logs/agentic" + PORT: "8000" + IS_MULTINODE: "false" + TP: "8" + AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true" + AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0" + AIPERF_REQUIRED_SERVER_METRIC_PREFIX: "sglang:" + AIPERF_WARMUP_REQUESTS_PER_LANE: "1" + AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" + HF_HUB_CACHE: "/hf_hub_cache" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 2f73b1c64a..c208c27540 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7784,33 +7784,46 @@ kimik3-fp4-gb200-dynamo-vllm-agentic: dp-attn: true dsv4-fp4-gb300-dynamo-sglang-agentic-agg: - image: lmsysorg/sglang:nightly-dev-cu13-20260719-99f5a6f4 + image: lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: cluster:gb300-nv precision: fp4 framework: dynamo-sglang - router: { name: dynamo-router, version: "1.3.0.dev20260718" } + router: { name: dynamo-router, version: "7a4e47ead90ec6b479e397996f6479ce7d251510" } multinode: true disagg: false scenarios: agentic-coding: - - dram-utilization: 0.80 - search-space: + - search-space: - spec-decoding: mtp - conc-list: [2, 4, 8, 16] - kv-offloading: dram - kv-offload-backend: { name: hicache } + conc-list: [1, 4] + prefill: + num-worker: 1 + tp: 8 + ep: 1 + dp-attn: false + additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" + - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml" + decode: + num-worker: 0 + tp: 8 + ep: 1 + dp-attn: false + - search-space: + - spec-decoding: mtp + conc-list: [8] prefill: num-worker: 1 tp: 4 ep: 1 dp-attn: false additional-settings: - - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-kvoffload.yaml" - # Aggregated worker: prefill's GPUs also serve decode, so decode has no - # separate allocation (num-worker: 0). Deployment is recipe-driven - # (agg_workers: 1); this only makes GPU accounting count 4, not 4+4. + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" + - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml" decode: num-worker: 0 tp: 4 From fd9e000158026cabae0875fa1d8d653901bce74d Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Tue, 18 Aug 2026 14:42:33 +0800 Subject: [PATCH 02/10] chore(perf): register SGLang low-concurrency sweep MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Append the AgentX aggregate configuration to the performance changelog for PR #2644. 中文:在性能变更记录末尾登记 PR #2644 的 SGLang AgentX 聚合低并发配置。 --- perf-changelog.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 085e9cb889..27abc88b75 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -6049,3 +6049,12 @@ - "Add GB200 GLM-5.2 FP4 Dynamo-SGLang AgentX with EAGLE MTP, HiCache DRAM offload, and KV-aware correlation-ID affinity." - "Measure the TP8 aggregate curve and tuned 1P1D TP4 HiCache c10/c12 disaggregated frontier with every logical SGLang metrics endpoint." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2620 + +- config-keys: + - dsv4-fp4-gb300-dynamo-sglang-agentic-agg + scenario-type: + - agentic-coding + description: + - "Tune the GB300 SGLang AgentX aggregate low-concurrency frontier with TP8 concurrency 1/4 and TP4 concurrency 8 profiles." + - "Use phase-specific decode CUDA graph limits and throughput-only synthetic MTP acceptance; eval-only runs retain real target verification." + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 From ad7466708c0883042a4de0c6bb9661315026e42e Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Tue, 18 Aug 2026 14:53:51 +0800 Subject: [PATCH 03/10] chore(agentx): align SGLang and Dynamo versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use SGLang nightly-dev-cu13-20260811-d59c1ddf and the Dynamo 1.4.0 release across the GB300 aggregate and disaggregated recipe family. 中文:将 GB300 聚合与分离式配置族统一更新到 SGLang nightly-dev-cu13-20260811-d59c1ddf 和 Dynamo 1.4.0 正式版。 --- .../deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 4 +++- .../deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 4 +++- .../disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml | 2 +- configs/nvidia-master.yaml | 6 +++--- perf-changelog.yaml | 2 ++ 9 files changed, 16 insertions(+), 10 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml index 300080dca5..bc59062e0b 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -13,10 +13,12 @@ identity: repo: "deepseek-ai/DeepSeek-V4-Pro" container: image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" dynamo: install: true - hash: "7a4e47ead90ec6b479e397996f6479ce7d251510" + wheel: "1.4.0" slurm: time_limit: "4:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml index dda7f1adad..2d961e467c 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -13,10 +13,12 @@ identity: repo: "deepseek-ai/DeepSeek-V4-Pro" container: image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" dynamo: install: true - hash: "7a4e47ead90ec6b479e397996f6479ce7d251510" + wheel: "1.4.0" slurm: time_limit: "4:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml index 709962936f..ad3bb91780 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml @@ -15,7 +15,7 @@ model: dynamo: install: true - wheel: "1.3.0.dev20260718" + wheel: "1.4.0" slurm: time_limit: "8:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml index e414387655..e0d7392259 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml @@ -15,7 +15,7 @@ model: dynamo: install: true - wheel: "1.3.0.dev20260718" + wheel: "1.4.0" slurm: time_limit: "8:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml index 74b371e94e..01784bf425 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml @@ -15,7 +15,7 @@ model: dynamo: install: true - wheel: "1.3.0.dev20260718" + wheel: "1.4.0" slurm: time_limit: "8:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml index 6b585fba80..380b78f622 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml @@ -15,7 +15,7 @@ model: dynamo: install: true - wheel: "1.3.0.dev20260718" + wheel: "1.4.0" slurm: time_limit: "8:00:00" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml index b2cac21c78..c42153480d 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml @@ -15,7 +15,7 @@ model: dynamo: install: true - wheel: "1.3.0.dev20260718" + wheel: "1.4.0" slurm: time_limit: "8:00:00" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index c208c27540..90916fb20d 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7790,7 +7790,7 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-agg: runner: cluster:gb300-nv precision: fp4 framework: dynamo-sglang - router: { name: dynamo-router, version: "7a4e47ead90ec6b479e397996f6479ce7d251510" } + router: { name: dynamo-router, version: "1.4.0" } multinode: true disagg: false scenarios: @@ -7831,13 +7831,13 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-agg: dp-attn: false dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: - image: lmsysorg/sglang:nightly-dev-cu13-20260719-99f5a6f4 + image: lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: cluster:gb300-nv precision: fp4 framework: dynamo-sglang - router: { name: dynamo-router, version: "1.3.0.dev20260718" } + router: { name: dynamo-router, version: "1.4.0" } kv-p2p-transfer: mooncake multinode: true disagg: true diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 27abc88b75..aca4780724 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4885,6 +4885,7 @@ - config-keys: - dsv4-fp4-gb300-dynamo-sglang-agentic-agg - dsv4-fp4-gb300-dynamo-sglang-agentic-disagg + - dsv4-fp4-gb300-dynamo-sglang-agentic-disagg description: - "Add GB300 DeepSeek-V4 dynamo-sglang agentic recipes (agg-tp4 + dep8 disagg pareto)" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2157 @@ -6056,5 +6057,6 @@ - agentic-coding description: - "Tune the GB300 SGLang AgentX aggregate low-concurrency frontier with TP8 concurrency 1/4 and TP4 concurrency 8 profiles." + - "Update the aggregate and disaggregated configurations to SGLang nightly-dev-cu13-20260811-d59c1ddf and the Dynamo 1.4.0 release." - "Use phase-specific decode CUDA graph limits and throughput-only synthetic MTP acceptance; eval-only runs retain real target verification." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 From b402af5ffacc8936e154b4ea39508e4d04efacc3 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Tue, 18 Aug 2026 16:33:43 +0800 Subject: [PATCH 04/10] fix(perf): restore append-only changelog scope MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep the historical PR #2157 entry unchanged and select both aggregate and disaggregated keys in the PR #2644 entry. 中文:恢复性能变更记录的仅追加约束,保持历史 PR #2157 条目不变,并在 PR #2644 条目中同时选择聚合与分离式配置。 --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index aca4780724..ae1ed458c1 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -4885,7 +4885,6 @@ - config-keys: - dsv4-fp4-gb300-dynamo-sglang-agentic-agg - dsv4-fp4-gb300-dynamo-sglang-agentic-disagg - - dsv4-fp4-gb300-dynamo-sglang-agentic-disagg description: - "Add GB300 DeepSeek-V4 dynamo-sglang agentic recipes (agg-tp4 + dep8 disagg pareto)" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2157 @@ -6053,6 +6052,7 @@ - config-keys: - dsv4-fp4-gb300-dynamo-sglang-agentic-agg + - dsv4-fp4-gb300-dynamo-sglang-agentic-disagg scenario-type: - agentic-coding description: From 589cf26ad04b8c79665f06024849fc4c43ce9cb3 Mon Sep 17 00:00:00 2001 From: Rohit Pujar Nagraj Date: Tue, 18 Aug 2026 11:14:51 -0700 Subject: [PATCH 05/10] fix(agentx): complete GB300 SGLang sweep contract MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 完善 GB300 SGLang AgentX 配置:同步配方镜像与身份信息,将模拟验收率限定到吞吐任务,并统一 Slurm 账户与作业时限。 --- .../agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 5 +---- .../agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 5 +---- ...300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml | 16 +++++++++------- ...gg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml | 16 +++++++++------- ...gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml | 16 +++++++++------- ...gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml | 16 +++++++++------- ...gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml | 16 +++++++++------- configs/nvidia-master.yaml | 10 ++++++++++ perf-changelog.yaml | 1 + runners/launch_gb300-nv.sh | 10 +++++++--- 10 files changed, 65 insertions(+), 46 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml index bc59062e0b..b2aa4a88e1 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -5,7 +5,7 @@ name: "agg-gb300-tp4-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" identity: @@ -20,9 +20,6 @@ dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "4:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml index 2d961e467c..336b90ca56 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -5,7 +5,7 @@ name: "agg-gb300-tp8-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" identity: @@ -20,9 +20,6 @@ dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "4:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml index ad3bb91780..e305f86242 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml @@ -10,16 +10,21 @@ name: "disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" + dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "8:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 @@ -94,9 +99,6 @@ backend: decode_environment: SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900" - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" PIP_BREAK_SYSTEM_PACKAGES: '1' PYTHONUNBUFFERED: '1' SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: '1' diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml index e0d7392259..151fe388eb 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml @@ -10,16 +10,21 @@ name: "disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" + dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "8:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 @@ -94,9 +99,6 @@ backend: # Match the TP4 aggregate worker: avoid the pathological DSV4 EAGLE # draft-extend graph capture while retaining the target/decode graphs. SGLANG_DISABLE_DRAFT_EXTEND_CUDA_GRAPH: "1" - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" PIP_BREAK_SYSTEM_PACKAGES: '1' PYTHONUNBUFFERED: '1' SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: '1' diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml index 01784bf425..fc0ef0a480 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml @@ -10,16 +10,21 @@ name: "disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" + dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "8:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 @@ -91,9 +96,6 @@ backend: decode_environment: SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900" - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" PIP_BREAK_SYSTEM_PACKAGES: '1' PYTHONUNBUFFERED: '1' SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: '1' diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml index 380b78f622..c396796a27 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml @@ -10,16 +10,21 @@ name: "disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" + dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "8:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 @@ -90,9 +95,6 @@ backend: decode_environment: SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900" - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" PIP_BREAK_SYSTEM_PACKAGES: '1' PYTHONUNBUFFERED: '1' SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: '1' diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml index c42153480d..803150680c 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml @@ -10,16 +10,21 @@ name: "disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "dynamo-sglang" + container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" precision: "fp4" +identity: + model: + repo: "deepseek-ai/DeepSeek-V4-Pro" + container: + image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + frameworks: + dynamo: "1.4.0" + dynamo: install: true wheel: "1.4.0" -slurm: - time_limit: "8:00:00" - health_check: max_attempts: 1440 interval_seconds: 10 @@ -91,9 +96,6 @@ backend: decode_environment: SGLANG_DISAGGREGATION_WAITING_TIMEOUT: "900" - SGLANG_SIMULATE_ACC_LEN: '2.49' - SGLANG_SIMULATE_ACC_METHOD: match-expected - SGLANG_SIMULATE_ACC_TOKEN_MODE: "real-draft-token" PIP_BREAK_SYSTEM_PACKAGES: '1' PYTHONUNBUFFERED: '1' SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECK: '1' diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index dfbdc7a807..381b7af38f 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8010,6 +8010,8 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: ep: 8 dp-attn: true additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml" decode: num-worker: 1 @@ -8026,6 +8028,8 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: ep: 8 dp-attn: true additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml" decode: num-worker: 1 @@ -8042,6 +8046,8 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: ep: 8 dp-attn: true additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml" decode: num-worker: 1 @@ -8058,6 +8064,8 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: ep: 8 dp-attn: true additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml" decode: num-worker: 1 @@ -8074,6 +8082,8 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: ep: 8 dp-attn: true additional-settings: + - "SYNTHETIC_ACCEPTANCE=true" + - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml" decode: num-worker: 1 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index a48d2462a9..71986ce11c 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -6085,4 +6085,5 @@ - "Tune the GB300 SGLang AgentX aggregate low-concurrency frontier with TP8 concurrency 1/4 and TP4 concurrency 8 profiles." - "Update the aggregate and disaggregated configurations to SGLang nightly-dev-cu13-20260811-d59c1ddf and the Dynamo 1.4.0 release." - "Use phase-specific decode CUDA graph limits and throughput-only synthetic MTP acceptance; eval-only runs retain real target verification." + - "Use an eight-hour DSV4 AgentX allocation and pass the configured GB300 Slurm account to image-validation steps." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 diff --git a/runners/launch_gb300-nv.sh b/runners/launch_gb300-nv.sh index 88b964a8ad..b682e97d20 100644 --- a/runners/launch_gb300-nv.sh +++ b/runners/launch_gb300-nv.sh @@ -118,7 +118,7 @@ NGINX_SQUASH_FILE="/data/home/sa-shared/gharunners/squash/$(echo "$NGINX_IMAGE" import_squash() { local squash="$1" image="$2" local lock="${squash}.lock" - srun --partition=$SLURM_PARTITION --exclusive --time=180 bash -c " + srun --account="$SLURM_ACCOUNT" --partition="$SLURM_PARTITION" --exclusive --time=180 bash -c " exec 9>\"$lock\" flock -w 600 9 || { echo 'Failed to acquire lock for $squash' >&2; exit 1; } if unsquashfs -l \"$squash\" > /dev/null 2>&1; then @@ -175,7 +175,7 @@ if [[ "$USES_DCGM_POWER" == "1" ]]; then # x86, nodes aarch64). import_squash "$DCGM_EXPORTER_SQSH" "$DCGM_EXPORTER_IMAGE" test -r "$DCGM_EXPORTER_SQSH" || { echo "Error: DCGM exporter squash not readable: $DCGM_EXPORTER_SQSH" >&2; exit 1; } - srun --partition=$SLURM_PARTITION --exclusive --time=30 bash -c "unsquashfs -l \"$DCGM_EXPORTER_SQSH\" > /dev/null" || { echo "Error: DCGM exporter squash invalid: $DCGM_EXPORTER_SQSH" >&2; exit 1; } + srun --account="$SLURM_ACCOUNT" --partition="$SLURM_PARTITION" --exclusive --time=30 bash -c "unsquashfs -l \"$DCGM_EXPORTER_SQSH\" > /dev/null" || { echo "Error: DCGM exporter squash invalid: $DCGM_EXPORTER_SQSH" >&2; exit 1; } sha256sum "$DCGM_EXPORTER_SQSH" > "$GITHUB_WORKSPACE/exporter-image.sha256" fi @@ -383,13 +383,17 @@ echo "Configs available at: $SRT_REPO_DIR/" # Create srtslurm.yaml for srtctl (used by both frameworks) SRTCTL_ROOT="${SRT_REPO_DIR}" echo "Creating srtslurm.yaml configuration..." +SRT_DEFAULT_TIME_LIMIT="4:00:00" +if [[ "$IS_AGENTIC" == "1" && "$FRAMEWORK" == "dynamo-sglang" && "$MODEL_PREFIX" == "dsv4" ]]; then + SRT_DEFAULT_TIME_LIMIT="8:00:00" +fi cat > srtslurm.yaml < Date: Tue, 18 Aug 2026 12:10:39 -0700 Subject: [PATCH 06/10] test(gb300): align power contract with Slurm account MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新 GB300 电源通道契约测试,使其验证显式的 Slurm 账户和分区参数。 --- utils/test_gb300_power_official_contract.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/test_gb300_power_official_contract.py b/utils/test_gb300_power_official_contract.py index 6255b24a48..7cf017c6ce 100644 --- a/utils/test_gb300_power_official_contract.py +++ b/utils/test_gb300_power_official_contract.py @@ -44,7 +44,8 @@ def test_launcher_provisions_exporter_through_shared_squash_path(): assert_exporter_provisioning(launcher) # No SQUASH_DIR var here; the /data/ mount avoids the /home NFS ELOOP bug. assert 'DCGM_EXPORTER_SQSH="/data/home/sa-shared/gharunners/squash/' in launcher - assert 'srun --partition=$SLURM_PARTITION --exclusive --time=30 bash -c "unsquashfs -l' in launcher + assert 'srun --account="$SLURM_ACCOUNT" --partition="$SLURM_PARTITION" --exclusive --time=180' in launcher + assert 'srun --account="$SLURM_ACCOUNT" --partition="$SLURM_PARTITION" --exclusive --time=30 bash -c "unsquashfs -l' in launcher def test_launcher_pins_power_producer(): From d7d6a01dbb9ca31764ae81185f82de714538b7d1 Mon Sep 17 00:00:00 2001 From: Ankur-singh Date: Thu, 20 Aug 2026 21:22:15 -0700 Subject: [PATCH 07/10] =?UTF-8?q?fix(agentx):=20warm=20DSV4=20GB300=20aggr?= =?UTF-8?q?egate=20profiles=20like=20every=20other=20recipe=20/=20?= =?UTF-8?q?=E8=AE=A9=20DSV4=20GB300=20=E8=81=9A=E5=90=88=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8E=E5=85=B6=E4=BB=96=E9=85=8D=E7=BD=AE=E9=87=87=E7=94=A8?= =?UTF-8?q?=E7=9B=B8=E5=90=8C=E9=A2=84=E7=83=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit agg-gb300-tp4-mtp-lowlatency and agg-gb300-tp8-mtp-lowlatency were the only recipes in srt-slurm-recipes/ setting AIPERF_WARMUP_REQUESTS_PER_LANE, and they set it to 1. That is the value fast mode uses to minimise setup (benchmark_lib.sh:1979-1982), but without fast mode's matching cut to the profiling duration, so the full measurement window ran off a barely-primed live state. The override arrived in 80eb81aca, whose message covers CUDA graph limits and synthetic acceptance but never mentions warmup, and the kvoffload recipe these two replace did not set it. The five disagg recipes in this PR do not set it either, so the aggregate and disaggregated arms of the same model and SKU were being warmed differently and published on the same chart. Drop the override so both fall back to the standard ten requests per lane. Requires a fresh sweep for the two aggregate profiles: warmup depth changes the live state the profiling window starts from. --- .../sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 1 - .../sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 1 - perf-changelog.yaml | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml index b2aa4a88e1..a437b80615 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -109,6 +109,5 @@ benchmark: AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true" AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0" AIPERF_REQUIRED_SERVER_METRIC_PREFIX: "sglang:" - AIPERF_WARMUP_REQUESTS_PER_LANE: "1" AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" HF_HUB_CACHE: "/hf_hub_cache" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml index 336b90ca56..d899d3e3e2 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -109,6 +109,5 @@ benchmark: AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID: "true" AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING: "0" AIPERF_REQUIRED_SERVER_METRIC_PREFIX: "sglang:" - AIPERF_WARMUP_REQUESTS_PER_LANE: "1" AIPERF_DATASET_MMAP_CACHE_DIR: "/aiperf_mmap_cache" HF_HUB_CACHE: "/hf_hub_cache" diff --git a/perf-changelog.yaml b/perf-changelog.yaml index c8507db480..d63d18fdff 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -6097,4 +6097,5 @@ - "Update the aggregate and disaggregated configurations to SGLang nightly-dev-cu13-20260811-d59c1ddf and the Dynamo 1.4.0 release." - "Use phase-specific decode CUDA graph limits and throughput-only synthetic MTP acceptance; eval-only runs retain real target verification." - "Use an eight-hour DSV4 AgentX allocation and pass the configured GB300 Slurm account to image-validation steps." + - "Warm the aggregate low-latency profiles with the standard ten requests per trajectory lane instead of one, so they enter the profiling window from the same live state as every other AgentX recipe." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 From 051935459fa646cc27c249fc71e9dca62d335f16 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:04:20 +0800 Subject: [PATCH 08/10] perf(agentx): refresh SGLang and reduce c1536 prefill workers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: The PR still pinned the August 11 SGLang nightly, and the concurrency-1536 disaggregated point retained six DEP8 prefill workers after the validated topology moved to five. Fix: Pin all GB300 DSV4 SGLang AgentX recipes and master entries to nightly-dev-cu13-20260821-f825d729. Rename the c1536 recipe from 12P4D to 10P4D and reduce its prefill nodes/workers from 12/6 to 10/5 while retaining one DEP16 decode worker. Validation: Verified the multi-arch Docker tag, generated all eight matrix points with c1536 selecting five prefill workers, passed 231 matrix tests, and passed srtctl dry-run for all seven recipes. 中文:将全部 GB300 DSV4 SGLang AgentX 配置升级到 nightly-dev-cu13-20260821-f825d729,并将并发 1536 的分离式拓扑从 6 个 DEP8 预填充 worker 调整为 5 个;对应 recipe 从 12P4D 改为 10P4D。已验证镜像架构、矩阵生成、231 项单测及 7 个 recipe 的 dry-run。 --- .../agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 4 ++-- .../agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 4 ++-- ...-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml} | 12 ++++++------ ...disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml | 4 ++-- ...agg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml | 4 ++-- ...agg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml | 4 ++-- ...agg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml | 4 ++-- configs/nvidia-master.yaml | 8 ++++---- perf-changelog.yaml | 3 ++- 9 files changed, 24 insertions(+), 23 deletions(-) rename benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/{disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml => disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml} (95%) diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml index a437b80615..74172fe7d0 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -5,14 +5,14 @@ name: "agg-gb300-tp4-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml index d899d3e3e2..8ba44583a2 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -5,14 +5,14 @@ name: "agg-gb300-tp8-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml similarity index 95% rename from benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml rename to benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml index e305f86242..d0d921452d 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml @@ -1,7 +1,7 @@ -name: "disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload" +name: "disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload" # Agentic-coding SGLang disaggregated Pareto recipe for DeepSeek-V4-Pro on GB300 -# (12P x DEP8 / 4D x DEP16, MTP + hierarchical-cache KV offload), tuned for concurrency 1536. +# (10P x DEP8 / 4D x DEP16, MTP + hierarchical-cache KV offload), tuned for concurrency 1536. # # Uses the flat single-variant srtctl schema the agentic CI flow expects; # resources + backend (prefill/decode env + sglang_config) are normalized @@ -10,14 +10,14 @@ name: "disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" @@ -32,9 +32,9 @@ health_check: resources: gpu_type: gb300 gpus_per_node: 4 - prefill_nodes: 12 + prefill_nodes: 10 decode_nodes: 4 - prefill_workers: 6 + prefill_workers: 5 decode_workers: 1 gpus_per_prefill: 8 gpus_per_decode: 16 diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml index 151fe388eb..de27b8cc4c 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml @@ -10,14 +10,14 @@ name: "disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml index fc0ef0a480..cfd87b5ad5 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml @@ -10,14 +10,14 @@ name: "disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml index c396796a27..ba0beefdf1 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml @@ -10,14 +10,14 @@ name: "disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml index 803150680c..85b7383345 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml @@ -10,14 +10,14 @@ name: "disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" precision: "fp4" identity: model: repo: "deepseek-ai/DeepSeek-V4-Pro" container: - image: "lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf" + image: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" frameworks: dynamo: "1.4.0" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 12a86a8096..5fc87b35d9 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -7955,7 +7955,7 @@ kimik3-fp4-gb200-dynamo-vllm-agentic: dp-attn: true dsv4-fp4-gb300-dynamo-sglang-agentic-agg: - image: lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf + image: lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: cluster:gb300-nv @@ -8002,7 +8002,7 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-agg: dp-attn: false dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: - image: lmsysorg/sglang:nightly-dev-cu13-20260811-d59c1ddf + image: lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: cluster:gb300-nv @@ -8093,14 +8093,14 @@ dsv4-fp4-gb300-dynamo-sglang-agentic-disagg: kv-offloading: dram kv-offload-backend: { name: hicache } prefill: - num-worker: 6 + num-worker: 5 tp: 8 ep: 8 dp-attn: true additional-settings: - "SYNTHETIC_ACCEPTANCE=true" - "SYNTHETIC_ACCEPTANCE_LENGTH=2.49" - - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-12p4d-dep8-dep16-c1536-mtp-kvoffload.yaml" + - "CONFIG_FILE=recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml" decode: num-worker: 1 tp: 16 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index d63d18fdff..241a001f6c 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -6094,8 +6094,9 @@ - agentic-coding description: - "Tune the GB300 SGLang AgentX aggregate low-concurrency frontier with TP8 concurrency 1/4 and TP4 concurrency 8 profiles." - - "Update the aggregate and disaggregated configurations to SGLang nightly-dev-cu13-20260811-d59c1ddf and the Dynamo 1.4.0 release." + - "Update the aggregate and disaggregated configurations to SGLang nightly-dev-cu13-20260821-f825d729 and the Dynamo 1.4.0 release." - "Use phase-specific decode CUDA graph limits and throughput-only synthetic MTP acceptance; eval-only runs retain real target verification." - "Use an eight-hour DSV4 AgentX allocation and pass the configured GB300 Slurm account to image-validation steps." - "Warm the aggregate low-latency profiles with the standard ten requests per trajectory lane instead of one, so they enter the profiling window from the same live state as every other AgentX recipe." + - "Reduce the concurrency-1536 disaggregated topology from six to five DEP8 prefill workers while retaining one DEP16 decode worker." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 From 81c6e3590cba307e3bfe18a995df2a94f1189c2a Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Fri, 21 Aug 2026 13:13:56 +0800 Subject: [PATCH 09/10] fix(agentx): restore SGLang container alias MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keep model.container on the dynamo-sglang logical alias so the runner resolves it through the master image and generated squash mapping. Preserve the exact nightly tag only in identity metadata. 让 model.container 保持 dynamo-sglang 逻辑别名,由 runner 通过 master image 和生成的 squash 映射解析。实际 nightly tag 仅保留在 identity 元数据中。 --- .../deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml | 2 +- .../deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml | 2 +- .../disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml | 2 +- .../agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml | 2 +- .../disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml index 74172fe7d0..e67fade66a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp4-mtp-lowlatency.yaml @@ -5,7 +5,7 @@ name: "agg-gb300-tp4-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml index 8ba44583a2..3f347d876f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/agg-gb300-tp8-mtp-lowlatency.yaml @@ -5,7 +5,7 @@ name: "agg-gb300-tp8-mtp-lowlatency" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml index d0d921452d..d0f771ff98 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload.yaml @@ -10,7 +10,7 @@ name: "disagg-gb300-10p4d-dep8-dep16-c1536-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml index de27b8cc4c..1365e9ed0b 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload.yaml @@ -10,7 +10,7 @@ name: "disagg-gb300-2p1d-dep8-tp4-c80-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml index cfd87b5ad5..c169da28c0 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload.yaml @@ -10,7 +10,7 @@ name: "disagg-gb300-2p4d-dep8-dep16-c256-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml index ba0beefdf1..f6c4e40a1f 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload.yaml @@ -10,7 +10,7 @@ name: "disagg-gb300-4p4d-dep8-dep16-c512-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: diff --git a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml index 85b7383345..d939becf8a 100644 --- a/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml +++ b/benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/agentic/disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload.yaml @@ -10,7 +10,7 @@ name: "disagg-gb300-6p4d-dep8-dep16-c768-mtp-kvoffload" model: path: "deepseek-v4-pro" - container: "lmsysorg/sglang:nightly-dev-cu13-20260821-f825d729" + container: "dynamo-sglang" precision: "fp4" identity: From 6219021e9f8146131057b73c1421181a0eec26dd Mon Sep 17 00:00:00 2001 From: Cameron Quilici Date: Tue, 25 Aug 2026 16:15:38 -0500 Subject: [PATCH 10/10] Update perf-changelog.yaml --- perf-changelog.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 571d9f90be..cde6f0fe02 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -6465,4 +6465,5 @@ - "Use an eight-hour DSV4 AgentX allocation and pass the configured GB300 Slurm account to image-validation steps." - "Warm the aggregate low-latency profiles with the standard ten requests per trajectory lane instead of one, so they enter the profiling window from the same live state as every other AgentX recipe." - "Reduce the concurrency-1536 disaggregated topology from six to five DEP8 prefill workers while retaining one DEP16 decode worker." - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 \ No newline at end of file + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/2644 +