From 2acedee9c3bb23281f3b56509aab0aa8cad1918b Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:29:23 +0800 Subject: [PATCH 1/8] Bump GB300 DSV4.1 Flash SGLang to the 20261013 nightly with fastokens The 20261013 nightly ships fastokens 0.3.2 (sgl-project/sglang#43104). The chat endpoint re-encodes the whole 300K-600K-token conversation each turn; HF tokenizers spends about 0.6 s of TTFT on it on Grace, fastokens about 0.03 s. Local one-hour runs, 20261012 to 20261013 + fastokens: TP4 c1 TTFT p90 1.38 to 0.28 s, 7,314 to 7,850 tok/s/GPU; TP2 c32 183.1 to 190.9 P90 tok/s/user; DEP2 c128 81.6 to 86.6 P90 at the same throughput. --- .../dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml | 2 ++ inferencex-e2e/configs/nvidia-master.yaml | 2 +- inferencex-e2e/perf-changelog.yaml | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index 1a09f4f788..ef80474c01 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -31,6 +31,8 @@ base: cuda-graph-max-bs-decode: 64 reasoning-parser: auto tool-call-parser: auto + # Re-encoding a 300K-600K-token conversation takes ~0.6 s with HF tokenizers. + tokenizer-backend: fastokens # Draft passes under long-context load outlast the 1800 s default watchdog. watchdog-timeout: 3600 enable-metrics: true diff --git a/inferencex-e2e/configs/nvidia-master.yaml b/inferencex-e2e/configs/nvidia-master.yaml index d97cd34881..b7dedfc8c1 100644 --- a/inferencex-e2e/configs/nvidia-master.yaml +++ b/inferencex-e2e/configs/nvidia-master.yaml @@ -9125,7 +9125,7 @@ dsv41flash-fp4-b300-sglang-agentic-dspark: # Official SGLang nightly; TP4 C1 uses GPU Engram, other points use host DRAM. dsv41flash-fp4-gb300-sglang-agentic-dspark: - image: lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935@sha256:b5c488694d74c13587af6057b90220498c4869571c8e1e3c43dd6f43ae721306 + image: lmsysorg/sglang:nightly-dev-cu13-20261013-7224fce1@sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6 model: deepseek-ai/DeepSeek-V4.1-Flash model-prefix: dsv41flash runner: cluster:gb300-nv diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 05edfa3715..21077751ee 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9705,3 +9705,12 @@ - Pin minimaxm3 B300 FP4 vllm mtp AgentX to the 2026-10-13 image vllm/vllm-openai:nightly-5555a2d8f7116b2b4877f66516f4128176cf722a@sha256:e5c9e6bb82f645e8fca04e4d395743ee5ed473a62b98942d65f83c35d0c69301. - Preserve deployment topology, speculative mode, concurrency points, KV-offload settings and evaluation coverage. pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4000 + +- config-keys: + - dsv41flash-fp4-gb300-sglang-agentic-dspark + scenario-type: + - agentic-coding + description: + - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261013-7224fce1 (digest sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6), which ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104)." + - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU at 625.7 to 610.0 tok/s/user P90; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From a2ef9f30a5e39ba6739344a4f09f1b15984c52f2 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:50:16 +0800 Subject: [PATCH 2/8] Add a DEP2 c160 point to GB300 DSV4.1 Flash SGLang AgentX Same settings as DEP2 c128. A local one-hour run on the 20261012 image without fastokens gave 301,770 tok/s/GPU at 82.4 tok/s/user P90, against 278,104 at 84.2 for c128 in the same setup. --- .../sglang/gb300-fp4-mtp/agentic.yaml | 19 ++++++++++++++++++- inferencex-e2e/configs/nvidia-master.yaml | 2 +- inferencex-e2e/perf-changelog.yaml | 1 + 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index ef80474c01..05136e526f 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -63,7 +63,7 @@ base: # One variant per point. Admission is 2x CONC, capped at the graph batch. SWA # prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram tables in # host DRAM and runs 16K chunks with decoder SWA bounded replay and a longer -# prefill-decode interval. c64 and c128 run DEP2 (DP attention with MegaMoE) +# prefill-decode interval. c64, c128 and c160 run DEP2 (DP attention with MegaMoE) # behind the SGLang router with shortest-prefill-first scheduling. TP4 uses # static ragged verify and 16K chunks; c1 keeps Engram in HBM with no # prefill-decode interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 @@ -173,6 +173,23 @@ override_dep2_c128: <<: *dep2_client CONC: '128' +override_dep2_c160: + frontend: *dep2_frontend + roles: + agg: + gpus: 2 + args: + <<: *dep2_args + prefill-decode-interval: 16 + mem-fraction-static: 0.85 + max-running-requests: 256 + cuda-graph-max-bs-decode: 128 + env: *dep2_env + benchmark: + env: + <<: *dep2_client + CONC: '160' + override_tp4_c1: roles: agg: diff --git a/inferencex-e2e/configs/nvidia-master.yaml b/inferencex-e2e/configs/nvidia-master.yaml index b7dedfc8c1..9c08b83869 100644 --- a/inferencex-e2e/configs/nvidia-master.yaml +++ b/inferencex-e2e/configs/nvidia-master.yaml @@ -9138,7 +9138,7 @@ dsv41flash-fp4-gb300-sglang-agentic-dspark: - dram-utilization: 0.80 search-space: - { tp: 2, ep: 2, kv-offloading: none, spec-decoding: mtp, conc-list: [16, 32], srt-recipe: agentic.yaml } - - { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [64, 128], router: { name: sglang-router, version: "0.3.2" }, srt-recipe: agentic.yaml } + - { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [64, 128, 160], router: { name: sglang-router, version: "0.3.2" }, srt-recipe: agentic.yaml } - { tp: 4, ep: 1, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4, 16], srt-recipe: agentic.yaml } dsv41flash-fp4-gb300-dynamo-sglang-agentic-agg: image: lmsysorg/sglang:nightly-dev-20260928-81f27fb3@sha256:d9e4917808cfaa4b3be033a0c85a3a73d71eb93c17accbfa2ac3e96f551f3a33 diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 21077751ee..1a741dce25 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9713,4 +9713,5 @@ description: - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261013-7224fce1 (digest sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6), which ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104)." - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU at 625.7 to 610.0 tok/s/user P90; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." + - "Add DEP2 c160 with the c128 settings (DP attention, MegaMoE, sglang-router, 16-step prefill-decode interval, mem-fraction-static 0.85, admits 256 with a 128 graph batch). A local one-hour run on the 20261012 image without fastokens gave 301,770 tok/s/GPU at 82.4 tok/s/user P90 (TTFT p90 3.9 s), against 278,104 at 84.2 for c128 in the same setup." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From 94c8f6bb4c9e7f18c98395efba895e6f5a13e46d Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:06:49 +0800 Subject: [PATCH 3/8] TP4 c1: admit one request and run decoder SWA bounded replay A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 625.1 to 654.4 tok/s/user P90 at 7,848 tok/s/GPU, TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; p99 0.97 to 1.13 s. --- .../sglang/gb300-fp4-mtp/agentic.yaml | 22 ++++++++++--------- inferencex-e2e/perf-changelog.yaml | 1 + 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index a41f7a2100..f439d5784a 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -57,15 +57,15 @@ base: AIPERF_HTTP_TCP_USER_TIMEOUT: '900000' AIPERF_REQUIRED_SERVER_METRIC_PREFIX: 'sglang:' -# One variant per point. Admission is 2x CONC, capped at the graph batch. SWA -# prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram tables in -# host DRAM and runs 16K chunks with decoder SWA bounded replay and a longer -# prefill-decode interval. c64 and c128 run DEP2 (DP attention with MegaMoE) -# behind the SGLang router with shortest-prefill-first scheduling. TP4 uses -# static ragged verify and 16K chunks; c1 keeps Engram in HBM with no -# prefill-decode interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 -# SWA tails and a 128 graph batch; c16 adds a 192-step interval. Saturation -# points get a longer warmup drain. +# One variant per point. Admission is 2x CONC (1 at c1), capped at the graph +# batch. SWA prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram +# tables in host DRAM and runs 16K chunks with decoder SWA bounded replay and a +# longer prefill-decode interval. c64 and c128 run DEP2 (DP attention with +# MegaMoE) behind the SGLang router with shortest-prefill-first scheduling. TP4 +# uses static ragged verify and 16K chunks; c1 keeps Engram in HBM with decoder +# SWA bounded replay and no prefill-decode interval. TP4/EP1 c4 and c16 keep +# Engram in host DRAM with 4096 SWA tails and a 128 graph batch; c16 adds a +# 192-step interval. Saturation points get a longer warmup drain. override_tp2_c16: roles: agg: @@ -179,7 +179,9 @@ override_tp4_c1: expert-parallel-size: 1 chunked-prefill-size: 16384 prefill-decode-interval: 0 - max-running-requests: 2 + max-running-requests: 1 + enable-decoder-swa-bounded-replay: true + cuda-graph-backend-prefill: disabled env: SGLANG_ENABLE_DSV41_ENGRAM_HOST_TABLE: '0' SGLANG_RAGGED_VERIFY_MODE: static diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index d9249ee59f..1d985a6148 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9726,4 +9726,5 @@ description: - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261013-7224fce1 (digest sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6), which ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104)." - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU at 625.7 to 610.0 tok/s/user P90; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." + - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From b2056979729693377d3ee65d8dccbf1170f8730f Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:11:54 +0800 Subject: [PATCH 4/8] Move to the 20261014 nightly and run bounded replay at DEP2 The 20261014 image allows decoder SWA bounded replay with DP attention (sgl-project/sglang#43812). Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 2.62 s. --- .../dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml | 12 +++++++----- inferencex-e2e/configs/nvidia-master.yaml | 2 +- inferencex-e2e/perf-changelog.yaml | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index f439d5784a..b326400d55 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -61,11 +61,12 @@ base: # batch. SWA prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram # tables in host DRAM and runs 16K chunks with decoder SWA bounded replay and a # longer prefill-decode interval. c64 and c128 run DEP2 (DP attention with -# MegaMoE) behind the SGLang router with shortest-prefill-first scheduling. TP4 -# uses static ragged verify and 16K chunks; c1 keeps Engram in HBM with decoder -# SWA bounded replay and no prefill-decode interval. TP4/EP1 c4 and c16 keep -# Engram in host DRAM with 4096 SWA tails and a 128 graph batch; c16 adds a -# 192-step interval. Saturation points get a longer warmup drain. +# MegaMoE and decoder SWA bounded replay) behind the SGLang router with +# shortest-prefill-first scheduling. TP4 uses static ragged verify and 16K +# chunks; c1 keeps Engram in HBM with decoder SWA bounded replay and no +# prefill-decode interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 +# SWA tails and a 128 graph batch; c16 adds a 192-step interval. Saturation +# points get a longer warmup drain. override_tp2_c16: roles: agg: @@ -138,6 +139,7 @@ override_dep2_c64: tokenizer-worker-num: 4 chunked-prefill-size: 16384 swa-prefix-tails: 4096 + enable-decoder-swa-bounded-replay: true prefill-decode-interval: 24 max-running-requests: 128 env: &dep2_env diff --git a/inferencex-e2e/configs/nvidia-master.yaml b/inferencex-e2e/configs/nvidia-master.yaml index b7dedfc8c1..b21428fbd8 100644 --- a/inferencex-e2e/configs/nvidia-master.yaml +++ b/inferencex-e2e/configs/nvidia-master.yaml @@ -9125,7 +9125,7 @@ dsv41flash-fp4-b300-sglang-agentic-dspark: # Official SGLang nightly; TP4 C1 uses GPU Engram, other points use host DRAM. dsv41flash-fp4-gb300-sglang-agentic-dspark: - image: lmsysorg/sglang:nightly-dev-cu13-20261013-7224fce1@sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6 + image: lmsysorg/sglang:nightly-dev-cu13-20261014-684fea8a@sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8 model: deepseek-ai/DeepSeek-V4.1-Flash model-prefix: dsv41flash runner: cluster:gb300-nv diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 1d985a6148..5eae28e08c 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9724,7 +9724,8 @@ scenario-type: - agentic-coding description: - - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261013-7224fce1 (digest sha256:20d36eeb32df0418a165641b51399fd4dc5239dad57f9b8d1f9974c4c9263ca6), which ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104)." - - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU at 625.7 to 610.0 tok/s/user P90; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." - - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue." + - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261014-684fea8a (digest sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8). It ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104) and decoder SWA bounded replay with DP attention (sgl-project/sglang#43812)." + - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." + - "DEP2 c64 and c128 run decoder SWA bounded replay. Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 tok/s/user P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 3.02 to 2.62 s." + - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue. On 20261014 the unchanged TP4 c1 measures 625.2 P90 at 7,852 tok/s/GPU." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From ed6c1c8260d6561eb20776cd56de4b9f8c397e09 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:22:21 +0800 Subject: [PATCH 5/8] Add DEP2 c160 with the HuggingFace tokenizer At c160, fastokens admits short subagent prefills faster and shortest-prefill-first then holds back long main-agent turns. Local one-hour c160 runs: 258,332 tok/s/GPU at 85.8 P90 with fastokens (20261013) against 296,603 at 79.2 (20261012) and 287,471 at 78.2 (20261013) with the HuggingFace tokenizer. --- .../sglang/gb300-fp4-mtp/agentic.yaml | 30 +++++++++++++++---- inferencex-e2e/configs/nvidia-master.yaml | 2 +- inferencex-e2e/perf-changelog.yaml | 3 +- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index b326400d55..713ef45d8b 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -60,13 +60,13 @@ base: # One variant per point. Admission is 2x CONC (1 at c1), capped at the graph # batch. SWA prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram # tables in host DRAM and runs 16K chunks with decoder SWA bounded replay and a -# longer prefill-decode interval. c64 and c128 run DEP2 (DP attention with +# longer prefill-decode interval. c64, c128 and c160 run DEP2 (DP attention with # MegaMoE and decoder SWA bounded replay) behind the SGLang router with -# shortest-prefill-first scheduling. TP4 uses static ragged verify and 16K -# chunks; c1 keeps Engram in HBM with decoder SWA bounded replay and no -# prefill-decode interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 -# SWA tails and a 128 graph batch; c16 adds a 192-step interval. Saturation -# points get a longer warmup drain. +# shortest-prefill-first scheduling; c160 keeps the HuggingFace tokenizer. TP4 +# uses static ragged verify and 16K chunks; c1 keeps Engram in HBM with decoder +# SWA bounded replay and no prefill-decode interval. TP4/EP1 c4 and c16 keep +# Engram in host DRAM with 4096 SWA tails and a 128 graph batch; c16 adds a +# 192-step interval. Saturation points get a longer warmup drain. override_tp2_c16: roles: agg: @@ -172,6 +172,24 @@ override_dep2_c128: <<: *dep2_client CONC: '128' +override_dep2_c160: + frontend: *dep2_frontend + roles: + agg: + gpus: 2 + args: + <<: *dep2_args + prefill-decode-interval: 16 + mem-fraction-static: 0.85 + max-running-requests: 256 + cuda-graph-max-bs-decode: 128 + tokenizer-backend: huggingface + env: *dep2_env + benchmark: + env: + <<: *dep2_client + CONC: '160' + override_tp4_c1: roles: agg: diff --git a/inferencex-e2e/configs/nvidia-master.yaml b/inferencex-e2e/configs/nvidia-master.yaml index b21428fbd8..ea6d3843b0 100644 --- a/inferencex-e2e/configs/nvidia-master.yaml +++ b/inferencex-e2e/configs/nvidia-master.yaml @@ -9138,7 +9138,7 @@ dsv41flash-fp4-gb300-sglang-agentic-dspark: - dram-utilization: 0.80 search-space: - { tp: 2, ep: 2, kv-offloading: none, spec-decoding: mtp, conc-list: [16, 32], srt-recipe: agentic.yaml } - - { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [64, 128], router: { name: sglang-router, version: "0.3.2" }, srt-recipe: agentic.yaml } + - { tp: 2, ep: 2, dp-attn: true, kv-offloading: none, spec-decoding: mtp, conc-list: [64, 128, 160], router: { name: sglang-router, version: "0.3.2" }, srt-recipe: agentic.yaml } - { tp: 4, ep: 1, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 4, 16], srt-recipe: agentic.yaml } dsv41flash-fp4-gb300-dynamo-sglang-agentic-agg: image: lmsysorg/sglang:nightly-dev-20260928-81f27fb3@sha256:d9e4917808cfaa4b3be033a0c85a3a73d71eb93c17accbfa2ac3e96f551f3a33 diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 5eae28e08c..833513e1ee 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9725,7 +9725,8 @@ - agentic-coding description: - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261014-684fea8a (digest sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8). It ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104) and decoder SWA bounded replay with DP attention (sgl-project/sglang#43812)." - - "Every point uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." + - "Every point except DEP2 c160 uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." - "DEP2 c64 and c128 run decoder SWA bounded replay. Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 tok/s/user P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 3.02 to 2.62 s." - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue. On 20261014 the unchanged TP4 c1 measures 625.2 P90 at 7,852 tok/s/GPU." + - "Add DEP2 c160 with the c128 settings and the HuggingFace tokenizer instead of fastokens. At this load fastokens admits short subagent prefills faster, and shortest-prefill-first then holds back long main-agent turns, so fewer long-context requests complete. Local one-hour c160 runs: 258,332 tok/s/GPU at 85.8 tok/s/user P90 with fastokens on 20261013, against 296,603 at 79.2 with the HuggingFace tokenizer on 20261012 and 287,471 at 78.2 on 20261013." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From 1cad659daea3f4d338dcaa99ae60982dbbe06181 Mon Sep 17 00:00:00 2001 From: weireweire <20922698+weireweire@users.noreply.github.com> Date: Thu, 15 Oct 2026 02:16:52 +0800 Subject: [PATCH 6/8] Run DEP2 c160 with a prefill-decode interval of 8 --- .../dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml | 13 +++++++------ inferencex-e2e/perf-changelog.yaml | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index 713ef45d8b..9e3f923640 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -62,11 +62,12 @@ base: # tables in host DRAM and runs 16K chunks with decoder SWA bounded replay and a # longer prefill-decode interval. c64, c128 and c160 run DEP2 (DP attention with # MegaMoE and decoder SWA bounded replay) behind the SGLang router with -# shortest-prefill-first scheduling; c160 keeps the HuggingFace tokenizer. TP4 -# uses static ragged verify and 16K chunks; c1 keeps Engram in HBM with decoder -# SWA bounded replay and no prefill-decode interval. TP4/EP1 c4 and c16 keep -# Engram in host DRAM with 4096 SWA tails and a 128 graph batch; c16 adds a -# 192-step interval. Saturation points get a longer warmup drain. +# shortest-prefill-first scheduling; c160 keeps the HuggingFace tokenizer and +# halves the interval to 8. TP4 uses static ragged verify and 16K chunks; c1 +# keeps Engram in HBM with decoder SWA bounded replay and no prefill-decode +# interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 SWA tails and +# a 128 graph batch; c16 adds a 192-step interval. Saturation points get a +# longer warmup drain. override_tp2_c16: roles: agg: @@ -179,7 +180,7 @@ override_dep2_c160: gpus: 2 args: <<: *dep2_args - prefill-decode-interval: 16 + prefill-decode-interval: 8 mem-fraction-static: 0.85 max-running-requests: 256 cuda-graph-max-bs-decode: 128 diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 833513e1ee..5cde7a9a00 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9728,5 +9728,5 @@ - "Every point except DEP2 c160 uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." - "DEP2 c64 and c128 run decoder SWA bounded replay. Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 tok/s/user P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 3.02 to 2.62 s." - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue. On 20261014 the unchanged TP4 c1 measures 625.2 P90 at 7,852 tok/s/GPU." - - "Add DEP2 c160 with the c128 settings and the HuggingFace tokenizer instead of fastokens. At this load fastokens admits short subagent prefills faster, and shortest-prefill-first then holds back long main-agent turns, so fewer long-context requests complete. Local one-hour c160 runs: 258,332 tok/s/GPU at 85.8 tok/s/user P90 with fastokens on 20261013, against 296,603 at 79.2 with the HuggingFace tokenizer on 20261012 and 287,471 at 78.2 on 20261013." + - "Add DEP2 c160 with the c128 settings, a prefill-decode interval of 8 and the HuggingFace tokenizer instead of fastokens. At this load fastokens admits short subagent prefills faster, and shortest-prefill-first then holds back long main-agent turns, so fewer long-context requests complete. Local one-hour c160 runs: 258,332 tok/s/GPU at 85.8 tok/s/user P90 with fastokens on 20261013, against 296,603 at 79.2 with the HuggingFace tokenizer on 20261012 and 287,471 at 78.2 on 20261013. On 20261014 with bounded replay, interval 16 measures 268,187 at 90.9 in CI, below c128 on both axes; interval 8 raises it to 294,159 at 61.1 locally, since AgentX throughput is almost all prefill tokens. Dropping bounded replay at interval 16 lowers it to 259,506." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033 From 86ace5cf836ad92bf302c3d39d3ff48b2f98af2c Mon Sep 17 00:00:00 2001 From: Po-Han Huang Date: Fri, 16 Oct 2026 08:15:50 -0700 Subject: [PATCH 7/8] Correct the fastokens version in the changelog entry [skip-sweep] The 20261014 image ships fastokens 0.3.4; sgl-project/sglang#43104 only sets the fastokens>=0.3.2 floor. Wording only: the recipe, master config and image are unchanged, so the pinned sweep still applies. Co-Authored-By: Claude Opus 5.5 --- inferencex-e2e/perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 8100223e5b..4b95a95c76 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9756,7 +9756,7 @@ scenario-type: - agentic-coding description: - - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261014-684fea8a (digest sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8). It ships the fastokens 0.3.2 tokenizer (sgl-project/sglang#43104) and decoder SWA bounded replay with DP attention (sgl-project/sglang#43812)." + - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261014-684fea8a (digest sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8). It ships the fastokens 0.3.4 tokenizer (sgl-project/sglang#43104 requires fastokens>=0.3.2) and decoder SWA bounded replay with DP attention (sgl-project/sglang#43812)." - "Every point except DEP2 c160 uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." - "DEP2 c64 and c128 run decoder SWA bounded replay. Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 tok/s/user P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 3.02 to 2.62 s." - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue. On 20261014 the unchanged TP4 c1 measures 625.2 P90 at 7,852 tok/s/GPU." From 09dd5f8b0ee100fc3fc24d6974f73b8de9867c92 Mon Sep 17 00:00:00 2001 From: Cam Quilici Date: Fri, 16 Oct 2026 16:02:48 +0000 Subject: [PATCH 8/8] Drop the recipe comment and simplify the changelog entry [skip-sweep] --- .../dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml | 11 ----------- inferencex-e2e/perf-changelog.yaml | 10 +++++----- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml index 9e3f923640..1d56ebd861 100644 --- a/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml +++ b/inferencex-e2e/benchmarks/single_node/srt-slurm-recipes/dsv41flash/sglang/gb300-fp4-mtp/agentic.yaml @@ -57,17 +57,6 @@ base: AIPERF_HTTP_TCP_USER_TIMEOUT: '900000' AIPERF_REQUIRED_SERVER_METRIC_PREFIX: 'sglang:' -# One variant per point. Admission is 2x CONC (1 at c1), capped at the graph -# batch. SWA prefix tails are 64x CONC up to 4096. TP2 keeps row-sharded Engram -# tables in host DRAM and runs 16K chunks with decoder SWA bounded replay and a -# longer prefill-decode interval. c64, c128 and c160 run DEP2 (DP attention with -# MegaMoE and decoder SWA bounded replay) behind the SGLang router with -# shortest-prefill-first scheduling; c160 keeps the HuggingFace tokenizer and -# halves the interval to 8. TP4 uses static ragged verify and 16K chunks; c1 -# keeps Engram in HBM with decoder SWA bounded replay and no prefill-decode -# interval. TP4/EP1 c4 and c16 keep Engram in host DRAM with 4096 SWA tails and -# a 128 graph batch; c16 adds a 192-step interval. Saturation points get a -# longer warmup drain. override_tp2_c16: roles: agg: diff --git a/inferencex-e2e/perf-changelog.yaml b/inferencex-e2e/perf-changelog.yaml index 4b95a95c76..b4a025502a 100644 --- a/inferencex-e2e/perf-changelog.yaml +++ b/inferencex-e2e/perf-changelog.yaml @@ -9756,9 +9756,9 @@ scenario-type: - agentic-coding description: - - "Bump the image from lmsysorg/sglang:nightly-dev-cu13-20261012-e6072935 to nightly-dev-cu13-20261014-684fea8a (digest sha256:ddae0e399d3d94f7827f16183301cf8dac4cf0eae0ef25590b7dac5881d713d8). It ships the fastokens 0.3.4 tokenizer (sgl-project/sglang#43104 requires fastokens>=0.3.2) and decoder SWA bounded replay with DP attention (sgl-project/sglang#43812)." - - "Every point except DEP2 c160 uses tokenizer-backend fastokens. The chat endpoint re-encodes the whole conversation each turn, 300K-600K tokens on AgentX; HF tokenizers takes about 0.6 s on Grace, on the TTFT path and the API server event loop, and fastokens about 0.03 s. Local one-hour runs, 20261012 without fastokens to 20261013 with it: TP4 c1 TTFT p50/p90 0.87/1.38 s to 0.24/0.28 s and 7,314 to 7,850 tok/s/GPU; TP2 c32 113,613 to 115,868 tok/s/GPU at 183.1 to 190.9 tok/s/user P90; DEP2 c128 271,364 to 271,676 tok/s/GPU at 81.6 to 86.6 tok/s/user P90." - - "DEP2 c64 and c128 run decoder SWA bounded replay. Local one-hour DEP2 c128 runs with fastokens: 271,676 tok/s/GPU at 86.6 tok/s/user P90 (20261013) to 280,752 at 88.5 (20261014) to 283,868 at 91.3 with bounded replay; TTFT p90 3.43 to 3.02 to 2.62 s." - - "TP4 c1 admits one request at a time (was two) and runs decoder SWA bounded replay with the prefill CUDA graph disabled. A subagent request that arrives during a decode now waits instead of stalling that decode with its prefill. Local one-hour runs on the 20261013 image with fastokens: 7,851 to 7,848 tok/s/GPU, 625.1 to 654.4 tok/s/user P90 (671.3 to 673.8 median), TTFT p50/p90 0.24/0.28 to 0.23/0.27 s; TTFT p99 0.97 to 1.13 s and max 1.9 to 17.3 s for the few requests that queue. On 20261014 the unchanged TP4 c1 measures 625.2 P90 at 7,852 tok/s/GPU." - - "Add DEP2 c160 with the c128 settings, a prefill-decode interval of 8 and the HuggingFace tokenizer instead of fastokens. At this load fastokens admits short subagent prefills faster, and shortest-prefill-first then holds back long main-agent turns, so fewer long-context requests complete. Local one-hour c160 runs: 258,332 tok/s/GPU at 85.8 tok/s/user P90 with fastokens on 20261013, against 296,603 at 79.2 with the HuggingFace tokenizer on 20261012 and 287,471 at 78.2 on 20261013. On 20261014 with bounded replay, interval 16 measures 268,187 at 90.9 in CI, below c128 on both axes; interval 8 raises it to 294,159 at 61.1 locally, since AgentX throughput is almost all prefill tokens. Dropping bounded replay at interval 16 lowers it to 259,506." + - "Bump the image to lmsysorg/sglang:nightly-dev-cu13-20261014-684fea8a, which ships the fastokens tokenizer and decoder SWA bounded replay with DP attention." + - "Use tokenizer-backend fastokens on every point except DEP2 c160, which keeps the HuggingFace tokenizer." + - "Enable decoder SWA bounded replay on DEP2 c64 and c128." + - "TP4 c1 admits one request at a time, enables decoder SWA bounded replay and disables the prefill CUDA graph." + - "Add DEP2 c160 with the c128 settings, a prefill-decode interval of 8, mem-fraction-static 0.85, 256 max running requests and a 128 decode graph batch." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/4033