Repository navigation
chore: bump srt-slurm to v2.65.2 / chore:将 srt-slurm 升级到 v2.65.2 - #4601
weireweire wants to merge 1 commit into
Conversation
Move the srt-slurm submodule from v2.59.1 (ae3d6877) to v2.65.2 (59920ea1). v2.65.2 adds NVIDIA/srt-slurm#629: Dynamo frontends since ai-dynamo/dynamo#16454 answer /health status-only, so the readiness wait never counted any workers on Dynamo 1.7 images. DynamoFrontend.probe_ready now asks /health?instances=true only when /health has no instances key. 573-participating-gpus.patch still applies, and src/srtctl/core/power is unchanged between the pins, so it stays. Validation: infx generate for every config key writes 2023 recipes that the new srtctl validates, byte-identical to the v2.59.1 output; all patches apply to v2.65.2; infx.matrix.changed lists no config keys.
|
Thanks for the contribution!
中文感谢你的贡献!
|
| @@ -1 +1 @@ | |||
| Subproject commit ae3d6877c46f3147e3a5dafa46ee4cd89322e52f | |||
| Subproject commit 59920ea16a13017a990e449d034a495c0b05bc57 | |||
There was a problem hiding this comment.
🔴 Every multi-node srt-slurm benchmark switches to a new srtctl (v2.65.2), yet no sweep has to run it before merge. The cause is the missing perf-changelog entry. The bump changes what each launch runs: GPU allocation (#312), KV-event ports (#617), trtllm-serve srun options (#623) and readiness probing (#629). AGENTS.md:87 says infx.matrix.changed cannot see launcher changes, so an empty list proves nothing here. Fix: add one entry at the end of perf-changelog.yaml covering the affected multi-node config keys ("*" as in the v2.39.1→v2.43.4 bump), then get an accepted /use <run_id> before merging.
Why this was flagged
The srt driver clones this pinned submodule for every NVIDIA srt-slurm multi-node launch and runs its srtctl (infx/launch/drivers/srt/checkout.py:82-97). Moving from ae3d6877 to 59920ea1 changes how jobs are placed and started. Per the PR's own list, that covers multi-node worker GPU allocation (#312), KV-event port choice (#617), trtllm-serve disagg srun options (#623) and frontend readiness probing (#629). AGENTS.md:87 says a change to what a benchmark runs needs a perf-changelog.yaml entry. It also says python -m infx.matrix.changed 'does not see script or launcher code, so judge script and launcher changes by what they run'. The PR leaves out the entry only because that tool listed no keys. AGENTS.md:89 says main never runs sweeps, and the entry is what triggers result collection and the /use gate. So the new orchestrator merges without any hardware sweep. A regression would first show up in some unrelated later PR's results, and nothing would tie it to this bump. An earlier pin bump (perf-changelog.yaml:9344-9347, v2.39.1 to v2.43.4) did add a "*" entry.
Verification: Trigger: any NVIDIA srt-slurm multi-node config launched after merge. It runs the new srtctl, and no sweep has run that srtctl in this repo first. inferencex-e2e/infx/launch/drivers/srt/checkout.py:82-97 clones repository_root() / SUBMODULE, so the submodule pointer decides which srtctl runs. AGENTS.md:87 requires a perf-changelog.yaml entry. The PR adds no entry.
Update
inferencex-e2e/utils/srt-slurmfrom v2.59.1 (ae3d6877) to v2.65.2 (59920ea1), and synchronize the documented pin inRECIPES.mdandCONFIGS.md.The main reason is NVIDIA/srt-slurm#629. Dynamo frontends since ai-dynamo/dynamo#16454 (Dynamo 1.7 dev builds) answer
/healthwith status only ({"status":"healthy","stage":"ready"}) and list registered instances only for/health?instances=true. srtctl's readiness wait counts workers from that list, so on images that ship Dynamo 1.7 it never sees a worker and polls until the health-check timeout. With #629,DynamoFrontend.probe_readyreads/healthas before and asks/health?instances=trueonly when the answer has noinstanceskey. Older frontends still get the same single request. With this pin, configs on Dynamo 1.7 images need no backport patch.Three other upstream changes reach existing recipes at launch. They were found by rendering the full srun plan of all 2023 bound recipes under both pins with srt-slurm's mock launcher:
DYN_VLLM_KV_EVENT_PORTand the SGLang and vLLM--kv-events-configendpoints. The highest allocated port is about 3060 plus the DP block, below NATS (4222) and OTEL (4317). Nothing in InferenceX hardcodes 5200.srun_options(chore: add conc to multinode benchmarks job names for viz #624): the frontend step now receives the recipe'ssrun_options, as the workers already do.--container-workdir=/infmax-workspace.container-remap-rootand/ormem: 0.--cpu-bind=none. These aredsv4-fp4-gb200-dynamo-vllm-agentic-dspark-{agg,disagg}anddsv4-fp4-gb300-dynamo-vllm-agentic-mtp-{agg,disagg}, and frontend CPU placement can move their results.dynamo.sidecarrecipes (dsv41flash-fp4-gb300-dynamo-vllm-agentic-dspark-{agg,disagg}),vllm-rsbinds HTTP and gRPC on0.0.0.0instead of127.0.0.1, and Tachometer adds engine scrape targets.AIPERF_SERVER_METRICS_URLSis unchanged.No node assignment or GPU mask changes in any render. #312 makes an uneven multi-node GPU split a hard error, and no current recipe has one. The other changes in the range are opt-in or unused by InferenceX: #614, #615, #616, #618, #623, #624
reuse_container, sa-bench, dsight and mcp.573-participating-gpus.patchstays: it still applies to v2.65.2, andsrc/srtctl/core/poweris unchanged between the two pins, so the reason in its README row still holds. No other patch is affected. No benchmark config changes, so there is no changelog entry.Validation details
infx generate --config-key '*'writes 2023 bound recipes, and the pinned srtctl validates every one. The output is byte-identical between v2.59.1 and v2.65.2.runners/srt-slurm/patches/applies to a fresh v2.65.2 checkout withgit apply --check, as the launcher applies them.python -m infx.matrix.changed --base origin/mainlists no changed config keys.中文
将
inferencex-e2e/utils/srt-slurm从 v2.59.1(ae3d6877)升级到 v2.65.2(59920ea1),并同步RECIPES.md和CONFIGS.md中的版本说明。主要原因是 NVIDIA/srt-slurm#629。自 ai-dynamo/dynamo#16454(Dynamo 1.7 dev 版本)起,Dynamo frontend 的
/health只返回状态,只有/health?instances=true才列出已注册的实例。srtctl 的 readiness 等待按这个列表数 worker,所以在带 Dynamo 1.7 的镜像上永远等不到 worker,直到健康检查超时。#629 之后,DynamoFrontend.probe_ready照旧先读/health,只有返回里没有instances时才请求/health?instances=true,旧版 frontend 收到的请求不变。升级后,使用 Dynamo 1.7 镜像的配置不再需要回移补丁。另外三项上游改动会影响现有 recipe 的启动。这是用 srt-slurm 的 mock launcher 在新旧两个版本下渲染全部 2023 个 recipe 的 srun 计划后发现的:
srun_options(chore: add conc to multinode benchmarks job names for viz #624): frontend 现在也会收到 recipe 的srun_options。所有 513 个 Dynamo recipe 的 frontend 多了--container-workdir=/infmax-workspace。其中 20 个还会多--cpu-bind=none,即dsv4-fp4-gb200-dynamo-vllm-agentic-dspark-{agg,disagg}和dsv4-fp4-gb300-dynamo-vllm-agentic-mtp-{agg,disagg},frontend 的 CPU 绑核可能影响它们的结果。dynamo.sidecarrecipe(dsv41flash-fp4-gb300-dynamo-vllm-agentic-dspark-{agg,disagg})中,vllm-rs改为在0.0.0.0上监听,Tachometer 增加 engine 抓取目标。AIPERF_SERVER_METRICS_URLS不变。所有渲染结果中节点分配和 GPU mask 都没有变化。其余改动对 InferenceX 是可选的或未使用。
保留
573-participating-gpus.patch:它仍能应用于 v2.65.2,且两个版本间src/srtctl/core/power没有变化,README 中保留它的理由仍然成立。其他补丁不受影响。没有 benchmark 配置改动,因此不加 changelog 条目。验证:
infx generate --config-key '*'生成 2023 个绑定后的 recipe,全部通过固定版本 srtctl 的校验,且新旧版本的输出逐字节相同;runners/srt-slurm/patches/中的所有补丁都能用git apply --check应用到全新的 v2.65.2;python -m infx.matrix.changed --base origin/main未列出任何改动的 config key。AI model disclosure
aws/anthropic/eccn-claude-opus-5-5) prepared the submodule bump, checked the patches and the generated recipes against the new pin, and wrote this description. A delegated agent on the same model reviewed the upstream changes in the range and rendered the srun plans under both pins to find their runtime impact on InferenceX launches.PR checklist and change type
Type of Change
Checklist
python -m infx.matrix.changed --base origin/mainlists affected config keys, I have appended one new entry covering them to the physical end ofinferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entries