Prhub

#38046 [compile] Add some more startup tests for top models

原始 PR 作者 zou3519 合并时间 2026-03-26 00:02 文件变更 4 提交数 1 评论 6 代码增减 +260 / -88

执行摘要

添加针对顶级模型的 torch.compile 启动时间测试,扩展 H100 设备上的测试覆盖。

PR body 中说明:目标是 "continuously refresh these tests with the top models",以监控 vLLM-torch.compile 集成的启动时间。测试检查 "the number of unique subgraphs is much less than the total number of layers, otherwise something has gone wrong",确保图分割和缓存机制正常工作,并识别 deepseek v3.2 和 kimi k2.5 等模型的热启动时间问题。

对于关注编译性能或测试基础设施的开发者,建议精读 tests/compile/h100/test_startup.py 以了解参数化测试设计和计数器检查逻辑。关注测试中使用的 CompilationConfigcompilation_counter,这些是验证 vLLM-compile 集成正确性的关键。同时,留意 issue #38051 的后续进展。

讨论亮点

review 中核心讨论点:

  • 代码重构建议:gemini-code-assist[bot] 建议提取共享辅助函数以减少冷启动和热启动逻辑的代码重复,zou3519 回复 "resolved",表示已采纳。
  • 潜在正确性问题:zou3519 在 tests/compile/h100/test_startup.py 第 156 行指出,某些模型在热启动时保存编译工件,可能不是预期行为。zhxchen17 回应后,zou3519 创建 issue #38051 进一步调查,并添加 TODO 标记。

实现拆解

实现包括三个关键变更:

1) 在 .buildkite/test_areas/pytorch.yaml 中添加 H100 设备的编译单元测试步骤,增强 CI 覆盖。
2) 创建 tests/compile/h100/test_startup.py,定义参数化测试函数(如 test_moe_startup),覆盖多个顶级模型(如 GLM 旧版本),使用计数器检查冷启动和热启动时的编译工件数量。
3) 移除旧的 tests/compile/test_startup.py,将测试逻辑迁移到新目录,避免冗余。

文件 模块 状态 重要度
.buildkite/test_areas/pytorch.yaml CI modified 4.0
tests/compile/h100/test_startup.py tests/compile added 6.0
tests/compile/test_startup.py tests/compile removed 3.0

关键符号

test_moe_startup _cold_start _run_vllm

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

代码重构以减少重复逻辑 style

gemini-code-assist[bot] 建议提取共享辅助函数来处理冷启动和热启动的编译工件检查,BoyuanFeng 支持此建议。

结论:zou3519 回复 "resolved",表示可能已采纳重构,但具体实现未在材料中展示。 · 已解决

热启动时保存编译工件的异常 正确性

zou3519 指出在测试中发现某些模型在热启动时保存编译工件,可能不是预期行为,并询问 zhxchen17。

结论:zhxchen17 同意需进一步调查,zou3519 创建 issue #38051 跟踪,并在代码中添加 TODO 标记。 · unresolved

风险与影响

技术风险较低,但仍需关注:

  • 测试逻辑准确性:新测试依赖计数器(如 counters["aot_autograd"]["total"])验证编译行为,如果计数器逻辑变化或模型结构差异,可能导致假阳性或假阴性测试失败。
  • 设备特定依赖:新增 H100 设备测试步骤(.buildkite/test_areas/pytorch.yaml),在其他设备(如 A100 或非 NVIDIA GPU)上可能不适用,增加 CI 维护复杂度。
  • 未解决疑虑:热启动时保存编译工件的问题(issue #38051)可能揭示 vLLM-compile 集成中的缓存机制缺陷,需进一步调查。

影响分析:

  • 对用户:无直接影响,仅影响内部开发和测试流程。
  • 对系统:增强 torch.compile 启动时间的监控能力,通过更广泛的模型覆盖,帮助早期发现编译性能回归或缓存异常。
  • 对团队:增加测试覆盖,减少未来编译相关变更的回归风险;但需维护新测试代码,并解决潜在问题如热启动工件保存问题。
测试逻辑复杂性 设备特定测试 未解决正确性问题

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论