执行摘要
- 一句话:H200 8-GPU 测试分区从 6 缩减至 2,5 个测试移至 nightly
- 推荐动作:值得快速合并,是持续降低 CI 等待时间的有效迭代。建议后续关注夜间测试稳定性,并考虑将此类测试进一步迁移至 merge-queue 机制(如 PR body 所述)。
功能与动机
PR body 指出 stage-c-test-8-gpu-h200 在每个 PR 中运行 6 个分区,但多数测试对典型 PR 无严格阻塞作用,与之前 B200 拆分(#25203)的动机一致。通过将低频测试移至 nightly 并校准耗时参数,提升 CI 效率。
实现拆解
该 PR 仅涉及测试文件中的 CI 注册配置变更,无源码逻辑改动,具体分为以下两步:
-
移动 5 个测试至 nightly:修改 test/registered/8-gpu-models/test_deepseek_v32_indexcache.py、test_nvidia_nemotron_3_super_bf16.py、test_return_indexer_topk.py、test_step3p5_flash_chain_mtp.py 和 test/registered/distributed/test_disaggregation_hybrid_attention.py,将 register_cuda_ci() 调用中的 stage="stage-c", runner_config="8-gpu-h200" 替换为 suite="nightly-8-gpu-h200", nightly=True,并相应调整 est_time。这些测试仅在定时 cron 执行时通过 --include-tags=* 通配符拉入。
-
校准 8 个测试的 est_time:基于 CI 监控面板的实际 wall-clock 数据,对保留在 stage-c 的测试(如 test_dsa_models_mtp.py、test_mimo_models.py、test_deepseek_v3_mtp.py、test_minimax_m25_basic.py、test_lora_tp.py 以及 3 个 dsv4 测试)下调 est_time,降幅 30-70%。最大调整是 test_deepseek_v4_flash_fp4_h200.py 从 1800s 降至 370s。
配套的 compute_partitions.py(未直接修改)会根据新的 est_time 自动计算分区,保证分区大小符合预期。
关键文件:
test/registered/8-gpu-models/test_deepseek_v32_indexcache.py(模块 CI测试;类别 test;类型 test-coverage): 代表 5 个从 per-commit 移至 nightly 的测试,展示了注册方式变更(从 stage/c 改为 nightly suite)。
test/registered/dsv4/test_deepseek_v4_flash_fp4_h200.py(模块 CI测试;类别 test;类型 test-coverage): est_time 降幅最大(1800→370),体现数据驱动的校准力度。
test/registered/lora/test_lora_tp.py(模块 CI测试;类别 test;类型 test-coverage): est_time 唯一上调的测试(190→230),体现更准确的耗时估计。
关键符号:未识别
评论区精华
未出现设计争议或深度技术讨论。PR 作者通过 /rerun-stage 指令手动触发了一次 H200 测试验证,CI 系统自动执行,未产生 Review 评论或 unresolved threads。
- PR 作者手动触发 H200 测试验证 (other): 验证通过,无新增评论。
风险与影响
- 风险:风险极低:仅涉及测试注册参数的修改,不改变任何运行时逻辑。主要风险是夜间定时任务可能因环境差异导致移动的测试失败,但缺少标签(tags)的测试通过
* 通配符被拉入,理论上会被覆盖。另有个别测试 est_time 缩减幅度较大(如 1800→370),若实际波动可能引发 timeout,但已有基准数据支撑。
- 影响:开发者:大部分 H200 8-GPU 测试不再阻塞主 CI,per-commit 等待时间减半,但夜间覆盖率保持不变。系统:CI 资源利用率提升,H200 机器分区从 6 降至 2,释放 GPU 时间用于其他任务。团队:需关注夜间测试失败通知,确保回归覆盖。
- 风险标记:est_time 大幅缩减可能引发 timeout, 夜间测试缺少 tags 覆盖
关联脉络
- PR #25203 ci: B200 conditional split + LPT_SLOP removal (stage-c partition 8→3): 相同模式:将低频测试从 per-commit 移至 nightly 并校准 est_time,本 PR 是 H200 侧的镜像操作。
- PR #25197 ci: decouple stage and runner for cuda registry: 修改了
compute_partitions.py 等 CI 基础设施,本 PR 依赖其分区计算逻辑来自动分配分区。
参与讨论