Prhub

#37906 [ROCm][CI] Split Entrypoints Integration (API Server 1) into 3 jobs

vllm-project/vllm · 作者 AndreasKaratzas · 合并时间 2026-03-24 09:48

分析状态 已生成
文件变更 1提交数 1 · 评论 2
代码增减 +70 / -4
rocm ci test refactor

执行摘要

将 AMD CI 中的 Entrypoints 集成测试作业拆分为三个并行作业,以优化 ROCm 硬件回归跟踪。

根据PR body,动机是“Applies the splitting in AMD CI external signal as well, so that we can easily track regressions on ROCm hardware too.” 并引用了相关PR #37882,旨在将测试拆分模式扩展到AMD CI环境中。

对于关注CI配置或ROCm测试的工程师,值得快速浏览以了解测试拆分模式;review中提出的可维护性问题值得在类似更改中考虑,但PR本身逻辑简单。

讨论亮点

review中,gemini-code-assist[bot]指出新引入的作业存在显著配置重复,例如timeout_in_minutes和source_file_dependencies在三个部分中重复定义,建议使用YAML anchors创建可重用模板以提高可维护性。例如评论中提到:“There is significant configuration duplication between the newly introduced Part 1, Part 2, and Part 3 jobs.” 但PR被批准合并,未显示是否采纳此建议。

实现拆解

实现集中在单个文件.buildkite/test-amd.yaml中。关键变更包括:将原作业“Entrypoints Integration (API Server 1)”拆分为三个新作业(Part 1、Part 2、Part 3),每个作业针对不同测试子集(如chat_completion、completion、speech_to_text等),并为mi325和mi355两个代理池都应用了相同的拆分逻辑。

文件 模块 状态 重要度
.buildkite/test-amd.yaml CI 配置 modified 5.0

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

评论区精华

配置重复在 mi325 作业中 设计

gemini-code-assist[bot] 指出新引入的 Part 1、Part 2、Part 3 作业存在显著配置重复,建议使用 YAML anchors 创建可重用模板以提高可维护性。

结论:建议未被采纳,但 PR 被批准合并。 · not addressed

配置重复在 mi355 作业中 设计

类似地,gemini-code-assist[bot] 指出 mi355 代理池的作业也存在配置重复,建议使用 YAML anchor 来优化。

结论:建议未被采纳,但 PR 被批准合并。 · not addressed

风险与影响

主要风险是配置重复导致的维护负担,任何公共设置的更改需要在多个地方更新,容易引入错误。此外,测试拆分可能意外遗漏某些测试,造成覆盖不全,但基于现有PR #37882的模式,风险较低。

对最终用户无直接影响,是内部CI优化。对开发团队,可以更细粒度地跟踪ROCm硬件上的回归,可能缩短CI运行时间。对系统,CI执行更高效,但增加了配置复杂性。

配置重复 维护负担增加

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

此PR将AMD CI中的Entrypoints集成测试作业拆分为三个并行作业,以便在ROCm硬件上更有效地跟踪回归,优化测试执行时间,但引入了配置重复的维护风险。

功能与动机

动机源于需要在AMD CI中应用类似的测试拆分,以匹配其他CI配置(如PR #37882)。PR body明确表示:“Applies the splitting in AMD CI external signal as well, so that we can easily track regressions on ROCm hardware too.” 这有助于隔离故障并加速CI流程,特别是在多硬件平台上。

实现拆解

实现仅修改了.buildkite/test-amd.yaml文件:

  • 原作业拆分:将“Entrypoints Integration (API Server 1)”作业拆分为三个新作业:
    • Part 1: 运行entrypoints/openai/chat_completion测试(排除特定文件如test_chat_with_tool_reasoning.py
    • Part 2: 运行entrypoints/openai/completionentrypoints/openai/speech_to_text测试
    • Part 3: 运行剩余的entrypoints/openai测试(排除已覆盖的子目录)
  • 代理池应用:为mi325mi355两个代理池都实施相同拆分,确保测试执行一致性。

评论区精华

review中,gemini-code-assist[bot]提出了关键设计问题:

“There is significant configuration duplication between the newly introduced Part 1, Part 2, and Part 3 jobs. This makes the CI configuration harder to maintain, as any change to common settings will need to be applied in three places.”
建议使用YAML anchors创建可重用模板。然而,PR被批准合并,未显示是否采纳此建议,留下了可维护性隐患。

风险与影响

风险

  • 配置重复:公共设置(如timeout_in_minutessource_file_dependencies)在多个作业中重复,增加维护错误风险。
  • 测试覆盖:拆分可能意外遗漏某些测试,但基于现有PR #37882的模式,风险较低。

影响

  • 对用户:无直接影响。
  • 对团队:改进ROCm测试回归跟踪,可能减少CI运行时间,提升开发效率。
  • 对系统:CI执行更细化,但配置复杂性增加,需额外维护。

关联脉络

此PR是仓库中CI优化趋势的一部分:

  • PR #37882:直接在另一个CI配置中实施相同拆分,是本PR的灵感来源,显示跨平台测试拆分的一致性需求。
  • PR #37016:早期拆分V1 Others测试的PR,表明团队持续通过并行化测试作业来提升CI效率,特别是在多硬件支持场景。整体来看,vllm-project正致力于优化测试基础设施以应对复杂硬件环境。

参与讨论