# PR #5791 完整报告

- 仓库：`verl-project/verl`
- 标题：[ci] fix: resolve oom when allocating weight transfer buffer in fully async test cases
- 合并时间：2026-03-29 01:26
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/5791

---

# 执行摘要

- 一句话：修复 fully async 测试中 Megatron 策略的 OOM 问题，通过标准化配置参数。
- 推荐动作：该 PR 变更较小且逻辑直白，不建议深入精读，除非您直接负责 CI 测试或 fully async 策略的配置优化。可关注配置标准化的设计决策，以避免硬件特定的条件分支，促进代码一致性。

# 功能与动机

PR 标题明确指出要解决 fully async 测试用例中分配权重传输缓冲区时的 OOM 问题，旨在优化内存使用并防止测试失败。body 中仅说明 'as title'，因此动机直接来自问题描述。

# 实现拆解

实现变更集中在单个文件 `tests/special_e2e/run_fully_async_policy.sh`。关键改动包括：1) 将 `train_tp` 从 1 改为 2，增加训练并行度；2) 启用 `actor_offload`（从 False 改为 True），允许 actor 模型卸载以节省内存；3) 移除对设备名为 'npu' 的条件检查，统一应用 `actor_rollout_ref.rollout.gpu_memory_utilization=0.60` 参数，简化配置逻辑。

关键文件：
- `tests/special_e2e/run_fully_async_policy.sh`（模块 ci）: 这是唯一变更的文件，直接修改了 fully async 测试中 Megatron 策略的配置，通过调整参数解决了 OOM 问题，是 PR 的核心实现。

关键符号：未识别


# 评论区精华

Review 讨论中仅有一个机器人评论（gemini-code-assist[bot]）总结了变更，指出移除了 NPU 特定条件块并标准化了配置，但未提供实质性反馈。批准者 ji-huazhong 没有额外评论，表明变更被直接接受，无争议或深入讨论。

- 变更总结与批准 (other): 变更被接受，无争议或进一步讨论。

# 风险与影响

- 风险：主要技术风险：1) 配置变更可能对非 NPU 设备产生未预期的内存或性能影响，因为移除了条件分支，统一应用了原本为 NPU 设计的参数（如 train_tp=2 和 actor_offload=True）；2) 变更缺少测试覆盖，仅修改了 shell 脚本，未添加单元测试来验证新配置在多种硬件环境下的有效性；3) gpu_memory_utilization=0.60 的设置可能在其他设备上导致性能下降或新的 OOM 问题，如果内存利用率过高。
- 影响：影响范围：主要针对 CI 测试中的 fully async 策略测试用例，影响程度为中等。正面影响：优化内存管理，减少 OOM 导致的测试失败，提高测试稳定性和可靠性；负面影响：可能引入配置不兼容性，需在非 NPU 设备上验证参数适配性。对系统：仅影响测试脚本，对生产环境无直接影响。对团队：简化配置维护，促进代码一致性，但需注意硬件适配性。
- 风险标记：配置变更风险 , 缺少测试覆盖 , 硬件适配不确定性

# 关联脉络

- PR #5734 [ci] chore: add npu nightly ci for dapo-moonlight-16b-megatron and modify log path: 涉及 NPU CI 配置优化，与本 PR 移除 NPU 特定条件分支相关，共同关注 CI 测试的硬件适配性。
- PR #5758 [ci] chore: delete mirror for npu ci: 同样涉及 NPU CI 的简化配置，与本 PR 标准化配置逻辑有共同主题，反映 CI 维护趋势。