Skip to content

Work: 接入 motion tracking 自动 Numba 融合并完成双 pilot 收口 #923

Description

@TATP-233

一句话问题

自动 fused kernel 只有在覆盖 motion tracking 的 reference-derived preamble、大 workspace、reward/termination/obs 共用派生量后,才能证明方案不只是 G1 walk 特例。

为什么现在做

  • Work: 自动组装 Numba 融合内核并接入 G1WalkFlat #922 先用 G1 验证 assembler、cache 和 runtime scale 语义。
  • Motion tracking 当前 _compute_update_state_kernel 已把 transform preamble、12 个 reward、termination 和 actor/critic obs 融合在一个 prange 中,是第二 pilot 的明确 baseline。
  • reference sampling、failure stats、frame advance 和 clip-end teleport 属于 env owner,不应被 fused term runtime 接管。

最小交付结果

G1MotionTracking 使用 #922 自动 Numba assembler,支持共享 preamble/workspace 并保持现有 lifecycle;达到 parity/performance gate 后删除 motion tracking 手写整段 aggregator/固定 term order,完成 #918 双 pilot。

In scope

  • 将 yaw/anchor/body transform 等共享派生量注册为 ordered preamble,并在每个 prange sample 的 term 前计算一次。
  • reward、termination、actor/critic obs 消费同一 workspace,保持 cache locality 和预分配约束。
  • 接入现有 actor noise 输入;critic 保持 clean observation,随机数仍由 task owner 管理。
  • 保持当前帧 → 数值计算 → failure stats → frame advance → clip-end 处理顺序。
  • parity/SPS 达标后删除 motion tracking 手写 aggregation、重复 TERM_ORDER 及旧 accelerator glue。
  • 更新双 pilot 使用说明和局部 benchmark 记录;关闭本 child 后由 maintainer判断是否关闭 Roadmap: 在 G1 walk 与 motion tracking 跑通结构化、自动融合的 NumPy/Numba term #918 或另开推广 roadmap。

Non-goals

  • 不抽象 reference provider、sampling/curriculum、teleport、truncation、history、keyed RNG 或 asset fingerprint。
  • 不迁移其他 task family,不新增 backend/runner/training path,不修改 checkpoint 或 sim2sim contract。
  • 不提升 support 等级,不新增常规 CI/benchmark workflow 或 raw artifact。
  • 不要求 bit parity;使用 Work: 将 motion tracking NumPy 路径迁移到配置驱动 term plan #921 冻结的 dtype-aware tolerance。

Owner 与预计改动

  • Owner:motion tracking registration/preamble/adapter、共享 assembler 的必要窄扩展、局部 tests/benchmark/docs。
  • 预计 9–15 个文件,≤800 行净手写改动,1 个 PR。
  • PR base:refactor/issue-902-mjwarp-squashed-delivery;不得向 main 提 PR。

Acceptance criteria

  • G1MotionTracking numba_acceleration=true 使用自动 fused plan,不再调用手写 _compute_update_state_kernel aggregator。
  • preamble 每个 sample 计算一次,reward/termination/obs 复用声明 workspace;warm path 不解析 motion asset metadata。
  • Tier 1/Tier 2 reward/obs/termination 在冻结容差内一致;actor noise 与 clean critic 边界保持。
  • adaptive failure 使用失败时刻 frame;两种 clip-end 模式、teleport 和 terminated-row final observation 测试保持。
  • N=2048/8192 SPS ≥ 迁移前 motion tracking 手写 _compute_update_state_kernel baseline 的 90%。
  • 首次 JIT/cache-hit 数据记录在 PR;所有 G1WalkFlat/G1MotionTracking owner YAML 继续 compose。
  • 局部测试通过;创建/更新 PR 前通过 make test-all

Stop conditions

  • 超过 15 个文件或 800 行净手写改动。
  • SPS 低于 baseline 90%,或 preamble 拆分造成不可接受的 cache/locality 回归。
  • 需要修改 NpEnv lifecycle、backend contract、runner 或训练 ABI。
  • 为表达 motion semantics 必须恢复 manager/compiler、建立第二套 lifecycle 或把 task-owned teleport/reference 提升为公共 contract。

Dependencies

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions