Standardize srt-slurm on v1.0.36 - #2384
Conversation
Read a single version pin from configs/srt-slurm-version.txt in every multinode launcher. Overlay InferenceX-owned recipes onto the tagged upstream checkout and migrate branch-only fields to the v1.0.36 schema. 中文:所有多节点启动器统一读取 configs/srt-slurm-version.txt 中的版本固定值。在上游标签检出上覆盖 InferenceX 自有配方,并将分支专用字段迁移到 v1.0.36 架构。
|
Thanks for the contribution! Please reach out to respective companies' CODEOWNER to fill in the latest PR_REVIEW_CHECKLIST.md before pinging core maintainer on Slack for review. In order for the signoff PR check bot to trigger, you must follow the PR_REVIEW_CHECKLIST.md template correctly, including the phrase For PR verification, add the PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass. A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. See GitHub's docs on re-running failed jobs 感谢你的贡献!请联系相应公司的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,然后再在 Slack 上联系核心维护者进行审阅。为了触发 signoff PR 检查机器人,你必须正确遵循 PR_REVIEW_CHECKLIST.md 模板,包括保留英文语句 如需进行 PR 验证,请为此 PR 添加 PR 作者有责任确保合并后所有 GitHub Action 任务完全通过。 很多时候失败只是偶发抖动(flake),重新运行失败的任务即可解决。参见 GitHub 关于重新运行失败任务的文档 |
Route srt-slurm SA-Bench recipes through the custom runner and InferenceX benchmark_serving without checking in converted recipe copies. Preserve recipe concurrency, request-rate, warmup, tokenizer, topology, and result naming settings. 中文:通过 custom runner 和 InferenceX benchmark_serving 运行 srt-slurm 吞吐量配置,无需提交转换后的重复 recipe;同时保留并发、请求速率、预热、分词器、拓扑及结果命名设置。
将所有 SRT 配方统一改为 InferenceX 自定义基准测试,并由共享渲染器补全运行环境。
重命名 SRT 基准入口,并将配方参数改为显式命令参数,移除环境变量覆盖入口。
Summary
configs/srt-slurm-version.txtas the single srt-slurm version pinsrt-slurmv1.0.36, then overlay InferenceX-owned recipes and setup scriptsconfigs/nvidia-master.yamlthat are not included in the v1.0.36 releasebenchmark.type: customsrt_bench_serving_entrypoint.shand InferenceX'sbenchmark_lib.shWhy the recipe files are present
The 49 added recipes are active
CONFIG_FILEtargets that do not exist in the v1.0.36 release. They are recipe data, not alternate srt-slurm code. Without the overlay, those matrix entries would fail before submission because their selected YAML files would be missing.The checked-in throughput recipes now explicitly select the InferenceX custom benchmark command. A central hydrator resolves the selected recipe or override at launch time and bakes its benchmark and topology values into explicit, shell-quoted command arguments. No benchmark environment block is passed to the entrypoint.
Recipes supplied by the immutable upstream v1.0.36 checkout still use upstream's
sa-benchtype. The same hydrator converts only those selected upstream recipes to the InferenceX custom command in an ephemeral config beforesrtctl apply.InferenceX benchmark integration
The custom wrapper preserves the existing throughput contract:
sa_bench_tokenizers/logs/inferencex-bench_isl_<ISL>_osl_<OSL>/results_concurrency_*.jsonThe entrypoint hardcodes the InferenceX workspace, frontend address and port, backend, trust behavior, profiling mode, and eval mode. It calls
run_benchmark_servingfrombenchmark_lib.shdirectly.The 14 existing agentic custom recipes retain their own commands and environments.
Compatibility audit
The pinned tag resolves to NVIDIA/srt-slurm commit
cb651682117df129162cd276cf567ec70dc57b36.I compared the previously selected tags, commits, NVIDIA feature branches,
cquil11/srt-slurm-nvbranches, and the InferenceXchore/upstream-srt-slurmprototype against v1.0.36. The released tag contains the runtime behavior the launchers rely on, including hash-pinned Dynamo source builds, cargo/maturin bootstrap support,--no-preflight, custom benchmark commands and environments, agentic client/orchestrator placement, multi-node health handling, and the node-IP sanitization fix.The side-branch benchmark prototype depended on an InferenceX custom wrapper. This PR brings that wrapper into the target branch, extends the shared benchmark helper with host, request-rate, and warmup pass-throughs, and adds the DeepSeek-V4 fast-tokenizer fallback to the upstream InferenceX benchmark client. No launcher executes code from a side branch after this change.
Recipe schema migrations:
benchmark.tokenizer_modevalues with the v1.0.36benchmark.custom_tokenizerimport pathbenchmark.warmup_req_rate, which is not part of the released schemabenchmark.aiperf_server_metricsfrom two custom agentic recipes because that opt-in exists only on the fork; the InferenceX agentic runner already treats worker metrics URLs as optionalValidation
HEAD == cb651682117df129162cd276cf567ec70dc57b36sa-benchdeclarations or references in the checked-in recipe treeCONFIG_FILEassignments fromconfigs/nvidia-master.yaml, resolving to 388 valid custom variants; 367 assignments required hydrationbenchmark.env224 passedin the matrix logic test suitebash -npassed for the custom wrapper, shared helper, and all six launchersshellcheckpassed for the custom wrapper and shared helpergit diff --checkpassed