一句话问题
G1 walk 的 Numba 路径由手写固定 TERM_ORDER 和整段融合内核维护,配置变化不能自动形成一致的 fused kernel,且 observation noise 仍不受支持。
为什么现在做
最小交付结果
实现由 trusted resolved plan 自动组装的 prange fused kernel,并让 G1WalkFlat 在 numba_acceleration=true 时使用它;达到 parity/performance gate 后移除 G1 手写整段 aggregator 和固定名单维护。
In scope
- 根据 canonical ordered term/preamble、workspace layout、dtype 和 implementation version 生成稳定 cache key。
- 在冷路径组装并 JIT 一个融合 kernel;注册的 Numba item function 被直接调用,热路径无 Python per-term dispatch。
- scale/parameters 作为运行时参数;零 scale 用显式、可测试的 runtime branch 跳过数学。
- 同进程相同 plan 复用已编译 callable;记录首次 JIT 和 cache hit 时间,不建设长期 benchmark 服务。
- 接入 G1 reward/obs/termination 与既有 noise 输入;noise 随机数仍由 task owner 产生,不新增 RNG contract。
- parity/SPS 达标后删除 G1 task-owned 手写 aggregation、重复 term order 和只服务旧路径的代码。
Non-goals
Owner 与预计改动
- Owner:term Numba assembler/cache、G1 registration/adapter 和局部 benchmark/tests。
- 预计 9–15 个文件,≤800 行净手写改动,1 个 PR。
- PR base:
refactor/issue-902-mjwarp-squashed-delivery;不得向 main 提 PR。
Acceptance criteria
Stop conditions
- 超过 15 个文件或 800 行净手写改动。
- SPS 低于 baseline 90%,或生成方案需要新 runner/execution path。
- 稳定 cache key 需要读取 hot-path asset/backend metadata。
- 为支持 G1 必须引入通用 DAG、graph scheduler 或表达式语言。
Dependencies
一句话问题
G1 walk 的 Numba 路径由手写固定
TERM_ORDER和整段融合内核维护,配置变化不能自动形成一致的 fused kernel,且 observation noise 仍不受支持。为什么现在做
最小交付结果
实现由 trusted resolved plan 自动组装的
prangefused kernel,并让G1WalkFlat在numba_acceleration=true时使用它;达到 parity/performance gate 后移除 G1 手写整段 aggregator 和固定名单维护。In scope
Non-goals
NpEnvlifecycle、runner、training ABI、checkpoint、sim2sim 或常规 CI。Owner 与预计改动
refactor/issue-902-mjwarp-squashed-delivery;不得向main提 PR。Acceptance criteria
numba_acceleration=true使用自动 fused kernel,不再调用手写整段 aggregator。make test-all。Stop conditions
Dependencies