[NV][AgentX] Add glm5.1-fp8-b200-tilert-agentic (TileRT PD disagg) / [NV][AgentX] 新增 glm5.1-fp8-b200-tilert-agentic(TileRT PD 分离) - #2645
Draft
CrimsonDump wants to merge 1 commit into
Conversation
CrimsonDump
force-pushed
the
glm5.1_fp8_tilert_agentic
branch
from
August 18, 2026 07:39
302eb4c to
24d7457
Compare
Oseltamivir
pushed a commit
that referenced
this pull request
Aug 18, 2026
…a TileRT) Ported from #2645. Original PR author: CrimsonDump (@CrimsonDump). 从 #2645 迁移。原 PR 作者:CrimsonDump(@CrimsonDump)。 (cherry picked from commit 24d7457)
Oseltamivir
pushed a commit
that referenced
this pull request
Aug 18, 2026
…a TileRT) Ported from #2645. Original PR author: CrimsonDump (@CrimsonDump). 从 #2645 迁移。原 PR 作者:CrimsonDump(@CrimsonDump)。 (cherry picked from commit 24d7457)
Oseltamivir
pushed a commit
that referenced
this pull request
Aug 18, 2026
…a TileRT) Ported from #2645. Original PR author: CrimsonDump (@CrimsonDump). 从 #2645 迁移。原 PR 作者:CrimsonDump(@CrimsonDump)。 (cherry picked from commit 24d7457)
Oseltamivir
pushed a commit
that referenced
this pull request
Aug 19, 2026
…a TileRT) Ported from #2645. Original PR author: CrimsonDump (@CrimsonDump). Build and pin an internal TileRT post2 queueing backport because upstream post3 is unavailable. 从 #2645 迁移。原 PR 作者:CrimsonDump(@CrimsonDump)。 由于上游 post3 不可获取,构建并固定内部 TileRT post2 排队 backport。 (cherry picked from commit 24d7457)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add the GLM-5.1-FP8 B200 AgentX (agentic-coding) submission on TileRT PD disaggregation as one
new master-config key and one new multi-node recipe, and pin TileRT to
0.1.5.post3.glm5.1-fp8-b200-tilert-agentic— vLLM prefill + TileRT decode, 1P1D with TP8 on each sideand nixl KV transfer, driven by the new recipe
benchmarks/multi_node/agentic/glm5.1_fp8_b200_tilert-disagg.sh. The fixed-sequence-lengthrecipe for the same topology already exists; this is its agentic sibling and reuses the same
tilert_utils/entry points.glm5.1-fp8-b200-tilert, becauseagentic master configs must declare a
cluster:runner.configs/runners.yamlgains thecluster:b200-dgxc-slurmlabel mapping tob200-dgxc-slurm_7/8/9.[1]. A TileRT decode engine serves one sequence at a time,so the trajectory count stays at 1 and the router queues the concurrent turns that an agentic
session fans out into.
kv-offloading: none— all KV state lives on the GPU and TileRTexposes no DRAM offload tier.
runners/launch_b200-dgxc.shhonorsSCENARIO_SUBDIR, so agentic-coding configs pick therecipe under
multi_node/agentic/instead of the one at themulti_node/root.benchmarks/multi_node/tilert_utils/run_node.shgains the agentic branch: an AIPerf tracereplay per concurrency under
LOGS/agentic/conc_<N>/, the router queue timeout, and a second--served-model-nameso vLLM accepts the HF repo id that the replay sends as--model.Why TileRT 0.1.5.post3
post3carries two changes this submission depends on.decode-phase one, with chained AR steps and a single bulk device-to-host copy of the AR
buffer instead of a per-step synchronize and per-token readback. This closes most of the
remaining gap to the non-PD engine reference.
agentic session fans out into concurrent turns (parent plus sub-conversations). The router
previously answered
429as soon as every decode node was reserved.--queue-timeout <s>makes the request wait for a free node instead, which is what an AgentX replay needs: the
burst is wider than the pool but short-lived. The default
0keeps the fail-fast behaviour,so fixed-sequence-length runs are unaffected.
benchmarks/multi_node/tilert_utils/setup_deps.shpinstilert==0.1.5.post3, and the routerversion metadata on both TileRT master-config keys is bumped to match.
Validation
utils/validate_perf_changelog.pyagainstorigin/mainpasses, with zero deleted lines.generate_sweep_configs.py test-config --config-keys glm5.1-fp8-b200-tilert-agentic --scenario-type agentic-coding --conc 1generates exactly one job.pytest utils/matrix_logic— 231 matrix and validation tests pass.bash -npass on every touched file.with zero errors and
submission_valid: true.Open questions
Three things we cannot settle on our side.
1. Runner label. Agentic master configs must use a
cluster:<name>runner, and no existingcluster label covers the multi-node B200 machines (
cluster:b200-dgxcis the ten single-nodeb200-dgxc_*runners). This PR adds thecluster:b200-dgxc-slurmmapping toconfigs/runners.yaml, but the label also has to exist on the runners themselves. Could youadd it to
b200-dgxc-slurm_7 / _8 / _9— the same alias pattern ascluster:mi355x-amdsvsmi355x, no new machines, the same three nodesb200-multinodealready covers? We would alsoadd the matching
hardware:entry — are the values the same ascluster:b200-dgxc(
available-cpu-dram-mib: 3095781,gpus-per-node: 8)?2. No engine-side Prometheus metrics. TileRT exposes
/metricson neither the router northe decode engine; only the vLLM prefill does. The aggregate therefore carries
server_metrics.present: false, and 9 of the 12metrics_plots.pngpanels render empty (KVutilization, queue depth, prefix-cache hit rate, throughput over time, preemptions, and the
KV-offload panels — empty for us in any case, since
kv-offloading: none). Client-side metricsare unaffected: TTFT, TPOT, ITL, E2EL, interactivity, throughput per GPU, token counts and the
theoretical cache-hit rate all come from the AIPerf records. Is that acceptable for ingest and
the dashboard?
3. Corpus coverage. GLM-5.1's native context is 202752 positions.
--max-context-lengthdrops a trace whenever its peak context exceeds that, so 175 of the 393 traces in
cc-traces-weka-062126-256kremain eligible — about 14.7% of the corpus's requests by count.Is that acceptable as-is?
中文说明
新增 GLM-5.1-FP8 B200 AgentX(agentic-coding)在 TileRT PD 分离上的提交,包含一个新的主配置键
与一个新的多节点配方,并将 TileRT 固定到
0.1.5.post3。glm5.1-fp8-b200-tilert-agentic—— vLLM prefill + TileRT decode,1P1D、两侧各 TP8,KV 走nixl 传输,由新增配方
benchmarks/multi_node/agentic/glm5.1_fp8_b200_tilert-disagg.sh驱动。相同拓扑的定长配方已存在,本配方是其 agentic 版本,复用同一套
tilert_utils/入口。glm5.1-fp8-b200-tilert上追加场景,因为 agentic 主配置必须声明cluster:runner。configs/runners.yaml新增cluster:b200-dgxc-slurmlabel,映射到b200-dgxc-slurm_7/8/9。[1]。TileRT 的 decode 引擎一次只服务一条序列,因此 trajectory 数保持 1,agentic 会话扇出的并发轮次由 router 排队。
kv-offloading: none—— KV 状态全部驻留 GPU,TileRT 不提供 DRAM offload 层。
runners/launch_b200-dgxc.sh识别SCENARIO_SUBDIR,使 agentic-coding 配置选中multi_node/agentic/下的配方,而非multi_node/根目录那份。benchmarks/multi_node/tilert_utils/run_node.sh新增 agentic 分支:按并发在LOGS/agentic/conc_<N>/下运行 AIPerf trace 回放、设置 router 排队超时,并追加第二个--served-model-name,使 vLLM 接受回放以--model发来的 HF repo id。为什么需要 TileRT 0.1.5.post3
post3带来本次提交依赖的两项改动。缓冲区的单次整块 D2H 拷贝,取代原先每步一次同步、每 token 一次回读。这基本抹平了与非 PD
引擎参照之间的剩余差距。
成并发的多轮(父对话加子对话)。此前 router 在所有 decode 节点被占满时立即返回
429。--queue-timeout <秒>改为让请求等待空闲节点,这正是 AgentX 回放所需:突发宽度大于池子但持续很短。默认值
0保持原有的 fail-fast 行为,因此定长场景不受影响。benchmarks/multi_node/tilert_utils/setup_deps.sh将依赖固定为tilert==0.1.5.post3,两个TileRT 主配置键上的 router 版本元数据同步更新。
本地验证
utils/validate_perf_changelog.py对origin/main校验通过,删除行为 0。generate_sweep_configs.py test-config --config-keys glm5.1-fp8-b200-tilert-agentic --scenario-type agentic-coding --conc 1恰好生成 1 个 job。pytest utils/matrix_logic—— 231 项矩阵与校验测试全部通过。bash -n均通过。submission_valid: true。待确认问题
以下三点我们这边无法自行决定。
1. Runner label。 agentic 主配置必须使用
cluster:<name>runner,而现有的 cluster label没有一个覆盖多节点 B200 机器(
cluster:b200-dgxc指的是b200-dgxc_*那十台单机)。本 PR 已在configs/runners.yaml中新增cluster:b200-dgxc-slurm映射,但该 label 同时需要真实存在于runner 上。能否为
b200-dgxc-slurm_7 / _8 / _9添加此 label —— 与cluster:mi355x-amds对mi355x是同一种别名做法,不需要新机器,就是b200-multinode已经在用的这三台。我们也会补上对应的
hardware:条目 —— 取值是否与cluster:b200-dgxc相同(available-cpu-dram-mib: 3095781、gpus-per-node: 8)?2. 引擎侧没有 Prometheus 指标。 TileRT 的 router 与 decode 引擎均不暴露
/metrics,只有vLLM prefill 有。因此聚合结果会是
server_metrics.present: false,metrics_plots.png的 12 个面板中会有 9 个为空(KV 利用率、队列深度、prefix cache 命中率、吞吐时序、preemption,以及那几个
KV offload 面板 —— 我们
kv-offloading: none,本就应为空)。客户端指标不受影响:TTFT、TPOT、ITL、E2EL、interactivity、每 GPU 吞吐、token 计数与理想缓存命中率均来自 AIPerf 自身记录。
这对 ingest 与 dashboard 可接受吗?
3. 语料覆盖率。 GLM-5.1 的原生上下文为 202752。
--max-context-length按整条 trace 的峰值上下文丢弃,因此
cc-traces-weka-062126-256k的 393 条中仅剩 175 条可用,按请求数计约覆盖语料的 14.7%。这样可以接受吗?
Related Issue
N/A
Type of Change
Checklist
perf-changelog.yamland have not edited historical entriesOWNER/MEMBER/COLLABORATOR) has commented/reuse-sweep-runon this PR