Prhub

#24721 ci: prune per-commit CUDA tests — move 25 files + 13 testcases to test/manual/

原始 PR 作者 alisonshao 合并时间 2026-05-09 06:53 文件变更 45 提交数 2 评论 2 代码增减 +818 / -525

执行摘要

裁剪 per-commit CUDA 测试,39 个移入 manual

根据 2026-05-07 工作会话的修剪目录,将标记为 remove 的测试移出 per-commit CUDA CI,以缩短 CI 管道时间。Per-commit CUDA 管道减少了约 174 分钟的注册估计时间(整文件移动 8622 秒 + 子集移除 1831 秒)。

本 PR 展示了通过目录约定控制 CI 测试发现的简洁方法,值得学习。建议关注其对测试覆盖的长期影响,确保 manual 测试在关键发布前仍被有效执行。设计决策:使用文件系统路径而非配置列表来管理 CI 范围,降低了维护复杂度。

讨论亮点

审核者 Kangyan-Zhou 对 test/manual/amd/test_deepseek_v3_basic.py 的移动提出疑问:“Is this change expected?”,确认该移动是否经工作会话同意。根据 PR 描述,这是整文件移除的一部分,AMD 副本也按决策移动,属于预期行为。该疑问未引发进一步争议,PR 随后合并。

实现拆解

  1. CI 注册解析器(python/sglang/test/ci/ci_register.py)仅扫描 test/registered/*/.py,因此将文件移至 test/manual/ 可自动跳过 CI 发现,注册调用变为运行时无操作。
  2. 整文件移动:将 25 个测试文件(如 test_qwen35_fp4_triton、test_deepseek_v3_basic 等)直接从 registered 移至 manual 对应子目录,保持文件内所有测试类不变。
  3. 测试类拆分:对于 10 个文件中的 13 个测试类,将指定类迁移到 manual 下的 _archived.py 文件中,同时保留原文件并调整 register_cuda_ci 的 est_time 参数(按剩余测试数量等比缩小)。
  4. 同步处理 AMD 副本:test_deepseek_v3_basic.py 的 AMD 版本也一同移动,确保平台一致。
  5. 测试计划:验证 CI 通过,并手动 spot-check 移动后的测试仍然可运行。
文件 模块 状态 重要度
test/registered/4-gpu-models/test_qwen35_models.py 多卡模型 modified 7.82
test/manual/4-gpu-models/test_qwen35_models_archived.py 多卡模型 added 8.13
test/manual/mla/test_mla_int8_deepseek_v3_archived.py 注意力模块 added 7.78
test/manual/distributed/test_dp_attention_archived.py 分布式 added 7.45
test/manual/quant/test_nvfp4_gemm_archived.py 量化 added 7.34
test/manual/mla/test_flashmla_archived.py 注意力模块 added 7.34

关键符号

TestQwen35FP4.test_gsm8k TestQwen35FP4MTP.test_gsm8k TestMLADeepseekV3ChannelInt8.test_gsm8k TestMLADeepseekV3BlockInt8.test_gsm8k TestDPAttentionDP2TP2DeepseekV3MTP.test_gsm8k TestFP4GemmAuto.test_gsm8k TestFlashMLAAttnBackend.test_gsm8k

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

评论区精华

AMD 测试文件移动是否预期 question

审核者 Kangyan-Zhou 在 test/manual/amd/test_deepseek_v3_basic.py 行 1 评论:“Is this change expected?”,质疑 AMD 副本的移动是否经过工作会话确认。

结论:PR 描述中已说明工作会话决定对两个平台副本都执行整文件移除,因此移动是预期的。审核者未进一步追问,PR 随后合并。 · 已解决

风险与影响

  1. CI 覆盖缺失:移出的测试不再自动运行,可能遗漏回归,尤其是 DeepSeek、Qwen3.5 FP4、MLA 等关键模型的精度测试。
  2. 手动测试可维护性:manual 目录下的测试可能因缺乏持续运行而逐渐失效。
  3. 时间估计偏差:调整后的 est_time 基于剩余测试数量等比计算,可能与实际运行时间有偏差,但影响较小。
  4. 文件路径依赖:移动文件可能破坏相对导入,但 PR 已通过 ast.parse 验证语法正确。

对用户:无直接功能影响。对系统:CI 管道时间减少约 174 分钟,加快开发迭代。对团队:开发者需要手动运行这些测试以验证相关变更;需维护两套测试位置(registered 和 manual)。影响范围中等,涉及多个模型模块(DeepSeek、Qwen、NVFP4、MLA 等)的测试覆盖。

CI 覆盖减少 手动测试可维护性 时间估计偏差

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论