Splat2DPacked kernel pair (project / rasterize forward + backward) と Rust glue は cherry-pick で main 取り込み可能な状態にしたが trainer の forward path で packed kernel を活性化する route が未実装。ROI ~1% 既知で integration 余地ナシ、close。
feat.G branch (claude/musing-mendeleev-579d41) から Splat2DPacked kernel pair (project / rasterize forward + backward) と Rust glue を cherry-pick で main 取り込み可能な状態にしたが、trainer の forward path で packed kernel を活性化する route が実装されていない。30k bench 不可、ROI ~1% (memory より既知) で時間 budget 内では integration 余地ナシ、close。
subagent worktree agent-ad177df468acfb25a (branch feat-g-f16-packed-takeup、cargo test 73/73 pass):
splat-core/types.rs::Splat2DPacked (struct + round-trip helpers、half = "2.4" 依存追加)shaders/forward/project.metal の Splat2DPacked emit pathshaders/forward/rasterize.metal の Splat2DPacked forward kernelshaders/backward/rasterize_backwards.metal の Splat2DPacked backward kernelsplat-metal/kernels/project.rs の packed entry methodsplat-metal/kernels/rasterize.rs の forward_packed + backward_buf_packed (テスト用 entry、trainer から呼ばれない)forward_packed_matches_forward_fp32, backward_packed_matches_backward_simd_fp32splat-train-v1/src/trainer.rs の forward_with_state / backward_rasterize_buf は fp32 Splat2D path のみ を呼ぶ。packed kernel は test 経由でのみ実行され、env / config / build flag で switch する route が無い。
実 trainer に packed path を組み込むには:
Param に packed buffer pool を追加 (現状 splat3d_buf / splat2d_buf は fp32)Trainer::forward_with_state を switch 化 (config flag で fp32 / packed select)project_backwards) も packed entry を呼ぶよう改修これは feat.G の Phase 4 integration に相当し、feat.G branch にも未実装 (stage 1-3a までしか cherry-pick されていない)。
memory [[feat_g_f16_packed_roi]] より、kernel pair 単独 bench で trainer 統合相当の wallclock 効果は ~1% と既知 (feat.G branch 内の独自 bench から)。
期待効果 (theoretic):
第 3 軸 (Apple Silicon 固有最適化) の Negative finding (微改善): f16 packed 表現は理論上 -39% memory traffic だが、実際の wallclock 効果は ~1% に留まる。Lego (~80k splats) で memory bound でなく compute bound (Shading + alpha 合成)。bandwidth 削減は より大規模シーン (200k+ splats) で効果出る可能性、卒研範囲外。
Param packed buffer pool 追加[backend] dtype = "fp32" | "packed")[[feat_g_f16_packed_roi]] (ROI ~1% の元情報), [[feat_g_branch_state]] (branch 状態)final-ablation-table.md