Skip to content

roadmap(offpolicy): learner-owned GPU inference(单 collector,不做多 shard) #956

Description

@TATP-233

Work type: roadmap / infra / performance
Area: off-policy / IPC / MuJoCo
Scope: 已收敛为 Standard;目标已达成,保留为决策与证据记录

Owner summary(2026-08-13 修订)

本 roadmap 的目标已修订为:单 collector + learner-owned GPU-only inference1 learner + 1 collector + 1 GPU),不再要求一个 learner 对应多个 collector shards,也不再做训练侧多 shard production 接入。

修订依据:#960 的多 shard 环境吞吐 benchmark 显示,收益高度依赖硬件规模——百核级服务器上 S>1 有 1.6x–3.7x 环境吞吐提升,但消费级 32 线程机器上基本打平(0.96x–1.30x)。多 shard 的 IPC、shard lifecycle 与 transition fan-in 维护成本不由该收益普遍覆盖,故多 shard production 路径移出本 roadmap;benchmark 代码与数据保留在仓库中,未来若在百核级平台上遇到 collector 瓶颈可重新评估。

已交付:collector 不再持有 actor、不同步权重、不初始化 accelerator;learner 是唯一的 actor 与 accelerator owner,复用 learner.actor 做 GPU inference,按固定周期与训练严格分时(#957 / PR #961)。MuJoCo BatchEnvPool 显式 CPU affinity 接口已作为独立能力交付(#959)。

已冻结的架构决策(终态)

  1. 保留 NpEnv:不改变 NpEnvStatereset()、obs dict 或 backend contract;CPU physics + GPU learner/inference 是目标路径。
  2. GPU-only inference:collector 不持有 actor,也不创建 CUDA context;无 Torch CPU inference 路径。
  3. learner-owned inference:每个 learner 持有唯一的训练 actor(learner.actor),inference 与训练共用该 actor,按固定周期交替;每个 tick 的 action 来自一个完整、可追踪的参数状态(actor 更新在完整 inference tick 之间生效)。
  4. 同卡严格分时:learner optimization 与 inference compute 不并发;inference 只发生在完整 learner update phase 之间,不依赖 GPU kernel 抢占。
  5. 同步 collectionS=1env_steps_per_sync=1S=1 是唯一 production 路径,不保留 collector-owned actor 分支。
  6. 拓扑边界:不引入多 learner/NCCL、跨 learner replay、参数同步或多 GPU support claim;Work: off-policy replay 收敛为单 device GPU-resident 唯一路径 #933/Work: 移除 off-policy 多 GPU 生产入口与 runtime #937 已移除的能力不得被静默恢复。

数据流(终态):

CPU NpEnv collector -> fixed shared obs slot  -> learner.actor / GPU
CPU NpEnv collector <- fixed shared action slot <- learner.actor inference
transitions          -> bounded ingress        -> learner-local GPU replay

Child issues(全部关闭)

原计划的 child 3(单 learner + 多 shard off-policy 接入)随目标修订取消,不再创建。

验收结论

Non-goals

  • 不做多 collector shard production 路径、per-shard actor、transition fan-in 或 replay 重构。
  • 不做 Torch CPU inference、Torch/GPU env 后处理、全 GPU physics 或 NpEnv 替换。
  • 不做多 learner/NCCL、跨 learner replay、参数同步或新的多 GPU support claim。
  • 不把 affinity/shard 规则放进 scripts/,不在 env/runner 探测 backend 私有能力。
  • 若未来在百核级平台上 collector 再次成为瓶颈并重启多 shard 评估,需新建 roadmap,以 perf(mujoco): 测量多 NpEnv shard 的环境吞吐扩展性 #960 的 benchmark 为依据。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions