@@ -22,7 +22,7 @@ qwen3.5/trtllm/gb300-fp4/agentx/disagg-variants.yaml
2222- 工作负载目录为 ` 1k1k ` 、` 8k1k ` 或 ` agentx ` 。已有的跨序列长度配置集合放在 ` fixed-seq-len ` 下,保留其覆盖项选择器。
2323- 文件名使用小写字母和连字符,以 ` agg ` 或 ` disagg ` 开头。包含拓扑及用于区分同目录配置的关键参数,例如并行方式、批大小、并发数、MTP、卸载或缓存设置。避免日期、带序号的延迟/吞吐量标签,以及重复目录中已有的模型或硬件信息。
2424- 拓扑名中的 ` 1p4d ` 表示预填充/解码 worker 数,不一定等于物理节点数。` p-tp4 ` 和 ` d-tp8 ` 分别标识预填充和解码 TP;` b ` 表示批大小,` c ` 表示并发数。运行参数以 YAML 为准。
25- - 覆盖项集合使用 ` *-variants.yaml ` 命名。仅在各配置间存在差异的多节点 AgentX 配置,按主配置条目合并为一个集合,通常为 ` agg-variants.yaml ` 或 ` disagg-variants.yaml ` :` base ` 保存共享设置,每个原配置成为一个具名 ` override_<name> ` 块,只包含其差异(使用普通覆盖项,而非 ` zip_override_* ` )。主配置行通过 ` srt-recipe: <bundle>.yaml:override_<name> ` 选择其一,路径相对于条目的 ` srt-recipe-dir ` 。启动器以文本方式读取的配置(例如带顶层 ` telemetry: ` 的功耗配置)保持独立文件。 即使内容相同,也保留独立扫描入口:配置路径参与评估分组。Qwen3.5 的 ` *-stp-sweep.yaml ` 和 ` *-mtp-sweep.yaml ` 保留了这一既有区别。
25+ - 覆盖项集合使用 ` *-variants.yaml ` 命名。仅在各配置间存在差异的多节点 AgentX 配置,按主配置条目合并为一个集合,通常为 ` agg-variants.yaml ` 或 ` disagg-variants.yaml ` :` base ` 保存共享设置,每个原配置成为一个具名 ` override_<name> ` 块,只包含其差异(使用普通覆盖项,而非 ` zip_override_* ` )。主配置行通过 ` srt-recipe: <bundle>.yaml:override_<name> ` 选择其一,路径相对于条目的 ` srt-recipe-dir ` 。即使内容相同,也保留独立扫描入口:配置路径参与评估分组。Qwen3.5 的 ` *-stp-sweep.yaml ` 和 ` *-mtp-sweep.yaml ` 保留了这一既有区别。
2626- 移动文件时,同步更新主配置中的 ` srt-recipe-dir ` 、` srt-recipe ` 和 ` eval-srt-recipe ` 引用,以及启动器路径规则、工作流过滤器和本地文档。保留上游来源 URL,并保持历史性能变更日志不变。不为旧目录结构提供别名。
2727
2828共享运行时资源保留在模型目录旁的 ` configs/ ` 中,不属于独立基准测试配置。` configs/dsv4-moe-load-balancer-configs/ ` 中的四个文件原样取自 NVIDIA/srt-slurm 提交 ` deb1dfd9934398664f92d194169c183e009da83b ` ,保留了此前 DSV4 TRT 配置使用的 EPLB 初始专家分配;目前没有已提交的配置引用这些文件。srt driver([ ` infx/launch/drivers/srt/checkout.py ` ] ( ../../../infx/launch/drivers/srt/checkout.py ) )将这些文件复制到作业仓库的 ` configs/ ` 目录,供配置中的绑定挂载使用。将配置文件放入本目录不会启用该配置;实际基准测试矩阵由主配置决定。
@@ -42,31 +42,32 @@ TileRT 使用固定版本的上游 srt-slurm 子模块。配置指定 `roles.pre
4242| ` roles.prefill.args.tp-size ` (SGLang) | ` prefill.tp ` |
4343| ` roles.prefill.args.ep-size ` (SGLang) | ` prefill.ep ` |
4444| ` roles.prefill.args.enable-dp-attention ` | ` prefill.dp-attn ` |
45- | ` benchmark.concurrencies ` | ` conc-list ` (AgentX 配置;定长序列配置由绑定器写入) |
45+ | ` benchmark.concurrencies ` | ` conc-list ` (` power: true ` 的行由绑定器写入) |
46+ | ` telemetry: ` | 搜索空间条目的 ` power: true ` |
4647| 配置目录,相对于本目录 | 条目级 ` srt-recipe-dir ` |
4748| 配置文件,可附带 ` base ` 、` override_<name> ` 或 ` zip_override_<name>[<index>] ` 选择器 | 搜索空间条目的 ` srt-recipe ` ;仅评估的真实验证使用 ` eval-srt-recipe ` |
4849
4950配置文件和主配置必须同步更新。启动器执行配置文件;主配置提供结果标签和调度元数据。聚合式配置使用 ` roles.agg ` ;` roles.decode.nodes: colocate ` 表示解码角色与预填充角色共享节点,不增加调度所需的工作节点数。
5051
5152所有被引用的配置都必须纳入版本控制:srt-slurm 2 提供精选示例,不再携带历史 ` recipes/ ` 目录。本次迁移补齐了 204 个此前依赖外部仓库的配置,并从 InferenceX 历史记录恢复了两个仍被引用的 AgentX 配置。主配置路径遵循上述目录结构,原有覆盖项选择器保持不变。
5253
53- ## 定长序列配置片段
54+ ## 配置片段
5455
55- 定长序列配置( 单节点和多节点)均为片段:只包含该配置特有设置的原生 srt-slurm YAML。启动时先组合片段,再绑定测试点:
56+ 当前启用的配置(定长序列和 AgentX, 单节点和多节点)均为片段:只包含该配置特有设置的原生 srt-slurm YAML。启动时先组合片段,再绑定测试点:
5657
57- 1 . 工作负载的共享块 [ ` configs/srt-recipes/fixed-sequence-single.yaml ` ] ( ../../../configs/srt-recipes/ fixed-sequence-single.yaml ) 或 [ ` fixed-sequence- multi.yaml` ] ( ../../../configs/srt-recipes/fixed-sequence-multi .yaml ) 合并到片段之下(配置集合则合并到 ` base ` 之下 )。片段优先:映射逐层合并,列表整体替换。共享块设置基准测试客户端;多节点共享块还将 ` benchmark.env.TOKENIZER ` 指向挂载的检查点 ` /model ` 。
58+ 1 . 通道的共享块( [ ` configs/srt-recipes/ ` ] ( ../../../configs/srt-recipes ) 中的 ` fixed-sequence-{ single,multi} .yaml ` 或 ` agentic-{single, multi} .yaml` )合并到片段之下(配置集合则合并到 ` base ` 之下)。共享块设置基准测试客户端,多节点定长序列共享块还将 ` benchmark.env.TOKENIZER ` 指向挂载的检查点 ` /model ` 。 ` power: true ` 的多节点主配置行还会合并 [ ` telemetry-dcgm.yaml ` ] ( ../../../configs/srt-recipes/telemetry-dcgm .yaml ) ,其导出器使用集群的 ` srt-slurm.power-exporter-port ` ;该通道必须允许功耗测量( ` POWER_LANES ` )。片段优先:映射逐层合并,列表整体替换,因此片段可以保留 ` collector_join_timeout_seconds ` 等遥测调优参数 。
58592 . 主配置行的选择器选出变体。单节点变体可以声明自身的 ` benchmark.env.CONC ` ,使该并发数与其调优参数保持配对。
59- 3 . 绑定器([ ` workload.py ` ] ( ../../../infx/srt_slurm/workload.py ) )将矩阵测试点写入选中的配置:` model.path: hf:<model> ` 、` model.container: <image> ` 、 ` model.precision ` 和 ` benchmark.env.ISL ` / ` OSL ` ;片段声明了 ` identity.container ` /` identity.model ` 时写入 ` identity.container.image ` 和 ` identity.model.repo ` ;启用遥测时写入 ` benchmark.concurrencies ` 。单节点配置还会获得 ` MODEL ` 、 ` CONC ` 、 ` RANDOM_RANGE_RATIO ` 和 ` USE_CHAT_TEMPLATE ` (当且仅当配置启用投机解码时为 ` true ` )。多节点客户端从作业环境读取 ` CONC_LIST ` 。
60+ 3. 绑定器([`workload.py`](../../../infx/srt_slurm/workload.py))将矩阵测试点写入选中的配置:`model.path: hf:<model>`、`model.container: <image>` 和 `model.precision` ;片段声明了 `identity.container`/`identity.model` 时写入 `identity.container.image`(采用镜像仓库引用形式) 和 `identity.model.repo`;启用遥测时写入 `benchmark.concurrencies`。定长序列配置还会获得 `benchmark.env.ISL`/`OSL`;单节点配置获得 ` MODEL` 和 `CONC`,其中定长序列配置还获得 `RANDOM_RANGE_RATIO` 和 `USE_CHAT_TEMPLATE`(当且仅当配置启用投机解码时为 `true`)。多节点 AgentX 配置从启动器获得客户端的 `RESULT_DIR`、`AIPERF_DATASET_MMAP_CACHE_DIR` 和 `HF_HUB_CACHE`,启动器根据其挂载的卷(`volume-mounts`、`agentic-volume-mounts` 和通道挂载)推导这些路径;设置了 `HF_HOME` 的片段保留自身的缓存。 多节点客户端从作业环境读取 `CONC_LIST`、`CONC`、`MODEL` 等矩阵输入,因此片段无需复制这些值;单节点 AgentX 测试点则通过运行时参数获得它们 。
6061
61- 片段若设置了上述任一绑定键或 ` benchmark.env.CONC_LIST ` , 即使取值相同,也会在提交前失败。` hf:<model> ` 解析为集群预置的检查点(` models.entries ` ),主配置镜像解析为预置的容器,因此配置不再引用别名。AgentX 配置尚未采用组合方式,仍保持完整 。
62+ 片段若设置了上述任一绑定键、 ` telemetry.enabled ` 、 ` benchmark.env.CONC_LIST ` 或 AgentX 客户端路径( ` RESULT_DIR ` 、 ` AGENTIC_OUTPUT_DIR ` 、 ` HF_HUB_CACHE ` 、 ` HUGGINGFACE_HUB_CACHE ` ,多节点还包括 ` AIPERF_DATASET_MMAP_CACHE_DIR ` ), 即使取值相同,也会在提交前失败。` hf:<model> ` 解析为集群预置的检查点(` models.entries ` ),除非 ` models.OVERRIDES ` 中的某一行改用 Hub 快照; 主配置镜像解析为预置的容器,因此配置不再引用别名。
6263
6364无需集群即可查看启动器实际提交的内容:
6465
6566``` bash
6667uv run --extra recipes infx generate --config-key ' dsr1-fp8-h200-*' --output-dir /tmp/recipes
6768```
6869
69- 该命令为每个定长序列测试点及变体写出一个已绑定的配置 ,经固定版本的 srtctl 校验,并生成 ` manifest.json ` ,将每个文件映射到对应的矩阵测试点。作业名称、健康检查下限和运行时 ` --set ` 值等启动时修改不会应用。
70+ 该命令为每个定长序列或 AgentX 测试点及变体写出一个已绑定的配置 ,经固定版本的 srtctl 校验,并生成 ` manifest.json ` ,将每个文件映射到对应的矩阵测试点,以及其运行器标签调度到的唯一集群(标签跨多个集群时为 ` null ` )。多节点测试点会获得启动器根据该集群推导的绑定器输入:通道允许该行的 ` power: true ` 时加入 DCGM 遥测块(导出器使用该集群的 ` power-exporter-port ` ),以及 AgentX 客户端路径。需要这些输入的测试点,若其运行器标签未指向唯一集群,或通道拒绝其功耗测量,则会失败 。作业名称、健康检查下限和运行时 ` --set ` 值等启动时修改不会应用。
7071
7172## 迁移与验证
7273
@@ -87,7 +88,7 @@ python -m infx.matrix.generate full-sweep \
8788
8889- SGLang Model Gateway 配置使用 ` frontend.type: sglang-router ` ;在 v2.36.0 中,` sglang ` 表示不经过路由器的独立工作进程。
8990- 对重复的 YAML 键,保留原 PyYAML 加载器实际采用的值。
90- - DCGM 遥测使用 ` collect_interval_ms: 1000 ` ,替代 ` provider ` 和 ` default_frequency ` 。采集器自动推导退出等待时间;原先显式设置的十秒不满足当前校验要求。保留原配置中服务发现进程的专用节点部署方式。固定的上游版本不支持在专用基础设施节点上启用遥测;该功耗兼容性问题仍待解决,不通过改变原有拓扑来绕过校验。H200 自定义配置声明默认并发数,提交前由启动器替换 。
91+ - DCGM 遥测使用 ` collect_interval_ms: 1000 ` ,替代 ` provider ` 和 ` default_frequency ` 。采集器自动推导退出等待时间;原先显式设置的十秒不满足当前校验要求。保留原配置中服务发现进程的专用节点部署方式。固定的上游版本不支持在专用基础设施节点上启用遥测;该功耗兼容性问题仍待解决,不通过改变原有拓扑来绕过校验。对于功耗测量行,绑定器根据测试点设置 ` benchmark.concurrencies ` 。
9192- DeepSeek-V4 vLLM 基准测试使用受支持的 ` custom_tokenizer ` 加载器。删除已废弃的 ` warmup_req_rate: inf ` 字段;当前上游客户端的预热速率固定为每秒 250 个请求。
9293- 功耗读取器兼容两代 samples CSV,校验利用率字段,并继续根据瓦特数计算 GPU 板级能耗。
9394- 评估选择通过原生 ` post_eval.command ` 和 ` post_eval.passthrough_env ` 调用 [ ` srt_eval.sh ` ] ( ../srt_eval.sh ) 。TRT AgentX 配置通过 ` dynamo.source.git ` 声明原有的 Dynamo 分支仓库,启动器不再改写 srt-slurm 源码。
0 commit comments