Prhub

#54695 [CI][ROCm] Calibrate AMD test timeouts from nightly runtimes

原始 PR 作者 AndreasKaratzas 合并时间 2026-09-02 12:53 文件变更 1 提交数 3 评论 7 代码增减 +193 / -195

执行摘要

基于夜间运行数据校准 AMD CI 所有测试组超时,从统一 180 分钟调整为实际值加余量。

为解决 Issue #34994 中提到的“更新 MI355 超时设置”任务,作者系统性地校准了 AMD CI 的测试超时。原文描述为“Calibrate all 193 amd-ci test-group timeouts from the latest 10 canonical nightly runs instead of using the blanket 180-minute value”。这是 ROCm CI 基础设施改进的一部分,旨在基于实际运行数据优化测试管道配置。

此 PR 是高质量的基础设施维护工作,方法论清晰、数据驱动且有明确的关联 Issue。它值得关注,特别是对于负责 CI/CD 和 ROCm 平台支持的团队。其数据收集和校准方法(平均值+余量+取整)可作为优化其他测试管道超时的范例。建议精读其 PR body 以理解方法论。

讨论亮点

PR body 详细阐述了超时校准的“五步方法论”,并声明使用了 AI 辅助进行计算和验证,强调需人工审查。评论区唯一的实质性反馈来自 wjabbour,其评论“pretty awesome”表达了对工作的认可,未发现关于方法论或具体数值的争议。

实现拆解

  1. 数据收集与计算:对最近 10 次夜间构建(Builds #12460 到 #12332)的每个测试组,收集其排除队列等待后的 Buildkite 墙面完成时间,使用每个测试组中最慢的分片耗时作为该晚的组完成时间。
  2. 超时值确定:计算上述 10 个数据点的平均值,增加 20 分钟的固定余量,然后将结果向上舍入到下一个 5 的倍数,作为该测试组的新超时值。
  3. 配置更新:在核心配置文件 .buildkite/test-amd.yaml 中,为所有 193 个测试步骤的 timeout_in_minutes 字段设置新计算出的值,替换了原先统一的 180。
  4. 后续微调:在合并过程中,根据反馈增加了对 (MI300) Weight Loading 测试组的超时时间,使其与其他测试保持一致的方法论。
文件 模块 状态 重要度
.buildkite/test-amd.yaml CI 配置 modified 5.81

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

评论区精华

基于夜间运行数据校准 AMD CI 测试超时的方法论 设计

PR body 详细说明了五步校准方法:1) 取 Buildkite 墙面时间;2) 取最慢分片;3) 平均 10 次夜间构建;4) 加 20 分钟余量;5) 向上舍入到 5 的倍数。并声明使用 AI 辅助计算和验证。

结论:方法论被清晰阐述并作为 PR 描述的一部分,未收到异议或修改要求。该方法论将超时设置从经验性(统一 180 分钟)转变为数据驱动。 · 已解决

风险与影响

  1. 超时不足风险:新超时基于历史数据,若未来测试变慢(例如因硬件负载增加、测试用例增多或模型变更),可能导致真实的超时失败。需定期复校。
  2. 余量保守性:固定的 20 分钟余量可能对部分测试过于宽松,而对另一部分测试(尤其是运行时间波动大的)可能不足。这是基于实践的折中方案。
  3. 配置变更影响:修改单个 YAML 文件影响整个 AMD CI 管道的所有测试步骤,任何错误(如计算错误或格式错误)都可能广泛影响 CI 可用性。

直接影响:amd-ci 管道中所有测试步骤的超时行为发生改变。大部分测试的超时从 180 分钟降低到更接近其实际运行时间,这将加快 CI 中超时失败的反馈循环,并可能更早释放占用的计算资源。
间接影响:更精确的超时有助于区分真正的测试失败和因瞬时负载导致的性能波动,提高了 CI 的信号可靠性。这是一个纯粹的 CI/基础设施优化,对 vLLM 的功能、性能或 API 无直接影响。

配置变更影响广 超时校准依赖历史数据 后续维护成本

关联 Issue

#34994 [Feature]: Infrastructure Improvements for ROCm CI

完整报告

参与讨论