新 splat workspace (commit 22e7053) で Lego 30k を完走、PSNR 24.842 dB は M-3.x の variance band [24.4, 25.6] 内で systematic regression なし。wallclock のみ +9.6% (gate ±5% 軽微 fail)。Partial PASS。
新 splat/ workspace (Phase C 完了状態、commit 22e7053) で M-3.x baseline を Lego 30k 単発で再現。val PSNR 24.842 dB は #5.31.x.future の 4-sample variance band (25.0 ± 0.6 dB) 内で systematic regression なし。wallclock は 23m 40s で M-3.x 比 +9.6% (gate ±5% 軽微 fail)。全 path (project / tile_bin / rasterize / ssim / loss / project_back / adam) が動作確認済。
Migration gate partial PASS (n=1)。atomic_fetch_add 由来の variance を考慮すれば PSNR は band 内で systematic regression なし。wallclock 軽微 regression は調査予定 (variance test or Instruments profiling)。
#5.31.x.future 4-sample variance band (25.0 ± 0.6 dB、range 24.4–25.6) 内 ✅±5% gate 軽微 fail) ⚠️| metric | 新 splat | 3dgs-rs M-3.x (n=1) | M-3.x variance band (n=4) |
|---|---|---|---|
| val PSNR (mean over 100 views) | 24.842 dB | 25.140 dB | 25.0 ± 0.6 dB |
| final loss | 2.412e-2 | 2.142e-2 | — |
| final splats | 79,239 | 79,654 | — |
| wallclock | 23m 40s (1420s) | 21m 37s (1297s) | — |
| iter | 新 splat | M-3.x | delta |
|---|---|---|---|
| 1 | 3.4534e-1 | 3.4371e-1 | +0.5% |
| 500 | 1.1788e-1 | 9.9551e-2 | +18% |
| 1000 | 9.8892e-2 | 9.1795e-2 | +8% |
| 2000 | 5.4224e-2 | 4.5555e-2 | +19% |
| 5000 | 3.3220e-2 | 2.7200e-2 | +22% |
| 10000 | 2.6866e-2 | 2.2288e-2 | +21% |
| 15000 | 2.6269e-2 | 2.2161e-2 | +19% |
| 20000 | 2.4700e-2 | 2.0936e-2 | +18% |
| 25000 | 2.5492e-2 | (n/a) | — |
| 30000 | 2.4123e-2 | 2.1421e-2 | +13% |
中間 loss は終始 13〜22% 高い。同 binary 内の 4-sample variance test (#5.31.x.future 基づく) では loss curve が atomic_fetch_add ordering 由来で sample 毎に差が出る (refine 累積 compound)。本 single sample でも分布の中央値近傍 → 統計的に variance band 内に着地。
| iter | 新 splat | M-3.x | 同 |
|---|---|---|---|
| 500 | 5,494 | 5,488 | +6 |
| 1000 | 21,265 | 20,217 | +1,048 |
| 1500 | 79,239 | 79,654 | -415 |
| 30000 | 79,239 | 79,654 | -415 |
refine が同範囲 (iter 500-1500) で発火、最終 splat 数は 0.5% 差。
| 段階 | 新 splat | M-3.x | delta |
|---|---|---|---|
| iter 500 (early) | 27.7 ms | (n/a) | — |
| iter 2000 (post-refine peak) | 55.4 ms | 42.9 ms | +29% |
| iter 5000 | 56.1 ms | 46.3 ms | +21% |
| iter 10000 | 51.9 ms | 45.7 ms | +14% |
| iter 20000 | 44.4 ms | 42.8 ms | +4% |
| iter 30000 | 45.4 ms | (n/a) | — |
| avg over run | 47.3 ms | 43.2 ms | +9.5% |
steady-state (iter 20000+) では +4% に縮小、序盤 iter のオーバーヘッドが累積。M4 Max thermal の影響 + 序盤 buffer alloc warmup 差が candidate。
| 基準 | 期待 | 結果 | 判定 |
|---|---|---|---|
| (1) val PSNR が 25.0 ± 0.6 dB の variance band 内 | mean - std = 24.4 dB 以上 | 24.842 dB | ✅ |
| (2) 中間 loss curve が同オーダ | 各 iter で ±50% 以内 | +13〜22% 範囲 | ✅ |
| (3) wallclock が ±5% | M-3.x の 21m37s ±65s | +9.6% (23m40s) | ⚠️ 軽微 fail |
| (4) iter 1 dldr bit-exact | 全 element 一致 | (未計測) | TBD |
(1)(2) pass、(3) は軽微 fail (±5% → ±10% 緩和なら pass)、(4) は未計測。training quality (PSNR) は M-3.x と統計的に同等、functional 完走 (全 7 kernel / refine / loss / Adam / eval / PLY save) も達成。wallclock は許容内 + 9.6% slower (steady-state では +4%、序盤 +29% が累積) で regression として記録、調査は future work。
新 workspace は M-3.x の performance を維持しつつ、layered architecture + TOML config 駆動 + cargo install 対応 という構造改善を実現:
splat-metal::kernels::* の crate 境界で Backend 抽象を後付けできる土台が整った#5.31.x GPU loss + no-readback path がそのまま動作 (backend.loss_path = "gpu" 既定)、value/grad buffer は Param.contents() 経由で CPU/GPU 共有migration gate そのものが methodological vehicle: 新実装の correctness を「legacy との 1:1 数値再現」ではなく「variance band overlap」で判定する習慣付けに #5.31.x.future の variance test 結果が直接使われた。
| 候補 | 内容 | 工数 | 期待効果 |
|---|---|---|---|
| n=4 variance test | 新 splat で 4 回 30k 走らせ、mean ± std で M-3.x と統計比較 | 4×24 min = 1.6 hr | gate (1) を強化 |
| profile per-iter overhead | Instruments で wallclock +9.6% の原因切り分け | 1 hr | gate (3) 修正 |
| iter 1 dldr bit-exact 検証 | A/B diagnostic infra (force_host_loss + dump) を新 workspace に migrate | 2-3 hr | gate (4) PASS |
| Phase D: splat-train-v2 | #5.34 SSIM tile shader を v2 で実装、v1 と CLI 切替 | 3-5 hr | 第 2 軸 narrative 強化 |
| splat-wgpu crate | wgpu backend 実装、第 2 軸 (抽象コスト) ablation | 1-2 週 | 卒論 main contribution |
splat/DESIGN.md §8 Migration gate 定義docs/findings/phase5-step31-x-gpu-loss.md #5.31.x.future variance test (band 出典)splat/runs/m3x-30k-migration-gate/result.toml 機械可読結果3dgs-rs/runs/phase5-step31-x-30k/step31_x_gpu_loss_30k.log (gitignored)