Skip to content

perf: MBA update_state backend state/getter 单相位复用 (#1259 U1) #1272

Description

@TATP-233

Parent: #1259

Depends on: #1256(可复核插桩 PR #1264 已合入)、#1260(7-case pinned baseline 已记录)
启动授权:maintainer 已明确要求执行 #1259 Wave 2 U1。

一句话问题

同一次 MBA update_state 中,termination、reward、command、policy/critic observation 会重复通过 EntityData 读取相同 backend state。#1256 实测 getter 占 update_state 的 5%–26%;walk/motrix 的 joint_pos/joint_vel 以及 motion tracking 的 body state 都存在重复 full-batch 读取。

最小交付结果

在 EntityData / manager env state-read boundary 内,为一次 update_state 的同一 simulation state phase 复用相同 leaf backend getter 结果;每次 physics step、实际 set_state、step/interval event mutation、partial reset 之后都必须重新读取。

In scope

  • EntityData 按 getter 与冷路径固定 selector 缓存 leaf backend state;作用域外保持当前逐次读取行为。
  • ManagerBasedRlEnv 为 update_state 打开并可靠关闭 read phase;step/interval event 后清空,ResetStateTransaction 实际提交 set_state 后清空。
  • 保持 排查:MBA observation / update_state 路径开销定位(2.2-2.4 倍) #1256 getter timing:cache hit 不伪装成 backend getter 时间,block/term timing 仍闭合。
  • 补 owner-level tests,锁定同相位单次读取、下一 physics step 重读、set_state/event/partial reset 失效、异常退出不泄漏 cache,以及 obs/reward/termination 数值与顺序不变。
  • 复用现有 7-case benchmark,报告同 commit before/after 的 getter timing 与 collector throughput。

Non-goals

  • 不融合或改写 ObservationManager / RewardManager term 与固定管线(U2/U3 边界)。
  • 不改变 manager term 签名、执行顺序、RNG、reset/final observation、task I/O 或 sim2sim contract。
  • 不新增 SimBackend 方法、公共 manager lifecycle、direct fallback、runner/IPC/learner 路径。
  • 不做 backend-specific cache 或 asset/metadata 热路径探测。

Owner 与预计改动

  • Owner:EntityData / ManagerBasedRlEnv state-read boundary;ResetStateTransaction 只暴露内部 commit 事实用于精确失效。
  • 预计 4–7 个文件、≤500 行净手写改动、1 个 PR,base 为 dev/issue-1042-manager-based-api。
  • 永久维护成本是 read phase 与 physics/event/set_state/reset 失效规则及 focused parity tests。

Acceptance criteria

Stop conditions

  • 无法在现有 update_state / ResetStateTransaction owner 内明确 physics substep、set_state、partial reset 的失效边界。
  • 需要新增公共 lifecycle/SimBackend contract,或必须改变 term 顺序/返回数组语义才能复用。
  • 达到 15 文件、800 行、一个 PR 上限,或实测收益无法覆盖 cache 维护成本。

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions