Prhub

#1986 [docs] optimize readme

原始 PR 作者 zhuzilin 合并时间 2026-05-30 09:51 文件变更 18 提交数 3 评论 0 代码增减 +413 / -145

执行摘要

优化 CI 文档并标记 CPU-only 测试

原有 CI 文档结构陈旧,未反映实际的两层测试拆分;CPU 测试文件缺少 NUM_GPUS 标记,导致 changed-test job 默认按 8 GPU 调度,浪费资源。本次优化旨在让文档与实际 CI 流程一致,并让 CPU 测试显式声明自身需求。

值得快速浏览,了解项目 CI 架构演变。设计决策“通过 NUM_GPUS 常量区分 CPU/GPU 测试”简单且有效,可在类似项目中复用。

讨论亮点

PR 未产生任何 review 讨论或评论。

实现拆解

  1. 重写 CI 文档:分别更新 docs/en/developer_guide/ci.mddocs/zh/developer_guide/ci.md,将原有单一 label 触发描述重构为“CPU 层 + GPU 层”的双层结构;新增 changed-test job 说明,强调 NUM_GPUS 常量在动态矩阵构建中的作用。
  2. 标记 CPU-only 测试:在 tests/ 下的 10 个测试文件(test_cp_utils.pytest_dp_schedule.pytest_loss_cp_invariance.pytest_megatron_argument_validation.pytest_metric_report.pytest_metric_report_dist.pytest_rm_deepscaler.pytest_rm_f1.pytest_rm_math.pytest_rm_math_dapo.py)顶部添加 NUM_GPUS = 0 常量。这些文件中的测试均为纯 CPU 逻辑,不依赖 GPU。
  3. 合并主分支Merge branch 'main' into zilin/test 确保分支与最新 main 同步。
文件 模块 状态 重要度
docs/en/developer_guide/ci.md 文档 modified 4.73
docs/zh/developer_guide/ci.md 文档 modified 4.73
tests/test_cp_utils.py 测试 modified 3.86

关键源码片段

tests/test_cp_utils.py test-coverage

作为 CPU-only 测试的代表,添加 `NUM_GPUS = 0` 常量的模式适用于所有同类测试文件。

"""CPU unit tests for slime.backends.megatron_utils.cp_utils.get_sum_of_sample_mean.
...
"""from __future__ import annotations# 导入 megatron 桩模块
import _cp_dist_helpers # noqa: F401
import pytest
import torchfrom slime.backends.megatron_utils.cp_utils import ( # noqa: E402
    get_logits_and_tokens_offset_with_cp,
    get_sum_of_sample_mean,
)# 标记为 CPU 测试,CI 不会为此文件申请 GPU
NUM_GPUS = 0def _make_inputs(per_sample_lengths: list[int]):
    ...

评论区精华

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

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

风险与影响

风险极低。文档更新不涉及运行时逻辑;NUM_GPUS = 0 的添加仅影响 CI 调度,不会改变测试行为。潜在风险是未来若有新的 CPU 测试忘记添加该常量,CI 会误认为需要 GPU,但可通过 CI 模板的默认值兜底(默认 8 GPU)。

CI 效率提升:CPU 测试不再错误触发 GPU 集群资源抢占,队列等待时间缩短。文档准确性提高:开发者可通过文档快速理解 CI 分层及触发条件。影响范围限于 CI 流程和文档,对训练/推理核心代码无影响。

低风险文档与标记变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论