一句话问题
自动 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
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
一句话问题
自动 fused kernel 只有在覆盖 motion tracking 的 reference-derived preamble、大 workspace、reward/termination/obs 共用派生量后,才能证明方案不只是 G1 walk 特例。
为什么现在做
_compute_update_state_kernel已把 transform preamble、12 个 reward、termination 和 actor/critic obs 融合在一个prange中,是第二 pilot 的明确 baseline。最小交付结果
让
G1MotionTracking使用 #922 自动 Numba assembler,支持共享 preamble/workspace 并保持现有 lifecycle;达到 parity/performance gate 后删除 motion tracking 手写整段 aggregator/固定 term order,完成 #918 双 pilot。In scope
prangesample 的 term 前计算一次。TERM_ORDER及旧 accelerator glue。Non-goals
Owner 与预计改动
refactor/issue-902-mjwarp-squashed-delivery;不得向main提 PR。Acceptance criteria
G1MotionTracking numba_acceleration=true使用自动 fused plan,不再调用手写_compute_update_state_kernelaggregator。_compute_update_state_kernelbaseline 的 90%。make test-all。Stop conditions
NpEnvlifecycle、backend contract、runner 或训练 ABI。Dependencies