Prhub

#7268 [CI] Set high-risk OOM tests for sequential execution

PaddlePaddle/FastDeploy · 作者 EmmonsCurse · 合并时间 2026-04-09 22:22

分析状态 已生成
文件变更 2提交数 2 · 评论 7
代码增减 +15 / -0
CI test Optimization

执行摘要

将 9 个高内存消耗测试标记为顺序执行,避免并发 OOM 导致的 CI 不稳定。

PR body中明确指出,在单GPU并行执行环境下,一些测试用例(如大批次、复杂算子或多阶段推理)内存消耗高,并发执行时可能触发OOM或被系统终止,导致CI不稳定和调试成本增加。

该PR值得快速浏览以了解CI测试执行优化策略,但无需深入代码细节。重点关注:1. 高风险测试的识别和分类逻辑;2. review中关于硬编码和维护性的讨论,可作为未来CI脚本改进的参考。

讨论亮点

review中主要讨论点:1. fastdeploy-bot指出arctic_inference依赖与本次CI变更主题无关,建议确认是否应单独提交或移除;2. 依赖版本不一致问题,代码中提示安装0.1.2版本,但PR引入0.1.3版本;3. 测试文件硬编码方式维护性较差,建议通过配置文件等更灵活方式管理。ZhangYulongg已批准PR,但未直接回应这些建议。

实现拆解

实现分为两个部分:1. 在scripts/coverage_run.sh的classify_tests函数中新增Rule 5,硬编码9个高风险OOM测试文件路径,将其分类为multi_gpu类型,从而在CI中强制顺序执行;2. 在scripts/unittest_requirement.txt中添加arctic_inference依赖(版本0.1.3),但此变更与CI优化主题关联性较弱。

文件 模块 状态 重要度
scripts/coverage_run.sh CI modified 8.0
scripts/unittest_requirement.txt CI modified 3.0

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

关键符号

classify_tests

评论区精华

arctic_inference 依赖与 CI 变更主题无关 设计

fastdeploy-bot 建议 arctic_inference 依赖不应包含在本次 CI 优化 PR 中,应单独提交或移除。

结论:未在讨论中明确解决,PR 仍包含该依赖。 · unresolved

依赖版本不一致 正确性

fastdeploy-bot 指出代码中提示安装 arctic-inference==0.1.2,但 PR 引入 0.1.3 版本,建议同步更新错误提示。

结论:未在讨论中明确解决,版本不一致可能持续存在。 · unresolved

测试文件硬编码维护性差 设计

fastdeploy-bot 质疑 scripts/coverage_run.sh 中硬编码 9 个测试文件路径的方式,建议使用配置文件等更灵活方法。

结论:未在讨论中明确解决,硬编码方式被保留。 · unresolved

风险与影响

技术风险包括:1. 维护性风险:scripts/coverage_run.sh中硬编码9个测试文件路径,后续新增高风险测试需手动修改脚本,易遗漏或出错;2. 依赖管理风险:arctic_inference依赖版本(0.1.3)与代码中错误提示版本(0.1.2)不一致,可能导致用户安装混淆或兼容性问题;3. 潜在回归风险:强制顺序执行可能延长CI总运行时间,但PR未评估时间影响。

影响范围:1. 对系统:减少高内存测试并发执行时的OOM风险,提升CI稳定性和可靠性;2. 对团队:降低因CI失败导致的调试成本,但硬编码方式增加长期维护负担;3. 对用户:无直接影响,属于内部CI优化。影响程度中等,主要限于测试执行策略。

硬编码维护性差 依赖版本不一致 潜在 CI 时间延长

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

  • 一句话:将9个高内存消耗测试标记为顺序执行,避免并发OOM导致的CI不稳定。
  • 推荐动作:该PR值得快速浏览以了解CI测试执行优化策略,但无需深入代码细节。重点关注:1. 高风险测试的识别和分类逻辑;2. review中关于硬编码和维护性的讨论,可作为未来CI脚本改进的参考。

功能与动机

PR body中明确指出,在单GPU并行执行环境下,一些测试用例(如大批次、复杂算子或多阶段推理)内存消耗高,并发执行时可能触发OOM或被系统终止,导致CI不稳定和调试成本增加。

实现拆解

实现分为两个部分:1. 在scripts/coverage_run.sh的classify_tests函数中新增Rule 5,硬编码9个高风险OOM测试文件路径,将其分类为multi_gpu类型,从而在CI中强制顺序执行;2. 在scripts/unittest_requirement.txt中添加arctic_inference依赖(版本0.1.3),但此变更与CI优化主题关联性较弱。

关键文件:

  • scripts/coverage_run.sh(模块 CI): 核心变更文件,新增Rule 5将9个高风险OOM测试标记为multi_gpu类型,实现顺序执行以避免并发内存争用。
  • scripts/unittest_requirement.txt(模块 CI): 次要变更文件,添加arctic_inference依赖,但此变更与CI优化主题关联性弱,且引发版本不一致和维护性讨论。

关键符号:classify_tests

评论区精华

review中主要讨论点:1. fastdeploy-bot指出arctic_inference依赖与本次CI变更主题无关,建议确认是否应单独提交或移除;2. 依赖版本不一致问题,代码中提示安装0.1.2版本,但PR引入0.1.3版本;3. 测试文件硬编码方式维护性较差,建议通过配置文件等更灵活方式管理。ZhangYulongg已批准PR,但未直接回应这些建议。

  • arctic_inference依赖与CI变更主题无关 (design): 未在讨论中明确解决,PR仍包含该依赖。
  • 依赖版本不一致 (correctness): 未在讨论中明确解决,版本不一致可能持续存在。
  • 测试文件硬编码维护性差 (design): 未在讨论中明确解决,硬编码方式被保留。

风险与影响

  • 风险:技术风险包括:1. 维护性风险:scripts/coverage_run.sh中硬编码9个测试文件路径,后续新增高风险测试需手动修改脚本,易遗漏或出错;2. 依赖管理风险:arctic_inference依赖版本(0.1.3)与代码中错误提示版本(0.1.2)不一致,可能导致用户安装混淆或兼容性问题;3. 潜在回归风险:强制顺序执行可能延长CI总运行时间,但PR未评估时间影响。
  • 影响:影响范围:1. 对系统:减少高内存测试并发执行时的OOM风险,提升CI稳定性和可靠性;2. 对团队:降低因CI失败导致的调试成本,但硬编码方式增加长期维护负担;3. 对用户:无直接影响,属于内部CI优化。影响程度中等,主要限于测试执行策略。
  • 风险标记:硬编码维护性差, 依赖版本不一致, 潜在CI时间延长

关联脉络

  • PR #7283 [CI] Add no_proxy configuration for docker execution: 同属CI优化类别,关注提升CI稳定性和网络访问可靠性。
  • PR #7206 add deepe precision test: 涉及测试执行和CI稳定性,但聚焦于精度测试而非内存优化。
  • PR #6730 [CI]【Hackathon 10th Spring No.33】config 单测补充: 同属CI和测试改进,但侧重单元测试覆盖率提升。

参与讨论