Add GLM-5.2 full-context H200 AgentX with SGLang PCP and HiCache / 新增 GLM-5.2 H200 全上下文 AgentX SGLang PCP 与 HiCache 配置#2275
Conversation
Add a three-node Dynamo SGLang qualification path with PCP8 DSA LayerSplit prefill, TP16 decode, Mooncake transfer, HiCache, and the unfiltered 1M-context AgentX trace. DCP remains disabled because SGLang DSA decode-context parallelism is not merged; TP16 supplies the required HBM headroom without mislabeling unsupported functionality. 中文:新增三节点 Dynamo SGLang 资格验证路径:预填充采用 PCP8 DSA LayerSplit,解码采用 TP16,并启用 Mooncake 传输、HiCache 和未截断的 1M 上下文 AgentX 轨迹。 由于 SGLang 的 DSA 解码上下文并行尚未合并,本配置不启用 DCP;改用 TP16 提供所需显存余量,避免将未支持的能力标记为可用。
|
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 关于重新运行失败任务的文档 |
Overlay the checked-in recipe after make setup refreshes the srt-slurm recipe tree. This fixes the missing CONFIG_FILE failure observed in unofficial run 29657445141. 中文:在 make setup 刷新 srt-slurm 配方目录后再覆盖仓库内配方,修复非正式运行 29657445141 中 CONFIG_FILE 丢失的问题。
|
Unofficial run 29657445141 failed before Slurm submission: 中文:非正式运行 29657445141 在提交 Slurm 作业前失败:本地配方覆盖完成后, |
Resolve repository-owned recipe paths under benchmarks/multi_node/srt-slurm-recipes and copy them into the generated recipes tree after setup. Preserve selector-aware CONFIG_FILE handling through a normalized CONFIG_PATH. 中文:将仓库内的 H200 配方从 benchmarks/multi_node/srt-slurm-recipes 正确映射到 srt-slurm 生成的 recipes 目录,并在 setup 后覆盖写入;同时通过标准化的 CONFIG_PATH 保留对选择器后缀的兼容。
|
Unofficial run 2 (Actions run 29657842352) confirmed that the setup-order fix worked, then failed before Slurm submission because the launcher treated the srt-slurm destination ( |
Use the native srt-slurm hf: model path when the H200 cluster has no staged GLM-5.2 directory. Point both SGLang worker roles at the persistent shared Hugging Face cache. 中文:当 H200 集群尚未预置 GLM-5.2 模型目录时,改用 srt-slurm 原生支持的 hf: 模型路径,并让 SGLang 预填充与解码节点共同使用持久化的 Hugging Face 共享缓存。
|
Unofficial run 3 (Actions run 29657920227) reached |
Remove the GB300-derived 144-CPU batch override that H200 Slurm nodes cannot satisfy. Retain full-node memory allocation for batch and worker steps. 中文:移除源自 GB300、H200 Slurm 节点无法满足的 144 CPU 批处理覆盖配置,同时保留批处理与工作节点步骤的整节点内存分配。
|
Unofficial run 4 (Actions run 29658013163) had correct feature-branch provenance, passed recipe/model preflight, and reached |
Enable the SGLang PD decode radix-cache override so hierarchical cache does not conflict with the default chunk-cache mode. Declare HF_HOME alongside HF_HUB_CACHE for the shared model cache. 中文:启用 SGLang PD 解码侧的 radix cache 覆盖配置,避免分层缓存与默认 chunk cache 模式冲突;同时为共享模型缓存补充 HF_HOME。
|
Unofficial run 5 (Actions run 29658079145, Slurm job |
Remove the unified radix-tree override from both GLM-5.2 workers. The pinned SGLang decode HiCache path requires query_storage_hit_length, which UnifiedRadixCache does not provide. 中文:为 GLM-5.2 的预填充和解码 worker 移除统一基数树覆盖配置。当前固定版本的 SGLang 解码 HiCache 路径需要 query_storage_hit_length,而 UnifiedRadixCache 未实现该接口。
|
R6 reached a healthy 1P/1D deployment and started AgentX, then the first warmup request crashed decode. The pinned SGLang build selected 中文:R6 已成功启动健康的 1P/1D 服务并进入 AgentX,但首个预热请求导致解码进程崩溃。由于设置了 |
Set the prefill HiCache host layout to layer_first. SGLang requires this layout when direct HiCache backup is combined with layer-sharded PCP cache. 中文:将预填充 HiCache 的主机内存布局设为 layer_first。SGLang 在 direct HiCache 备份与 PCP 分层分片缓存组合使用时要求该布局。
|
R7 confirmed the radix-cache fix: decode survived the first request and the run advanced into a long PCP8 prefill. The next failure occurred when prefill finished its layer-sharded cache work: direct HiCache attempted its default 中文:R7 已验证基数缓存修复有效:解码进程通过了首个请求,任务进入长上下文 PCP8 预填充阶段。随后在预填充完成分层分片缓存处理时出现新错误:direct HiCache 使用默认的 |
|
R8 passed. The feature-branch workflow and workload completed successfully: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29660737166. The aggregate contains 62/62 successful profiled requests, zero error-dropped records, mean input length 430,096 tokens, p95 input length 497,847 tokens, 7,475.39 total tok/s (311.47 tok/s/GPU across 24 compute GPUs), mean TTFT 3.67 s, mean TPOT 19.50 ms, and a 99.46% theoretical cache-hit rate. This validates GLM-5.2 FP8 AgentX on H200 with PCP8 prefill, TP16 decode, Mooncake, and HiCache at the configured 1,048,576-token context limit. 中文:R8 已通过。功能分支上的 workflow 和 workload 均成功完成:https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29660737166。聚合结果包含 62/62 个成功的正式请求,错误丢弃记录为 0;平均输入长度为 430,096 tokens,P95 输入长度为 497,847 tokens;总吞吐量为 7,475.39 tok/s(24 张计算 GPU 上平均 311.47 tok/s/GPU),平均 TTFT 为 3.67 秒,平均 TPOT 为 19.50 毫秒,理论缓存命中率为 99.46%。该结果验证了 GLM-5.2 FP8 AgentX 在 H200 上采用 PCP8 预填充、TP16 解码、Mooncake 和 HiCache,并按 1,048,576-token 上下文上限配置运行。 |
Add seven concurrency points and split them across two allocations so each AgentX run remains within the eight-hour Slurm limit.\n\n中文:将并发度扩展为七个数据点,并拆分至两个资源分配任务,确保每次 AgentX 基准测试均能在八小时 Slurm 时限内完成。
|
Expanded the H200 AgentX concurrency curve from
Each allocation stays at or below four one-hour points so benchmark execution plus trajectory draining remains within the recipe's 8-hour Slurm limit. All 224 matrix-logic tests pass. Unofficial sweep: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29691471123 Both the workflow ref and workload ref are pinned to 中文:已将 H200 AgentX 并发曲线从
每个任务最多包含四个一小时数据点,确保基准测试及轨迹排空过程能够在配方规定的 8 小时 Slurm 时限内完成。矩阵逻辑测试共 224 项,全部通过。 非正式扫描:https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29691471123 工作流 ref 与工作负载 ref 均固定为 |
Keep HiCache on PCP prefill while using decode RadixCache, matching the stable disaggregated pattern and avoiding cross-rank HiCache restore failures. Run each concurrency point in its own allocation so failures do not mask later results.\n\n中文:在 PCP 预填充侧保留 HiCache,解码侧改用 RadixCache,与稳定的分离式推理方案保持一致,避免 HiCache 恢复长前缀时出现跨 rank 集合通信错误。每个并发度使用独立资源分配任务,防止单点故障掩盖后续结果。
|
The first broad H200 sweep recovered valid c1 and c2 points, then exposed a decode-side HiCache concurrency bug: long-prefix restore failed on TP16 ranks and caused a Gloo collective-size mismatch. c3 and c5 both reproduced the failure. Results recovered from run 29691471123:
Commit Replacement unofficial sweep: https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29698447013 Both workflow and workload refs are pinned to 中文:首轮 H200 扩展扫描获得了有效的 c1 和 c2 数据点,同时暴露了解码侧 HiCache 的并发缺陷:TP16 各 rank 在恢复长前缀时失败,并进一步触发 Gloo 集合通信消息长度不一致。c3 和 c5 均稳定复现该问题。 从运行 29691471123 恢复的结果:
提交 替代非正式扫描:https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29698447013 工作流 ref 与工作负载 ref 均固定为 |
|
Replacement sweep R2 update: c1 completed successfully in https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29698447013.
The remaining c2/c3/c4/c5/c6/c8 jobs are still running. 中文:替代扫描 R2 进展:c1 已在 https://github.com/SemiAnalysisAI/InferenceX/actions/runs/29698447013 中成功完成。
其余 c2/c3/c4/c5/c6/c8 任务仍在运行。 |
|
Replacement sweep R2 update: c5 completed successfully—the same concurrency point that previously triggered the decode-side HiCache/Gloo failure.
The engine is now stable at c5, although the sharp TTFT increase shows this topology is beyond its latency-efficient concurrency. c2/c3/c4/c6/c8 remain active. 中文:替代扫描 R2 进展:c5 已成功完成;该并发度正是此前触发解码侧 HiCache/Gloo 故障的数据点。
引擎在 c5 已保持稳定,但 TTFT 大幅上升,说明该拓扑已超过延迟效率较高的并发区间。c2/c3/c4/c6/c8 仍在运行。 |
|
Replacement sweep R2 update: c8 completed successfully.
Throughput has fallen below c5 while TTFT exceeds 100 seconds, confirming that saturation occurs earlier in the curve. The corrected engine remains stable through the maximum tested concurrency. c2/c3/c4/c6 remain active. 中文:替代扫描 R2 进展:c8 已成功完成。
总吞吐量已低于 c5,同时 TTFT 超过 100 秒,说明该拓扑在更低并发度即已达到饱和。修正后的引擎在最高测试并发度仍保持稳定。c2/c3/c4/c6 仍在运行。 |
|
Replacement sweep R2 update: c4 completed successfully and is the highest-throughput point available so far.
The current curve peaks at c4. c5 falls to 12,745.95 tok/s with 78.23 s mean TTFT, and c8 falls further to 11,953.69 tok/s with 106.34 s mean TTFT. c2/c3/c6 remain active. 中文:替代扫描 R2 进展:c4 已成功完成,目前是已获得数据点中总吞吐量最高的一点。
当前曲线在 c4 达到峰值。c5 降至 12,745.95 tok/s,平均 TTFT 增至 78.23 秒;c8 进一步降至 11,953.69 tok/s,平均 TTFT 为 106.34 秒。c2/c3/c6 仍在运行。 |
|
Replacement sweep R2 was cancelled at the workflow level at 23:26 UTC after c1/c4/c5/c8 completed successfully. The remaining c2/c3/c6 launch steps were cancelled within 51 seconds of one another; their cleanup and raw-log upload steps completed, but no usable benchmark artifacts were produced. This was not a model, HiCache, or benchmark-process failure. Targeted feature-branch retries are now queued:
Each retry dispatches the workflow from 中文:替换扫描 R2 在 c1/c4/c5/c8 成功完成后,于 23:26 UTC 被工作流整体取消。剩余 c2/c3/c6 的启动步骤在 51 秒内先后被取消;清理和原始日志上传步骤均已完成,但没有生成可用的基准测试产物。这不是模型、HiCache 或基准测试进程本身的故障。 现已排队运行仅覆盖缺失点的 feature branch 定向重试:
每次重试均从 |
|
Retry infrastructure update: all three targeted c2/c3/c6 workflows were cancelled before runner assignment during GitHub's active Actions incident. Each matrix job had GitHub's incident notice states that new workflows may fail to start and ongoing runs may fail: The retries will remain paused until Actions is operational, then the same feature-branch-only c2/c3/c6 dispatches will be rerun. 中文:重试基础设施状态更新:在 GitHub Actions 事故期间,c2/c3/c6 三个定向重试工作流均在分配 runner 之前被取消。每个矩阵任务的 GitHub 的事故公告明确说明,新工作流可能无法启动,正在运行的任务也可能失败: 在 Actions 恢复正常前暂停重试;恢复后将继续从同一 feature branch 重新调度仅包含 c2/c3/c6 的任务。 |
Resolve the append-only perf changelog conflict by preserving current main and appending the corrected H200 AgentX entry at the new tail. Document prefill-only HiCache, decode RadixCache, and the isolated seven-point concurrency curve. 中文:将 H200 AgentX PR 同步至最新 main。保留 main 当前的性能变更日志,并在新文件末尾追加修正后的 H200 AgentX 条目;准确记录仅预填充侧启用 HiCache、解码侧使用 RadixCache,以及相互隔离的七个并发扫描点。
|
Claude finished @JordanNanos's task in 5m 49s —— View job ReviewLGTM - no blocking issues found
Verification details:
One non-blocking note: the recipe's I could not run |
|
Official full sweep started on commit
中文:官方完整扫描已在提交
|
There was a problem hiding this comment.
No bugs were found, but this is worth a human look: the PR modifies the shared H200 multinode launcher (launch_h200-dgxc-slurm.sh, used by 4 recipes on the h200-dgxc cluster) rather than being self-contained to the new GLM-5.2 recipe, and the official sweep is still incomplete (c2/c3/c6 pending after a GitHub Actions outage, per the timeline).
What was reviewed:
- New matrix entry
glm5.2-fp8-h200-dynamo-sglang-agentic-pcp-hicacheand its 7 isolated concurrency jobs, plus the checked-in recipe YAML's HiCache/PCP/decode settings. - Launcher changes shared across H200 multinode recipes: CONFIG_FILE overlay path resolution, model-path
hf:fallback, serialized squashfs import under flock, new unconditionaldefault_mounts, and the health_check/tag rewrite now keyed offCONFIG_PATHinstead ofCONFIG_FILE. - Checked the flock wait (1800s) against the on-demand import srun job's own 30-minute time limit, and the health_check override interaction with the recipe's 1440-attempt setting -- examined without confirming a bug, but flagged since this path is shared infrastructure.
Extended reasoning...
Overview
This PR adds a new three-node H200 AgentX qualification recipe for GLM-5.2 FP8 (SGLang DSA prefill with PCP8/LayerSplit, Mooncake KV transfer, TP16 decode, prefill-side HiCache) across four files: a new recipe YAML, a new nvidia-master.yaml matrix entry with 7 isolated concurrency jobs, a perf-changelog.yaml entry, and modifications to the shared runners/launch_h200-dgxc-slurm.sh launcher. Unlike most single-recipe additions, the launcher changes are not scoped to this recipe alone -- they touch code paths (CONFIG_FILE/CONFIG_PATH handling, squashfs import, srtslurm.yaml generation) that all H200 multinode recipes using cluster:h200-dgxc go through.
Security risks
None identified. This is CI/benchmark infrastructure -- no auth, crypto, or user-facing data paths. The shell interpolation in the launcher uses values from trusted matrix config, not external input.
Level of scrutiny
This warrants more than a mechanical-change level of review. The PR's own timeline documents eight-plus unofficial bring-up iterations fixing real correctness bugs (setup-order clobbering CONFIG_FILE, wrong recipe destination path, missing model staging, an incompatible Slurm cpus-per-task override, a radix-cache/HiCache incompatibility, and a HiCache memory-layout mismatch), which is a strong signal of real complexity in this integration. The shared-launcher edits (new default_mounts applied unconditionally to srtslurm.yaml, the health_check override precedence, and the flock-guarded on-demand squashfs import) affect other recipes on this cluster, not just this one. The bug-hunting system found no confirmable bugs, and its verifiers separately examined the flock-timeout margin and the health_check override precedence without confirming them as bugs -- but given the shared blast radius and the sweep still being incomplete (the PR's own checklist item requiring a green full sweep before reuse-merge is unchecked), a human maintainer familiar with the H200 cluster setup should confirm before merge.
Other factors
The PR author has been actively iterating in response to real CI failures, and matrix-logic tests (224) are reported passing. The PR's own checklist explicitly marks the "authorized maintainer has commented /reuse-sweep-run" item as unchecked, confirming the author does not consider this ready to merge yet -- consistent with deferring here rather than approving.
|
see unofficial run visualizer at https://inferencex.semianalysis.com/inference?unofficialRun=29717702856 |
|
Official full sweep passed on commit All seven isolated GLM-5.2 H200 AgentX points completed successfully on 8 PCP-prefill + 16 TP-decode GPUs. Every point had zero error-dropped profiled requests.
The throughput optimum is c3. c2 is the latency-efficient operating point. Saturation starts at c4: total throughput drops 6.0% from c3 while mean TTFT increases from 3.82s to 24.84s and P95 TTFT from 10.14s to 108.52s. Higher concurrency continues to reduce throughput and sharply increase queueing latency. 中文:官方完整扫描已在提交 七个相互隔离的 GLM-5.2 H200 AgentX 扫描点均成功完成,使用 8 张 GPU 执行 PCP 预填充、16 张 GPU 执行 TP 解码。所有扫描点的已分析请求均无错误丢弃。上表为完整结果。 吞吐量最优点为 c3,总吞吐量 19,626.38 tok/s(817.77 tok/s/GPU),输出吞吐量 128.95 tok/s。c2 是延迟更优的运行点,总吞吐量 16,965.90 tok/s,平均 TTFT 仅 2.88 秒。系统从 c4 开始进入饱和区:相比 c3,总吞吐量下降 6.0%,平均 TTFT 从 3.82 秒跃升至 24.84 秒,P95 TTFT 从 10.14 秒跃升至 108.52 秒;继续提高并发会进一步降低吞吐量并显著增加排队延迟。 |
Description
Add a three-node H200 AgentX qualification path for GLM-5.2 FP8 at its native 1,048,576-token context:
DCP is intentionally not enabled or labeled. SGLang DSA decode-context parallelism for GLM-5.2 is not merged, so TP16 provides active-KV and runtime HBM headroom without claiming unsupported DCP behavior. MTP is also deferred while the GLM-5.2 MTP plus HiCache correctness issue remains open.
Official sweep
The official
full-sweep-fail-fastrun passed on commit5180d246: run 29717702856.All seven c1/c2/c3/c4/c5/c6/c8 AgentX points completed successfully with zero error-dropped profiled requests. The observed throughput optimum is c3 at 19,626 total tok/s (817.77 tok/s/GPU); c2 is the latency-efficient point at 16,966 tok/s and 2.88s mean TTFT. Saturation begins at c4. See the full result table and bilingual analysis.
Validation
python -m pytest utils/matrix_logic/ -v: 224 passed on5180d246bash -npasses for the modified launcher and benchmark librarymain; the Add GLM-5.2 full-context H200 AgentX with SGLang PCP and HiCache / 新增 GLM-5.2 H200 全上下文 AgentX SGLang PCP 与 HiCache 配置 #2275 changelog entry is appended at the new tailRelated Issue
None.
Type of Change
Checklist
perf-changelog.yamlwith this PR number/reuse-sweep-runonly after a final green full sweep with evals passing中文说明
为 GLM-5.2 FP8 新增三节点 H200 AgentX 资格验证路径,使用其原生 1,048,576 token 上下文:
本 PR 不启用或标记 DCP。SGLang 针对 GLM-5.2 DSA 的解码上下文并行尚未合并,因此采用 TP16 为活跃 KV 和运行时显存预留空间,避免宣称尚未支持的 DCP 能力。GLM-5.2 的 MTP 与 HiCache 组合仍存在未解决的正确性问题,因此本轮也暂不启用 MTP。
官方扫描
官方
full-sweep-fail-fast扫描已在提交5180d246上全部通过:运行 29717702856。c1/c2/c3/c4/c5/c6/c8 七个 AgentX 扫描点均成功完成,所有已分析请求均无错误丢弃。已观测到的吞吐量最优点为 c3,总吞吐量 19,626 tok/s(817.77 tok/s/GPU);c2 是延迟更优的运行点,总吞吐量 16,966 tok/s,平均 TTFT 为 2.88 秒。系统从 c4 开始进入饱和区。完整数据及中英文分析见结果评论。
验证
python -m pytest utils/matrix_logic/ -v:在5180d246上 224 项通过bash -nmain;Add GLM-5.2 full-context H200 AgentX with SGLang PCP and HiCache / 新增 GLM-5.2 H200 全上下文 AgentX SGLang PCP 与 HiCache 配置 #2275 的变更日志条目已追加到新的文件末尾