Prhub

#21896 fix(ci): update est_time for 57 tests based on runtime analysis

原始 PR 作者 hnyls2002 合并时间 2026-04-02 11:16 文件变更 57 提交数 2 评论 2 代码增减 +61 / -59

执行摘要

基于实际 CI 运行时数据更新 57 个测试的预估时间,优化测试分区平衡。

PR body中明确指出:'The LPT (Longest Processing Time) partition algorithm relies on accurate est_time to balance test distribution across CI jobs. Current estimates are significantly off for many tests, causing:

  • Partition imbalance: some jobs finish in 11min while others take 25min - Wasted CI time: over-estimated tests waste partition budget'。这直接驱动了此次数据驱动的更新。

对于负责CI维护和测试分布的工程师,此PR值得快速浏览以了解时间估计更新。关注test_disaggregation_decode_offload.pydisabled参数的更改,这反映了CI配置的最佳实践。

讨论亮点

由于PR未收到review评论,没有进行技术讨论。所有变更由作者直接提交和合并。

实现拆解

实现方案基于对6次计划PR测试运行的分析(约1487个数据点,256个测试文件),排除了超时案例。关键改动包括:1) 更新57个测试文件中的register_cuda_ciregister_cpu_ci调用的est_time参数,以匹配平均实际耗时;2) 在test_disaggregation_decode_offload.py中,将@unittest.skipIf(is_in_ci(), ...)改为使用register_cuda_cidisabled参数,以避免占用分区时间预算。

文件 模块 状态 重要度
test/registered/disaggregation/test_disaggregation_decode_offload.py disaggregation modified 7.0
test/registered/attention/test_hybrid_attn_backend.py attention modified 5.0
test/registered/quant/test_fp8kv_triton.py quant modified 5.0

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

关键符号

register_cuda_ci register_cpu_ci

评论区精华

无 review 讨论 other

PR 未收到任何 review 评论,变更直接由作者合并,表明缺乏技术交锋或团队信任数据驱动更新。

结论:无争议或决策结论 · 已解决

风险与影响

风险包括:1) 新est_time值基于历史数据,可能无法适应未来测试变化,导致分区再次失衡;2) 更新可能引入人为错误,如错误估计某些测试;3) 将测试跳过逻辑从@unittest.skipIf改为disabled参数可能影响测试执行,尤其是在非CI环境中。

影响范围主要限于CI系统:1) 对用户无直接影响;2) 系统层面,预期改善CI作业负载平衡,减少资源浪费和运行时间差异;3) 团队层面,提升CI效率,加速开发周期,但需监控后续运行以验证效果。

数据驱动估计风险 分区算法依赖 测试跳过逻辑变更

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

基于实际CI运行时数据,本PR更新了57个测试文件的预估时间est_time,旨在优化LPT分区算法的负载平衡,减少CI作业完成时间差异和资源浪费。

功能与动机

PR body指出,LPT分区算法依赖准确的est_time来分配测试到CI作业,但当前估计偏差导致分区失衡(部分作业11分钟完成,其他25分钟)和预算浪费。通过分析6次近期CI运行数据,识别出43个下估计和17个过估计测试,驱动了此次更新。

实现拆解

变更涉及两个主要方面:一是批量更新register_cuda_ciregister_cpu_ci调用中的est_time参数,以匹配平均实际耗时;二是在test_disaggregation_decode_offload.py中将测试跳过方式从@unittest.skipIf(is_in_ci())改为disabled参数,避免占用分区时间。示例更新如下表:

测试文件 旧est_time 新est_time 变化原因
test_hybrid_attn_backend.py 200秒 350秒 实际耗时更高,下估计
test_fp8kv_triton.py 520秒 80秒 实际耗时低,过估计

评论区精华

PR未收到任何review评论,所有变更由作者直接提交和合并,表明团队对数据驱动更新的信任或缺乏深入讨论。

风险与影响

风险包括新估计可能不适应未来测试变化、人为错误导致分区问题,以及disabled参数变更可能影响非CI环境测试。影响限于CI系统:预期改善负载平衡,减少资源浪费,但对用户无直接影响;团队需监控后续运行验证效果。

关联脉络

与近期CI相关PR如#21897(增加超时)、#21898(移除崩溃测试)形成序列,反映团队持续优化CI测试配置和效率的趋势。本PR的数据驱动方法为未来类似更新提供了基础。

参与讨论