# PR #1986 完整报告

- 仓库：`THUDM/slime`
- 标题：[docs] optimize readme
- 合并时间：2026-05-30 09:51
- 原文链接：http://prhub.com.cn/THUDM/slime/pull/1986

---

# 执行摘要

- 一句话：优化 CI 文档并标记 CPU-only 测试
- 推荐动作：值得快速浏览，了解项目 CI 架构演变。设计决策“通过 `NUM_GPUS` 常量区分 CPU/GPU 测试”简单且有效，可在类似项目中复用。

# 功能与动机

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

# 实现拆解

1. **重写 CI 文档**：分别更新 `docs/en/developer_guide/ci.md` 和 `docs/zh/developer_guide/ci.md`，将原有单一 label 触发描述重构为“CPU 层 + GPU 层”的双层结构；新增 `changed-test job` 说明，强调 `NUM_GPUS` 常量在动态矩阵构建中的作用。
2. **标记 CPU-only 测试**：在 `tests/` 下的 10 个测试文件（`test_cp_utils.py`、`test_dp_schedule.py`、`test_loss_cp_invariance.py`、`test_megatron_argument_validation.py`、`test_metric_report.py`、`test_metric_report_dist.py`、`test_rm_deepscaler.py`、`test_rm_f1.py`、`test_rm_math.py`、`test_rm_math_dapo.py`）顶部添加 `NUM_GPUS = 0` 常量。这些文件中的测试均为纯 CPU 逻辑，不依赖 GPU。
3. **合并主分支**：`Merge branch 'main' into zilin/test` 确保分支与最新 main 同步。

关键文件：
- `docs/en/developer_guide/ci.md`（模块 文档；类别 docs；类型 documentation）: 重写英文 CI 文档，新增 CPU/GPU 两层架构说明及 changed-test 工作流描述，是本次 PR 的核心文档变更。
- `docs/zh/developer_guide/ci.md`（模块 文档；类别 docs；类型 documentation）: 与英文文档同步更新，确保中英文内容一致。
- `tests/test_cp_utils.py`（模块 测试；类别 test；类型 test-coverage）: 作为 CPU-only 测试的代表，添加 `NUM_GPUS = 0` 常量的模式适用于所有同类测试文件。

关键符号：未识别

## 关键源码片段

### `tests/test_cp_utils.py`

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

```python
"""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 torch

from 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 = 0

def _make_inputs(per_sample_lengths: list[int]):
    ...

```

# 评论区精华

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

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低。文档更新不涉及运行时逻辑；`NUM_GPUS = 0` 的添加仅影响 CI 调度，不会改变测试行为。潜在风险是未来若有新的 CPU 测试忘记添加该常量，CI 会误认为需要 GPU，但可通过 CI 模板的默认值兜底（默认 8 GPU）。
- 影响：**CI 效率提升**：CPU 测试不再错误触发 GPU 集群资源抢占，队列等待时间缩短。**文档准确性提高**：开发者可通过文档快速理解 CI 分层及触发条件。影响范围限于 CI 流程和文档，对训练 / 推理核心代码无影响。
- 风险标记：低风险文档与标记变更

# 关联脉络

- 暂无明显关联 PR