Commit 648d857
[NV] Add GB300 AgentX Qwen3.5 recipes (#2121)
* feat(qwen3.5-gb300-agentx): add Qwen3.5-NVFP4 GB300 SGLang AgentX benchmarks
- Add qwen3.5-fp4-gb300-dynamo-sglang-agentic-agg and -disagg configs
- Add agg/disagg benchmark recipes and result files
- Add GB300 AgentX launch script support
- Add perf changelog entry for PR 2121
* qwen3.5 agentic: image 20260715-50d1edaa; prefill NEXTN MTP; fix agg GPU accounting
- Bump the qwen3.5-fp4 GB300 agentic image (agg + disagg master-config keys and
the changelog line) to lmsysorg/sglang:nightly-dev-cu13-20260715-50d1edaa.
- Enable prefill-side NEXTN MTP (speculative-algorithm NEXTN, num-steps 3,
eagle-topk 1, num-draft-tokens 4) in the 7 disagg recipes' prefill sglang_config.
- Fix the agg GPU accounting: master-config decode num-worker 1 -> 0, and
process_agentic_result.py zeroes the decode-side parallelism when num_decode_gpu
<= 0, so TP/num_gpus reflect the single aggregated worker (4) instead of
double-counting (8). Disagg configs are unaffected.
* qwen3.5 agentic: bump image to 20260716-b0b2dfbd
Bump the qwen3.5-fp4 GB300 agentic image (agg + disagg master-config keys and
the changelog line) to lmsysorg/sglang:nightly-dev-cu13-20260716-b0b2dfbd.
* runners: add gb300-nv hardware metadata (available-cpu-dram-mib, gpus-per-node)
The agentic DRAM-offload matrix logic requires available-cpu-dram-mib for any
runner used by a kv-offloading: dram (hicache) config. gb300-nv had no hardware
entry, so generate_sweep_configs test-config crashed for the gb300 agentic keys
(qwen3.5 here, and dsv4 already on main). GB300 NVL72 uses the same 2x Grace /
4-GPU-per-node topology and LPDDR5X capacity as GB200, so mirror gb200-nv's
available host DRAM (860_160 MiB) and gpus-per-node (4).
* qwen3.5 agentic: bump image to 20260724-433429b1
* run-sweep: drop unneeded agentic collect-results gate
Agentic sweep results are ingested by the dedicated trigger-agentic-ingest
job (repository dispatch to InferenceX-app, main-push only), not through
collect-results, whose gate intentionally excludes the agentic sweeps. This
reverts the qwen branch's addition so run-sweep.yml matches main.
* qwen3.5 agentic: pin Dynamo to ai-dynamo/dynamo#12081 (read-only ServerArgs fix)
SGLang 20260724 (>= #31811) makes ServerArgs read-only after resolution, which
crashed the Dynamo worker at startup (bare server_args.incremental_streaming_output
assignment). Pin Dynamo to the ai-dynamo/dynamo#12081 head commit (8e4bfa69), a
source build that sets incremental_streaming_output on parsed_args *before*
resolution, so no post-resolution mutation is attempted. Swap the 7 disagg recipes'
dynamo wheel 1.3.0.dev1 -> hash 8e4bfa69 and bump the disagg router version to match.
* qwen3.5 agentic: migrate disagg recipes to X-Dynamo-Session-ID session routing
Switch the 7 disagg recipes from the legacy nvext conv-aware routing (which the
newer Dynamo no longer honors) to header-based session affinity:
- benchmark.env: AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING=1 ->
AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID=true
- frontend: add nginx_session_affinity + nginx_session_affinity_header X-Dynamo-Session-ID
- frontend args: router-reset-states -> router-session-affinity-ttl-secs 3600
* benchmark_lib: honor AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID
Skip the legacy nvext conv-aware CLI routing when a recipe opts into the
X-Dynamo-Session-ID header path (AIPERF_HTTP_X_DYNAMO_SESSION_ID_FROM_CORRELATION_ID=true);
the existing AIPERF_USE_DYNAMO_CONV_AWARE_ROUTING opt-out and default are unchanged.
* qwen3.5 c128: raise SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK 256 -> 512
The c128 (1P1D DEP4/DEP4) decode server crashed on a DeepEP low-latency dispatch
assertion (x.size(0) <= num_max_dispatch_tokens_per_rank, deep_ep.cpp:1262): under
DP-attention load imbalance one DP rank's token count (amplified by MTP draft
tokens) exceeded the 256 buffer. Double the DeepEP dispatch buffer to 512 (still
well under sglang's 1024 cap) to give headroom for the imbalanced+MTP worst case.
---------
Co-authored-by: Xin Li <xinli@nvidia.com>
Co-authored-by: Ankur-singh <ankusingh@nvidia.com>1 parent af285ca commit 648d857
14 files changed
Lines changed: 1965 additions & 2 deletions
File tree
- benchmarks
- multi_node/srt-slurm-recipes/sglang/qwen3.5/gb300-fp4/agentic
- configs
- runners
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1810 | 1810 | | |
1811 | 1811 | | |
1812 | 1812 | | |
1813 | | - | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
1814 | 1818 | | |
1815 | 1819 | | |
1816 | 1820 | | |
| |||
Lines changed: 114 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
Lines changed: 114 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
0 commit comments