同 seed=42 / 同 binary / 同 config で M-3.x lego sh3 30k を 4 回 run、PSNR の variance σ ±0.32 dB (range 0.885 dB)、wallclock σ ±2.4%。原因は SIMD atomic 順序非決定性、Kahan summation で解決不可。A.10 Negative finding (a-10-kahan-negative) の前提を実証。
A.10 Kahan finding で「Kahan は MSL compiler に消える」と分かったが、本来の motivating problem 「M-3.x の variance ±0.6 dB」が真に GPU 非決定性由来かは未確定だった。本実験で同 seed=42 / 同 binary / 同 config を 4 回 run、PSNR variance を直接測定し σ ±0.32 dB / range 0.885 dB を確定。
| run | PSNR (dB) | wallclock | Δ vs mean PSNR | Δ vs mean wall |
|---|---|---|---|---|
| baseline (lego-sh3-30k) | 24.879 | 23m13s (1393s) | +0.045 | +47.5s |
| trial1 (lego-variance-trial1) | 24.858 | 22m08s (1328s) | +0.024 | -17.5s |
| trial2 (lego-variance-trial2) | 24.356 | 22m01s (1321s) | -0.478 | -24.5s |
| trial3 (lego-variance-trial3) | 25.241 | 22m20s (1340s) | +0.407 | -5.5s |
| **mean** | **24.834** | **22m18s (1345.5s)** | — | — |
| **σ** | **±0.315** | **±31.6s (±2.4%)** | — | — |
| **range** | **0.885** | **72s (5.2%)** | — | — |
shaders/backward/rasterize_backwards.metal の rasterize_backwards_simd kernel は per-pixel × per-splat の gradient を atomic_fetch_add で集約。dispatch 順序が GPU scheduler 任せのため、同一 input でも累積順が iter ごとに微妙に変わる。これが iter 累積で gradient drift → refine 判定 → splat 数差 → PSNR drift というフィードバックを生む。
refine は |grad| > grad_threshold (2.0e-7) で split/clone を決定する。GPU 非決定性で grad が threshold 付近に来た splat が trial ごとに「split される / されない」で flip → final splats 数差 → PSNR drift。
A.10 Kahan は forward の per-pixel RGB 累積を Neumaier 化した。しかし variance の主因は (1) backward の atomic 非決定性 + (2) refine boundary の flip で、forward の数値精度ではない。Kahan が compiler に消されなかったとしても、variance は減らない。
variance σ ±0.32 dB を「有意性判定の noise floor」とすると:
GPU 上の floating point + atomic は同 input でも実行ごとに異なる結果を生む。Variance を抑えたければ atomic 不使用設計か、結果を「mean ± σ」で報告する慣習を採用すべき。本研究では後者を採用 — central table の数字は今後 mean ± σ で記載 (現状 single-run の数字は variance 内とみなす)。
D.3 Negative findings 章に「数値精度 vs GPU 非決定性」のストーリーを追加。Kahan で variance が消えなかった事実は、本研究の variance 主因が algorithm の数値安定性ではなく実行環境 (GPU scheduler) にあると示す。これは Apple Silicon に限らず CUDA でも同様 (gsplat の bench でも同様の variance 報告あり)、本研究で得られた generic な finding。
a-10-kahan-negative — Kahan 試行の経緯a-7-icb-batching-results — variance を考慮した有意性判定a-7-multi-scene-batched — scene 依存性 -1.6% 〜 -18.6%negative-findings-chapterこの finding が観測された / 言及している実験 run。