Prhub

#23417 [ci] split stage-c-test-4-gpu-b200 to enable a low-disk runner pool

原始 PR 作者 Kangyan-Zhou 合并时间 2026-04-22 09:33 文件变更 15 提交数 1 评论 4 代码增减 +84 / -14

执行摘要

分割 B200 CI 测试套件以支持低磁盘容量 runner 池,优化资源分配。

PR body 明确指出:'Splits the per-commit B200 stage-c suite into two so a new B200 runner with limited disk capacity can serve a subset of tests',目的是优化 CI 资源分配,避免磁盘瓶颈影响测试效率。

对于 CI 维护者和基础设施工程师,值得精读以了解测试套件分割策略、runner 标签设计和负载均衡调整;一般工程师可关注变更对测试运行时间和资源分配的影响,无需深入代码细节。

讨论亮点

无 review 评论,变更由作者 Kangyan-Zhou 直接提交并通过 /rerun-stage 命令验证执行成功,表明无重大争议。

实现拆解

  1. 修改 GitHub Actions 配置:在 .github/workflows/pr-test.yml 中,添加新 job stage-c-test-4-gpu-b200-small,设置 runs-on 为低磁盘 runner 标签,并调整矩阵分区大小从 6 减为 3 以平衡负载;同时扩展 set-runner 步骤输出 b200_low_disk_runner 标签。
  2. 更新测试文件套件标签:修改 9 个测试文件(如 test/registered/4-gpu-models/test_qwen35_fp4_mtp_v2.py)中的 register_cuda_ci 调用,将 suite 参数从 "stage-c-test-4-gpu-b200" 改为 "stage-c-test-4-gpu-b200-small";3 个低优先级测试文件(如 test/registered/4-gpu-models/test_nvidia_nemotron_3_super_nvfp4.py)改为 "nightly-4-gpu-b200" 并设置 nightly=True
  3. 注册新套件:在 scripts/ci/utils/slash_command_handler.py 中添加 stage-c-test-4-gpu-b200-smallnvidia_stagesCUDA_SUITE_TO_RUNNER 映射,支持命令行重定向;在 test/run_suite.pyPER_COMMIT_SUITES[HWBackend.CUDA] 中注册新套件名称,确保测试运行器识别。
  4. 配套调整:在 PR body 中详细规划了 runner 标签策略(如 4-gpu-b200-low-disk),但未在代码中直接修改,依赖外部基础设施配置;变更后需验证套件分割不影响现有 CI 流程。
文件 模块 状态 重要度
.github/workflows/pr-test.yml CI 工作流 modified 5.42
scripts/ci/utils/slash_command_handler.py CI 工具 modified 4.0
test/run_suite.py 测试运行 modified 4.0
test/registered/4-gpu-models/test_qwen35_fp4_mtp_v2.py 测试覆盖 modified 3.46

关键符号

register_cuda_ci

关键源码片段

test/registered/4-gpu-models/test_qwen35_fp4_mtp_v2.py test-coverage

示例测试文件,套件标签从 'stage-c-test-4-gpu-b200' 改为 'stage-c-test-4-gpu-b200-small',反映分割策略。

from sglang.test.ci.ci_register import register_cuda_ci# 变更前:suite="stage-c-test-4-gpu-b200"
# 变更后:suite="stage-c-test-4-gpu-b200-small",表示此测试现在属于低磁盘容量 runner 池
register_cuda_ci(est_time=540, suite="stage-c-test-4-gpu-b200-small")# 其他测试逻辑保持不变,仅套件标签更新以适配 runner 分割
class TestQwen35FP4MTPV2(ReasoningTokenUsageMixin, CustomTestCase):
    # ... 测试方法实现未改动

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 配置错误风险:新 job stage-c-test-4-gpu-b200-small.github/workflows/pr-test.yml 中的条件逻辑(if 语句)或依赖关系若设置不当,可能导致测试不运行或重复执行。
  2. 测试覆盖失衡:测试分割可能影响负载均衡,新套件分区大小调整为 3,若时间估算不准确,可能导致部分测试超时或资源浪费。
  3. runner 标签依赖:变更依赖于外部 runner 池正确配置 4-gpu-b200-low-disk 等标签,若标签未及时应用,新 job 可能无法分配到 runner。
  4. 回归风险:修改多个测试文件的 register_cuda_ci 调用,若套件名称拼写错误或未在 run_suite.py 中注册,可能导致测试被忽略。
  1. 对用户:无直接影响,不涉及功能或性能变更。
  2. 对开发团队:CI 测试更灵活,低磁盘 runner 可参与部分测试,可能减少队列等待时间,提高开发效率;但增加了 CI 配置复杂度,需团队熟悉新的套件分割策略。
  3. 对系统:优化硬件资源使用,提升测试吞吐量;长期可能降低基础设施成本,但需维护额外的 runner 池和标签逻辑。
配置依赖变更 测试覆盖调整 CI 流程复杂度增加

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论