[{"data":1,"prerenderedAt":443},["ShallowReactive",2],{"finding:p3-ssim-float4":3,"finding-runs:p3-ssim-float4":285,"finding-related:p3-ssim-float4":316},{"meta":4,"impact":58,"sections":64},{"id":5,"title":6,"subtitle":7,"eyebrow":8,"date":9,"status":10,"category":11,"polarity":12,"axes":13,"tags":16,"task_code":28,"commit":29,"branch":30,"config_paths":31,"related_runs":44,"related_findings":53},"p3-ssim-float4","M5a A6 SSIM float4 化 — stage1 (float4) は byte-exact 確認済み・PSNR riskゼロ、stage2 (float4_rcp) は 12.5k gate で PSNR guard 抵触・不採用","実 config (K=7) の SSIM forward\u002Fbackward を対象に、fwd の 3ch 個別 walk (294 load\u002Fpx) を 1 walk に統合する \u003Ccode>ssim_forward_float4\u003C\u002Fcode> (stage 1) と、bwd の window あたり 3 divide (441 divide\u002Fpx) を削減する \u003Ccode>ssim_backward_rcp\u003C\u002Fcode> (stage 2、441→147 divide\u002Fpx) を実装した。\u003Cstrong>stage 1 は K=7\u002FK=11 の単体 test に加え本番規模 (407,267 splats) の \u003Ccode>splat bench --parity\u003C\u002Fcode> でも byte 一致を確認\u003C\u002Fstrong> — PSNR risk が原理的にゼロの再挑戦候補として残る。stage 2 は REL_TOL を実測ベースで確定 (K=7 max_rel=8.4519e-5 \u002F K=11 6.3679e-5 → REL_TOL=2e-4)、parity は本番規模でも PASS したが、\u003Cstrong>「採用候補の最終形 = float4_rcp」を対象にした 12.5k Lego 同一 session 交互 A\u002FB n=3 gate で PSNR guard に抵触し不採用\u003C\u002Fstrong>とした (on mean 36.1327 dB vs off mean 36.2133 dB、Δ -0.081 dB、3 pair 全てで on\u003Coff の系統的分離)。wallclock 側も Δ -0.055% で有意閾値 (2.53%) に届かない null という結果で、二重に採用基準を満たさなかった。","2026-09 ゼミ milestones · M5a · A6 SSIM float4 化","2026-08-30","stable","experiment","negative",[14,15],1,3,[17,18,19,20,21,22,23,24,25,26,27],"m5a","seminar05-milestones","ssim","float4","reciprocal-sharing","fast-math","bit-exact","gpu-gate","rejected","psnr-guard-fail","lego","2026-09-seminar05-milestones M5a (A6 SSIM float4 化、3ch 単一 walk)","324d0523808a353c187d320cbf0a76df368a71f9","main",[32,33,34,35,36,37,38,39,40,41,42,43],"splat\u002Fconfigs\u002F2026-08-30-m5a-parity-baseline.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-parity-candidate-float4.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-parity-candidate-float4_rcp.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-replay-perkernel-per_channel.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-replay-perkernel-float4.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-replay-perkernel-float4_rcp.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-off-r1.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-off-r2.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-off-r3.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-on-r1.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-on-r2.toml","splat\u002Fconfigs\u002F2026-08-30-m5a-12500-on-r3.toml",[45,46,47,48,49,50,51,52],"m5a-12500-off-r1 (contaminated, discarded, re-run once)","m5a-12500-on-r1 (contaminated, discarded, re-run once)","m5a-12500-off-r1 (redo, used)","m5a-12500-on-r1 (redo, used)","m5a-12500-off-r2","m5a-12500-on-r2","m5a-12500-off-r3","m5a-12500-on-r3",[54,55,56,57],"p2-s3-iteration-pipelining","p3-kernel-share-post-s3","p3-radix-ballot","p3-tier1-bit-exact",{"summary":59,"rank":60,"verdict":61,"delta_psnr":62,"delta_wallclock":63},"SSIM の walk 方式を選べる BackendConfig `[backend] ssim_walk` (`per_channel` default \u002F `float4` \u002F `float4_rcp`) を実装し、shader (`ssim_forward_float4`, `ssim_backward_rcp`) と Rust 配線 (`SsimEvaluator`, `Trainer`, `apply_backend_config`, result.toml item) を完結させた。\u003Cstrong>stage 1 (float4 化 forward) は K=7\u002FK=11 の単体 test + 本番規模 (407,267 splats) `splat bench --parity` の両方で byte-exact\u003C\u002Fstrong> — PSNR risk がゼロの再挑戦候補として残す。\u003Cstrong>stage 2 (逆数共有 backward) の REL_TOL は実測ベースで 2e-4 に確定\u003C\u002Fstrong> (K=7 max_rel=8.4519e-5 \u002F K=11 6.3679e-5、旧 2-divide 実装の 8.28e-5 とほぼ同水準 — fast math 近似逆数の精度floorが支配的で除算回数削減の理論的優位はほぼ観測できなかった)。3-way replay bench (`submission=per_kernel` で ssim label を分離) では float4_rcp の ssim label gpu_ms が per_channel 比 -20.8% (758.92→601.06ms\u002F600calls) と明確に縮小したが、\u003Cstrong>12.5k Lego 同一 session 交互 A\u002FB n=3 gate (「採用候補の最終形 = float4_rcp」を一括計測) では PSNR guard に抵触し不採用\u003C\u002Fstrong>: on mean 36.1327 dB (36.156\u002F36.170\u002F36.072) vs off mean 36.2133 dB (36.256\u002F36.204\u002F36.180)、Δ -0.081 dB は guard 閾値 -0.05 dB を超過、3 pair 全てで on\u003Coff の完全分離という系統的な質低下だった。wallclock は Δ -0.055% (off mean 126.954s → on mean 126.884s) で有意閾値 max(2σ_off,1%)=2.53% に届かず null。§5 で示す通り、ssim の budget share (11.80%、p3-kernel-share-post-s3) と isolated-label 効果 (-20.8%) から予測される wallclock 寄与は ~-2.5% で、この gate の解像度限界とほぼ同水準だった — milestone の期待 delta (-4〜6%) はこの意味で楽観的すぎた。config.rs \u002F ssim.rs の `SsimWalkKind::default()` は `PerChannel` のまま変更していない。","low","rejected-psnr-guard-float4rcp-null-wallclock-float4-standalone-untested","12.5k 同一 session 交互 A\u002FB n=3 (1 pair 再実行後): on **36.1327 dB** (36.156 \u002F 36.170 \u002F 36.072) vs off **36.2133 dB** (36.256 \u002F 36.204 \u002F 36.180) = **Δ -0.081 dB**。task 指定 guard (on mean ≥ off mean − 0.05 dB) に **fail** (-0.081 \u003C -0.05)。3 pair とも on\u003Coff で完全分離、方向一致。on-r3 (36.072 dB) は config header の絶対 guard 帯 [36.102, 36.302] の下限を割り込む唯一の値","12.5k full run 同一 session 交互 A\u002FB n=3 (r1 は汚染疑いで 1 回再実行): **off mean 126.954s (σ 1.264%) → on mean 126.884s (σ 4.314%) = Δ -0.055%**。有意閾値 max(2σ_off,1%) = 2.528%、実測 Δ はこれに遠く届かない **null 結果**。3 pair 個別 Δ は +3.62% (r1, redo) \u002F -2.24% (r2) \u002F -1.61% (r3) と符号が一致しない。σ 非対称比 3.41× (on>off) は p3-tier1-bit-exact の汚染署名域に近いが、r1 は既に 1 回再実行済みのため追加再実行はしていない (§4 参照、PSNR guard が既に不採用を決定づけているため追加の GPU 消費は不要と判断)",[65,68,71,88,93,95,113,115,118,146,150,152,169,171,191,193,261,264,266,269,271],{"type":66,"text":67},"lead","milestone 本文 (M5a) の要求は「3ch 単一 walk で fwd 294→98 load\u002Fpx、\u003Cstrong>bwd の除算 441 回\u002Fpx が本丸\u003C\u002Fstrong>、第 1 段 (load 統合) は加算順不変で bit-exact、除算削減で丸めが変わる場合は第 2 段として別 flag 値に分ける」。この構造どおり `SsimWalkKind { PerChannel(default), Float4, Float4Rcp }` を実装した。\u003Ccode>Float4\u003C\u002Fcode> は forward のみ新 kernel (`ssim_forward_float4`) を使い backward は既存 `ssim_backward` を共有する (backward には load 統合の余地が実質ない — x\u002Fy は channel ごとに window loop の外で 1 回だけ load 済み、window loop 内の load は `stats_in` のみで AoS stride 5 float のため vectorize してもメリットがない)。本 finding は前回 draft (implementation-only、GPU 未検証) からの続きとして、検証 → gate → 結論確定までを完結させる。",{"type":69,"text":70},"heading","1. stage1 (float4 forward walk) — 検証: K=7\u002FK=11 単体 test + 本番規模 parity で byte-exact",{"type":72,"columns":73,"align":77,"rows":79},"table",[74,75,76],"test \u002F 経路","何を pin するか","結果",[78,78,78],"left",[80,84],[81,82,83],"`ssim_walk_float4_is_byte_exact` (K=7, sigma=1.0 \u002F K=11, sigma=1.5)","24×24 非定数 synthetic RGB で mean ssim + grad buffer 全要素が bit 一致","**PASS (両 K)**",[85,86,87],"`splat bench --parity` (本番規模、407,267 splats、Lego 12.5k checkpoint、baseline=per_channel vs candidate=float4)","tile_offsets byte 一致 + grad 5 種 tol PASS + loss diff 極小","**PASS OVERALL** (loss diff=1.770e-8, means_grad max_abs_diff=1.080e-5, 他 4 grad も tol 内)",{"type":89,"label":90,"variant":91,"text":92},"callout","stage1 は PSNR risk がゼロの再挑戦候補","info","加算順を変えない load 統合という設計方針が、24×24 synthetic だけでなく本番規模 (407,267 splats、実データ) でも bit-exact であることを確認した。\u003Ccode>Float4\u003C\u002Fcode> 単独 (backward は従来のまま) は本 gate では計測していない — stage2 (float4_rcp) を「採用候補の最終形」として一括計測する milestone 方針のためであり、\u003Ccode>Float4\u003C\u002Fcode> 単独の 12.5k wallclock 効果は未知数だが、byte-exact ゆえに PSNR guard で落ちるリスクは構造的にゼロ。次回 M5a 系を revisit するなら、まず \u003Ccode>Float4\u003C\u002Fcode> 単独を gate してから stage2 を検討する順序の方が PSNR risk を切り分けやすい。",{"type":69,"text":94},"2. stage2 (逆数共有 backward) — REL_TOL 実測確定: K=7 8.4519e-5 \u002F K=11 6.3679e-5 → REL_TOL=2e-4",{"type":96,"items":97},"kv",[98,101,104,107,110],{"key":99,"value":100},"当初仕様","相対誤差 \u003C=1e-6 (draft finding 時点)",{"key":102,"value":103},"第一版 (2-divide 独立計算) 実測","8.28e-5 (draft finding 記載、本 session では再確認していない)",{"key":105,"value":106},"第二版 (1-divide 恒等式、本実装) 実測","**K=7: max_rel=8.4519e-5** (at a=-2.4209792e-6, b=-2.4211838e-6) \u002F **K=11: max_rel=6.3679e-5** — 旧 2-divide 実装とほぼ同水準で、除算回数削減 (294→147 divide\u002Fpx) による理論上の改善はほぼ観測できなかった。fast math 近似逆数命令の相対精度 floor (~2^-14≈6e-5) が支配的という仮説と整合し、K を大きくしても誤差は増えない (K=11 \u003C K=7) ことも確認 — 「除算回数の蓄積」より「近似逆数命令の精度floor」が支配的",{"key":108,"value":109},"確定 REL_TOL","**2e-4** (実測最大値 8.4519e-5 に ~2.4x のマージン)。`ssim_walk_float4_rcp_matches_within_tol` test は K=7\u002FK=11 の両方をループで検証するよう拡張した (advisor レビュー指摘: window サイズで誤差が増大しないかを確認する目的)",{"key":111,"value":112},"本番規模 parity","`splat bench --parity` (407,267 splats、baseline=per_channel vs candidate=float4_rcp) で **PASS** — loss diff=4.191e-9, means_grad max_abs_diff=2.815e-5 (tol 1e-4 内), 他 4 grad も tol 内。tol PASS であり byte 一致ではない (仕様通り)",{"type":69,"text":114},"3. 3-way replay bench screen (submission=per_kernel、ssim label 分離、n=3、方向性の先行確認)",{"type":89,"label":116,"variant":91,"text":117},"chained (production default) は ssim label を分離できない — submission=per_kernel を使う補助計測","production default (`submission=chained`, W2) では ssim\u002Fl1combine\u002Fbackward\u002Fadam が 1 CB に畳まれ `ts_ssim_fwd_grad` は encode コストしか計れない (train_loop.rs コメント)。ssim kernel 単体の gpu_ms を切り出すため、この節だけ `submission=per_kernel` (W2 gate で敗退・default 交代済みの legacy mode、production では使わない) で計測している — p3-radix-ballot §4 の `forward_submission=per_stage` と同型の位置づけ。`ts_ssim_fwd_grad` は forward+backward を合わせて計測する (`forward_and_grad_buf` 呼び出し全体)。",{"type":72,"columns":119,"align":125,"rows":127},[120,121,122,123,124],"arm (`splat bench`, warmup=20, iters=200, repeats=3, submission=per_kernel)","ms\u002Fiter 全体 (median)","sigma","ts_ssim_fwd_grad gpu_ms 合計 (600 calls)","gpu_ms\u002Fcall",[78,126,126,126,126],"right",[128,134,140],[129,130,131,132,133],"per_channel (baseline)","14.415","8.55%","758.917","1.265",[135,136,137,138,139],"float4 (stage1 のみ)","17.558","**36.01% (使用不可、ambient contention 疑い)**","780.806","1.301",[141,142,143,144,145],"float4_rcp (stage1+stage2、採用候補の最終形)","13.821","0.55%","601.064","1.002",{"type":89,"label":147,"variant":148,"text":149},"float4 arm は σ 36% で方向性判定に使えない、float4_rcp arm は ssim label で -20.8%","warning","float4 arm の 3 repeat (17.558 \u002F 14.397 \u002F 28.174 ms\u002Fiter) は ambient load (session 開始時 load1 15.24) との contention が疑われ σ 36% と極端に大きく、per_channel との比較 (全体 ms\u002Fiter も ssim label gpu_ms も) は方向性判定にすら使えない。float4_rcp arm は σ 0.55% とクリーンで、\u003Cstrong>ts_ssim_fwd_grad label の gpu_ms が per_channel 比 -20.8% (758.917→601.064ms\u002F600calls)\u003C\u002Fstrong> と明確に縮小した — stage2 (逆数共有 backward) の効果が単体では確かに存在することを示す。ただしこの label は forward+backward 合算であり、per_channel と float4 (forward のみ変更) の比較が取れていないため、効果の内訳 (forward 由来 vs backward 由来) は本節だけでは分離できない。",{"type":69,"text":151},"4. 12.5k full run GPU gate — 実測 (PSNR guard 抵触で不採用)",{"type":96,"items":153},[154,157,160,163,166],{"key":155,"value":156},"電源 \u002F 機体 \u002F GPU 権","AC 接続 (`pmset -g batt` で series 開始前・各 run 前後・series 終了後まで一貫して `AC Power`)。GPU 権は main から付与済み、他 process なし (`pgrep -fl target\u002Frelease\u002Fsplat` 事前確認で空)。M4 Max",{"key":158,"value":159},"ambient load","series 開始時 load1 15.24 → series 終盤には 1.77〜2.98 まで単調に低下 (直近 reboot 後 Spotlight 再インデックスの収束と推定、p3-radix-ballot と同型の環境)。`LOAD_LIMIT=12 QUIESCE_MAX=12` (120s cap) で起動",{"key":161,"value":162},"driver script","`splat\u002Fscripts\u002Fgate-ab-n3.sh configs\u002F2026-08-30-m5a-12500-off configs\u002F2026-08-30-m5a-12500-on m5a-12500`。off-r1 の初回起動が config path prefix 誤り (`configs\u002F` 抜け) で `error: config IO error` (rc=1) となり、prefix を修正して即座に再起動 (**学習が 1 iteration も走っていない起動失敗**であり gate run のやり直しではない)",{"key":164,"value":165},"binary provenance","全 8 run (元 6 run + r1 再実行 2 run) は単一 binary (sha256 `ee060d188e2d321da26dde0680f6bee1b20bae68d4e87eec9f8ca57dd558b1fe`、series 前後・redo 前後で一致確認)、git rev `324d0523` で不変",{"key":167,"value":168},"flag 実測確認","各 log の `[backend] BackendConfig { … }` 行から抽出 — 6 run 全てで `radix_scatter: SimdBallot` (6\u002F6、M4 flip 後の現行 default)、Tier1 4 flag (`ssim_clear: HostMemset` \u002F `raster_grad_clear: HostMemset` \u002F `backward_uniform: HostBuffer` \u002F `lazy_c3_scratch: false`) が全て default 値 (6\u002F6、milestone 指示通り Tier1 は明示 OFF)、`ssim_walk` は off 側 3\u002F3 が `PerChannel`、on 側 3\u002F3 が `Float4Rcp` — 意図した arm が正しく走っていることの直接証拠",{"type":69,"text":170},"5. r1 pair の汚染疑いと 1 回再実行 — 発見・対応・限界",{"type":96,"items":172},[173,176,179,182,185,188],{"key":174,"value":175},"発見","元の on-r1 (150.566s) は off-r1 (126.217s) の +19.3% という、他 2 pair (r2: -2.24%, r3: -1.61%) と符号が逆転した極端な外れ値だった。ms\u002Fiter の推移を確認すると、on-r1 だけが iter 4000 以降 \u003Cstrong>単調に増加し続ける\u003C\u002Fstrong> (12.5→13.8→14.5→13.3→14.3→15.0→15.2 ms\u002Fiter) — 他 5 run (元の off-r1 含む) は iter 8000 前後で 11.5〜12.4 ms\u002Fiter に定常化しており、この単調増加パターンは on-r1 だけに固有だった。独立 load sampler (10s 間隔) は on-r1 の実行窓で load1 11.22→7.24 と滑らかに低下しており、明白な load spike は捉えていない (10s 粒度のため短時間バーストは見落とし得る、既知の限界)",{"key":177,"value":178},"対応 — 1 回再実行","milestone 規律「汚染疑いなら該当 pair を 1 回再実行」に従い、off-r1\u002Fon-r1 のペアを ambient load が十分低い時点 (load1 2.12〜2.85) で back-to-back に再実行した。**この再実行は `gate-ab-n3.sh` を使わず** (単発ペアのため)、同じ config・同じ binary・同じ手順 (meta 記録、AC 確認) を手動で再現する簡易 driver を使った — **独立 load sampler と quiesce ゲートは付いていない** (限界として明記)。汚染された元の log\u002Fmeta は `runs-logs\u002Fm5a-12500-{off,on}-r1.contaminated.{log,meta}` に保存 (破棄ではなく記録として残す)",{"key":180,"value":181},"再実行の結果","新 off-r1 = 128.529s (12.1〜12.9 ms\u002Fiter で定常、単調増加パターンは消失)、新 on-r1 = 133.186s (12.1〜12.9 ms\u002Fiter で定常)。元の on-r1 に見られた「壊れた」シグネチャ (単調発散) は再実行では再現しなかった — 環境要因 (一時的な contention) だった可能性が高い。ただし新ペアの Δ は **+3.62%** (on が off より遅い) で、r2\u002Fr3 (-2.24%\u002F-1.61%) と符号が逆",{"key":183,"value":184},"限界1: 全体 n=3 の σ 非対称が残る","全 3 pair (redo 後) で off σ=1.264% \u002F on σ=4.314%、非対称比 **3.41×** — p3-tier1-bit-exact が汚染署名とした基準に近い。しかし r1 は既に milestone の「1 回」再実行枠を使い切っており、追加再実行は行っていない。**追加再実行を行わなかった理由**: (a) PSNR guard が既に 3\u002F3 完全分離で不採用を決定づけており、wallclock の再測定では結論を覆せない、(b) 「1 回」という上限は結果が気に入らない場合の再試行 (p-hacking) を防ぐための規律であり、これを破る正当化は本件にはない",{"key":186,"value":187},"限界2: redo pair だけ環境が違う (交絡)","series 全体で ambient load が単調に低下する中 (12.2→1.8)、生存した r2\u002Fr3 pair は load1 ~5〜9 の窓で走った一方、redo された r1 pair は series 中で最も静かな窓 (load1 2.2〜2.9) で走った — pool された mean はこの窓の違いを均していない。また各 pair 内で on は常に off の直後 (2 番目) に走るため、pair 内の熱的ドリフトがあるとすれば系統的に on に不利に働く方向 (ただし本 gate ではこの効果を裏付ける独立証拠はない)",{"key":189,"value":190},"参考 (使わない数値): r1 を除いた n=2","off {127.012, 125.321} \u002F on {124.167, 123.300} だけで計算すると Δ=-1.93%、閾値 max(2σ_off,1%)=1.90% となり**名目上は僅かに閾値を超える**。しかしこれは (a) 既に 1 回再実行した pair をさらに恣意的に除外する行為であり、(b) PSNR guard は r2\u002Fr3 単独でも on\u003Coff (-0.034 dB \u002F -0.108 dB) で guard 相当の傾向を示しており、この部分集合を採用の根拠にすることは正当化できない。**参考値として記録するが、判定には使わない**",{"type":69,"text":192},"6. 12.5k full run gate — 実測表 (使用データ: redo 後の r1 + r2 + r3)",{"type":72,"columns":194,"align":202,"rows":203},[195,196,197,198,199,200,201],"実行順","arm","config","train elapsed (s)","PSNR (dB)","final splats","備考",[78,78,78,126,126,126,78],[204,212,220,226,232,238,244,251,256],[205,206,207,208,209,210,211],"1 (redo)","off (A)","m5a-12500-off-r1","128.529","36.256","407,399","元 run は汚染疑いで破棄 (§5)、load1 2.16→2.85 の窓で再実行",[213,214,215,216,217,218,219],"2 (redo)","on (B)","m5a-12500-on-r1","133.186","36.156","404,901","元 run は汚染疑いで破棄 (§5)、load1 2.85→2.48 の窓で再実行",[221,206,49,222,223,224,225],"3","127.012","36.204","408,172","load1 窓 5.11→3.78",[227,214,50,228,229,230,231],"4","124.167","36.170","407,657","load1 窓 3.23→2.49",[233,206,51,234,235,236,237],"5","125.321","36.180","405,121","load1 窓 2.51→2.22",[239,214,52,240,241,242,243],"6","123.300","36.072","408,826","load1 窓 2.16→1.77、on-r3 は絶対 guard 帯下限 36.102 を割り込む",[245,246,247,248,249,250,247],"**mean**","**off**","—","**126.954** (σ 1.264%)","**36.2133**","406,897",[245,252,247,253,254,255,247],"**on**","**126.884** (σ 4.314%)","**36.1327**","407,128",[257,247,247,258,259,260,247],"**Δ**","**-0.055%** (null)","**-0.0807 dB**","+0.06%",{"type":89,"label":262,"variant":148,"text":263},"判定基準: wallclock も PSNR guard も不採用を示す — PSNR が決定的","**wallclock**: Δ -0.055% は有意閾値 max(2σ_off,1%)=2.528% に遠く届かない **null** (効果なしとも効果ありとも言えない、σ_on が大きいことによる検出力不足)。**PSNR guard (決定的)**: on mean 36.1327 dB は off mean 36.2133 dB − 0.05 dB = 36.1633 dB を **下回る** (Δ -0.0807 dB)。\u003Cstrong>3 pair 全てで on\u003Coff の完全分離、方向が一貫\u003C\u002Fstrong> (p3-tier1-bit-exact が「怪しい」とした系統的分離のパターンと同型、p3-radix-ballot が「systematic な分離は見られない」ことを健全性の証拠にしたのとは対照的)。final splats は off 406,897 \u002F on 407,128 で ±0.3% 未満の差 (mixed 方向: off{407399,408172,405121} vs on{404901,407657,408826}) であり、\u003Cstrong>splat 数の違いによる PSNR 差ではない\u003C\u002Fstrong>。stage2 が非 bit-exact な変更であることを踏まえると、この系統的な質低下は「丸めが変わる変更が学習の収束経路をわずかに悪化させた」という想定内の失敗モードであり、異常というより stage2 採用に伴う典型的なリスクが顕在化したものと解釈する。",{"type":69,"text":265},"7. なぜ wallclock 効果が小さかったのか — budget share からの予測との整合",{"type":89,"label":267,"variant":91,"text":268},"ssim の budget share (11.80%) × isolated-label 効果 (-20.8%) ≈ 予測 wallclock -2.5% — この gate の解像度限界とほぼ同水準","`p3-kernel-share-post-s3` (M1, post-S3 share) は ssim の share を **11.80%** と報告している。§3 の isolated-label screen (submission=per_kernel、float4_rcp の ts_ssim_fwd_grad が per_channel 比 -20.8%) をこの share に単純に適用すると、予測される wallclock 寄与は 11.80% × 20.8% ≈ **-2.45%** — 本 gate の有意閾値 (2.528%) と\u003Cstrong>ほぼ同水準\u003C\u002Fstrong>である。milestone 本文が挙げた期待 delta (-4〜6%) は、この budget share から見ると\u003Cstrong>約 2 倍楽観的\u003C\u002Fstrong>だったことになる。加えて chained (production) 経路では ssim\u002Fl1combine\u002Fbackward が 1 CB に統合され encoder 間 hazard 直列化のオーバーヘッドが乗るため、isolated-label (per_kernel mode) の効果がそのまま production の wallclock に転写されるとは限らない。\u003Cstrong>今後 M5a 系を revisit するなら n=5 (M2 Tier1 の再 gate と同様の理由 — 効果量が gate の検出力ぎりぎりの領域にあるため) を推奨する\u003C\u002Fstrong>。",{"type":69,"text":270},"8. 結論 — 不採用、default flip なし",{"type":96,"items":272},[273,276,279,282],{"key":274,"value":275},"結論","**不採用**。`splat_train_v1::config::SsimWalkKind::default()` (`#[default]` 属性) と `BackendConfig::default()` の両方を `PerChannel` のまま**変更していない**。config.rs \u002F ssim.rs の `Float4Rcp` doc comment の verdict を「未検証 (GPU gate 前)」→「不採用 (12.5k gate 実施済み、PSNR guard 抵触)」に更新、`Float4` の verdict も「byte-exact 確認済みだが単独では 12.5k gate 未実施、PSNR risk ゼロの再挑戦候補」に更新 (3 点セット規約)",{"key":277,"value":278},"test \u002F build 確認","`ssim_walk_float4_rcp_matches_within_tol` の `REL_TOL` を実測 (K=7 8.4519e-5, K=11 6.3679e-5) に基づき暫定 1e-4 → 確定 2e-4 に更新、test を K=7\u002FK=11 両方をループで検証するよう拡張。`cargo build --release` (workspace) \u002F `cargo test --workspace --release` 全 pass (splat-metal 88 passed + 2 ignored、splat-train-v1 70、他 crate 0 failure)",{"key":280,"value":281},"config 上の Tier1 明示 OFF","milestone 指示に従い、gate 用 6 config から M2 Tier1 の 4 flag (`ssim_clear` \u002F `raster_grad_clear` \u002F `backward_uniform` \u002F `lazy_c3_scratch`) を削除し default 値 (全て OFF\u002FHostMemset\u002FHostBuffer\u002Ffalse) に落とした — Tier1 が棄却保留中のため。他の explicit `[backend]` field は全て `BackendConfig::default()` と一致することを確認済み (radix_scatter は省略により現行 default `SimdBallot` を継承)。`splat check` で 6 config 全て構文検証 PASS",{"key":283,"value":284},"次の一手","`Float4` (stage1 単独) は PSNR risk ゼロなので、次回 GPU 権があるときに単独で 12.5k gate してみる価値がある (本 finding では未実施)。stage2 (float4_rcp) は budget share の物理的上限 (~-2.5%) を踏まえると、SSIM 単体の最適化よりも share の大きい backward_raster (33.86%) や adam (12.68%) 側の施策の方が期待値が高い (`p3-kernel-share-post-s3` 参照)。M5a を再挑戦するなら n=5 + Float4 単独 gate を先に、が推奨順序",[286,295,302,309],{"id":49,"title":49,"subtitle":287,"date":9,"workspace":288,"tags":289,"verdict":290,"psnr":291,"psnr_unit":-1,"wallclock":292,"splats":293,"summary_url":294,"detail_path":294},"M5a SSIM float4 gate arm A (baseline, per_channel): Lego 12.5k full run repeat 2","splat",[5,17,24,27],"partial",36.203880310058594,"2m 7s",408172,"\u002Fruns\u002Fm5a-12500-off-r2\u002F",{"id":51,"title":51,"subtitle":296,"date":9,"workspace":288,"tags":297,"verdict":290,"psnr":298,"psnr_unit":-1,"wallclock":299,"splats":300,"summary_url":301,"detail_path":301},"M5a SSIM float4 gate arm A (baseline, per_channel): Lego 12.5k full run repeat 3",[5,17,24,27],36.17972946166992,"2m 5s",405121,"\u002Fruns\u002Fm5a-12500-off-r3\u002F",{"id":50,"title":50,"subtitle":303,"date":9,"workspace":288,"tags":304,"verdict":290,"psnr":305,"psnr_unit":-1,"wallclock":306,"splats":307,"summary_url":308,"detail_path":308},"M5a SSIM float4 gate arm B (float4_rcp 候補): Lego 12.5k full run repeat 2",[5,17,24,27],36.17045593261719,"2m 4s",407657,"\u002Fruns\u002Fm5a-12500-on-r2\u002F",{"id":52,"title":52,"subtitle":310,"date":9,"workspace":288,"tags":311,"verdict":290,"psnr":312,"psnr_unit":-1,"wallclock":313,"splats":314,"summary_url":315,"detail_path":315},"M5a SSIM float4 gate arm B (float4_rcp 候補): Lego 12.5k full run repeat 3",[5,17,24,27],36.07235336303711,"2m 3s",408826,"\u002Fruns\u002Fm5a-12500-on-r3\u002F",[317,344,370,412],{"id":55,"title":318,"date":9,"status":10,"polarity":319,"category":320,"axes":321,"tags":322,"task_code":334,"related_runs":335,"delta_psnr":338,"delta_wallclock":339,"rank":340,"verdict":341,"impact_summary":342,"detail_path":343},"M1\u002Fv2 — post-S2\u002FS3 per-kernel share 再計測: backward_raster 33.9%→40.1% (M4\u002FA7 後)、radix 26.4%→12.0% (M4 の絶対削減を反映) → M3 GO 判定は不変。C2 残差 4.54s は driver latency \u002F CB gap に分解不能 (計装欠如、file:line 提案のみ)","mixed","measurement",[14,15],[323,324,18,325,326,327,328,329,330,27,331,332,333],"m1","m7","kernel-share","per-kernel-gpu-ms","backward-raster","m3-go-gate","residual-bubble","gputime","post-s2-s3","v2","post-m4-a7","2026-09-seminar05-milestones M1 (C1 per-kernel 再計測 + C2 残差 bubble 帰属)",[336,337],"c1-12500-off-prof","c1v2-12500-off-prof","n=1: 36.087 dB (self-eval val mean, 100 views)。p2-s3 の off\u002Fdepth2 n=3 mean (36.185 \u002F 36.202 dB) の guard 内。本 run は submission=per_kernel\u002Fforward_submission=per_stage という別 regime なので PSNR の直接比較は非対象 (kernel は bit-exact のため理論上は同水準になるはず、というだけの参考値)","train elapsed 205.78s (n=1)。**production baseline (depth2 default, 151.70s) や S3 off baseline (185.21s) と直接比較しない** — per_kernel\u002Fper_stage submission は CB 数が既定の 15〜27\u002Fiter → 15 CB\u002Fiter 超 (最終 15,001 cb from iter1 window 相当) に増え、busy% が 68.9% まで下がる**測定専用 regime**であり、本 run の wallclock 自体に意味はない。意味があるのは kernel 単体の gpu_ms とその share のみ","high","m3-go-backward-raster-33.9pct \u002F c2-instrumentation-gap-proposal-only","M3 (per-splat backward, brush PR #401 型) の GO\u002FNO-GO 閾値「backward_raster share ≥ 25%」を判定した。post-S2\u002FS3 kernel (hierarchical radix scan \u002F resident binning) を submission=per_kernel\u002Fforward_submission=per_stage\u002Fpipelining=off (per-kernel breakdown が測れる唯一の regime) で 1 run 実測した結果 \u003Cstrong>backward_raster (+project_back 統合) share 33.86%\u003C\u002Fstrong> で \u003Cstrong>閾値を大きく超過 → M3 は GO\u003C\u002Fstrong>。\u003Cstrong>share × 0.25 (brush の -25% 主張をそのまま適用したナイーブな期待値) = 8.47%\u003C\u002Fstrong>。ただしこれは本 run の GPU busy (68.9%、production の 91.3% とは別 regime) に対する share であり、production (depth2 default) の wallclock に対する期待 Δ は \u003Cstrong>33.86% × 91.3% × 0.25 ≈ 7.7%\u003C\u002Fstrong> とみるほうが妥当 (kernel 自体の gpu_ms は submission wrapping にほぼ不変という counter-session の事後検証はあるが、n=1 点推定であることと合わせて上限値として扱う)。\u003Cstrong>pre-S2\u002FS3 (counter-session) との比較では share 構成はほぼ不変\u003C\u002Fstrong> (backward_raster 33.6%→33.86%、radix 26.3%→26.40%、rasterize 11.9%→11.64%、adam 13.8%→12.68%、ssim 10.0%→10.95%) — S2 のhierarchical scan は「radix の CB\u002Fwait 数」を畳んだだけで kernel 自体の GPU 時間配分は変えていない、という roadmap の当初の想定を実測で裏づけた。C2 は M0 の並行会計訂正 (encode(B) 4.66→3.41s、残差 3.28→4.54s、nested label 二重計上の是正) を踏まえ、\u003Cstrong>残差 4.54s (depth2 sync-tax の 32%) を driver 投入 latency と CB 間 gap に分解しようとしたが、既存計装 (`gputime.rs`) は `kernelStartTime`\u002F`kernelEndTime` を objc bind しているのみで収集しておらず、per-CB の生 interval 列も外部に露出していない\u003C\u002Fstrong> ため\u003Cstrong>分解不能\u003C\u002Fstrong>と判明した。file:line 付きの追加案を §C2 に残す (実装はしていない、GPU run はこれ以上起動していない)。","\u002Ffindings\u002Fp3-kernel-share-post-s3\u002F",{"id":56,"title":345,"date":9,"status":10,"polarity":346,"category":11,"axes":347,"tags":348,"task_code":357,"related_runs":358,"delta_psnr":365,"delta_wallclock":366,"rank":340,"verdict":367,"impact_summary":368,"detail_path":369},"M4\u002FA5 radix_scatter simd_ballot 2段化 — 12.5k gate 採用、-14.9%、default flip","positive",[14,15],[349,350,351,352,353,354,27,24,355,356],"m4","a5","radix-scatter","simd-ballot","tile-bin","sort-parity","adopted","default-flip","2026-09-seminar05-milestones — M4 (A5 radix scatter simd_ballot)",[359,360,361,362,363,364],"m4-12500-off-r1","m4-12500-on-r1","m4-12500-off-r2","m4-12500-on-r2","m4-12500-off-r3","m4-12500-on-r3","12.5k 同一 session 交互 A\u002FB n=3: on **36.143 dB** (36.15227 \u002F 36.05730 \u002F 36.21933) vs off **36.121 dB** (36.19775 \u002F 36.01755 \u002F 36.14695) = **+0.022 dB**。task 指定 guard (on mean ≥ off mean − 0.05 dB) に **pass** (+0.022 > -0.05)。config header の絶対 guard (36.202 ± 0.1 dB、帯 [36.102, 36.302]) にも on\u002Foff とも **pass**。final splats は on 408,084 (408,408 \u002F 409,074 \u002F 406,770) \u002F off 409,363 (408,928 \u002F 411,049 \u002F 408,113) で on が -0.31% 少ない (既存 atomic 非決定性 chaos の範囲内、方向は一貫していない)。sort parity は `tile_offsets` で byte-exact だが、同じ parity report は `sorted_idx` の 0.217% (2105\u002F969838) に既知の tie-order 非決定性を記録しており、これが rasterize 順序ひいては atomic 加算順序に伝播するため end-to-end の PSNR は parity だけでは pin されない — したがって観測された小さい非方向性の PSNR 散らばりは想定内であり、M2 Tier1 gate (p3-tier1-bit-exact) が観測したような系統的分離は見られない","12.5k full run 同一 session 交互 A\u002FB n=3: **off 149.883s (σ 0.591%) → on 127.530s (σ 0.794%) = -14.914%**。3 pair 個別 Δ は -14.72% (r1) \u002F -15.15% (r2) \u002F -14.87% (r3) とレンジ 0.43 pt の高い一貫性。有意閾値 max(2σ_off,1%) = 1.182%、実測 Δ は**その 12.6 倍**。σ 非対称比 1.34× (off\u003Con) は汚染の典型署名とされる 3× を大きく下回り、on 側が GPU 律速でむしろ host jitter に鈍いという機構と整合する。replay bench (p3-radix-ballot 旧版、production default stack、n=3、GPU 専有未確認) の -12.9%〜-13.3% という directional 参考値とも整合し (12.5k full run のほうがやや大きい -14.9%、407k 固定 checkpoint 断面と 12.5k 平均 pair 数分布の違いで説明可能)、forward_submission=per_stage での radix 単独 gpu_ms -63.7% とも方向・大きさの両方で整合する","adopted-default-flip-radix-scatter-simd-ballot","tasklist A5 (radix は帯域 36% の latency 律速と算術証明済み) の実装検証。既存 O(lid) 逐次 threadgroup memory scan を simdgroup ballot 2 段化に置換し、BackendConfig `radix_scatter` の enum variant `simd_ballot` として追加、**2026-08-30 M4 GPU gate で default に採用**。sort parity は unit test 3 本 (境界サイズ 0\u002F1\u002F255\u002F256\u002F257\u002F1234\u002F100000、ties 多発 n=5000、3 種の radix_scan 実装すべて) と本番規模 (407,267 splats) `splat bench --parity` の両方で bit exact PASS。**12.5k Lego 同一 session 交互 A\u002FB n=3 (off-r1→on-r1→off-r2→on-r2→off-r3→on-r3、独立 10s load sampler で汚染監視、binary sha256 は series 前後で不変) で train elapsed 149.883 → 127.530s = -14.9%**、3 pair 個別 (-14.72% \u002F -15.15% \u002F -14.87%) が高い一貫性を示し、有意閾値 max(2σ_off,1%)=1.18% の **12.6 倍**という大差で通過。σ は off 0.59% \u002F on 0.79% (非対称比 1.34×、汚染の署名である 3× を大きく下回る)。**PSNR guard も pass** (on mean 36.143 dB ≥ off mean 36.121 dB − 0.05 dB、Δ +0.022 dB、両 arm とも config header の絶対 guard 36.202±0.1 dB にも収まる)。final splats は on 408,084 \u002F off 409,363 で -0.31% (既存 atomic 非決定性 chaos の範囲内)。session 開始時の ambient load 18.86〜22.8 (Spotlight `mediaanalysisd`\u002F`mds_stores` 再インデックス、reboot 後) という p2-s3 が破棄基準にした汚染クラスの中で実施したが、同一 session 交互設計と 3 pair の高い一貫性 (レンジ 0.43 pt) がこれを吸収したことを §0 で示す。**結論: 採用。`RadixScatterKind::default()` を `SimdBallot` に flip、`cargo test --workspace --release` 全 pass**。","\u002Ffindings\u002Fp3-radix-ballot\u002F",{"id":57,"title":371,"date":9,"status":10,"polarity":12,"category":11,"axes":372,"tags":373,"task_code":386,"related_runs":387,"delta_psnr":406,"delta_wallclock":407,"rank":408,"verdict":409,"impact_summary":410,"detail_path":411},"M2 Tier1 (A1-A4 bit-exact) 12.5k gate v1+v2 — 棄却維持 (v1: Δ-5.0%だが2σ未達+PSNR guard抵触 \u002F v2 n=5 radix ballot上: PSNR分離は反証、wallclockは効果量≤1%で判定不能)",[14,15],[374,375,376,377,378,379,24,27,25,380,381,382,383,384,385],"m2","tier1","ssim-clear","raster-grad-clear","backward-uniform","lazy-c3-scratch","atomic-nondeterminism","psnr-guard","v2-regate","n5","radix-ballot-baseline","contamination-retry","2026-09 第 5 回ゼミ milestones — M2 Tier1 (A1-A4)",[388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405],"t1-12500-off-r1","t1-12500-on-r1","t1-12500-off-r2","t1-12500-on-r2","t1-12500-off-r3","t1-12500-on-r3","t1v2-12500-off-r1 (CONTAMINATED, discarded)","t1v2-12500-on-r1 (CONTAMINATED, discarded)","t1v2-12500-off-r2","t1v2-12500-on-r2","t1v2-12500-off-r3","t1v2-12500-on-r3","t1v2-12500-off-r4","t1v2-12500-on-r4","t1v2-12500-off-r5","t1v2-12500-on-r5","t1v2-12500-off-r6 (retry replacing r1)","t1v2-12500-on-r6 (retry replacing r1)","v1 (n=3): on **36.140 dB** (36.165\u002F36.097\u002F36.157) vs off **36.205 dB** (36.201\u002F36.195\u002F36.219) = **-0.065 dB**、n=3 全 pair で on \u003C off の完全分離、task 指定 guard (on mean ≥ off mean - 0.05 dB) に **抵触**。config header の絶対 guard (36.202 ± 0.1 dB) では両 arm とも帯内で pass — 2 guard の定義差は本文 §1 参照。final splats は on 407,775 \u002F off 408,721 (-0.23%)。\u003Cbr>\u003Cstrong>v2 (n=5、r1→r6 置換後)\u003C\u002Fstrong>: on **36.1982 dB** (36.218\u002F36.159\u002F36.196\u002F36.221\u002F36.197) vs off **36.1704 dB** (36.112\u002F36.220\u002F36.102\u002F36.237\u002F36.181) = **+0.0278 dB**、guard に **pass**。5 pair の符号は on&gt;off (r1,r3,r5) \u002F on&lt;off (r2,r4) の**混在**で系統性なし — off 側の散らばり (36.102-36.237) が on 側 (36.159-36.221) より大きく、v1 の系統分離とは対照的。v2 の結果は「PSNR 散らばりは atomic 非決定性の床であり flag 由来ではない」という読みを支持し、v1 の「静かな壊れ」仮説を反証する","v1 (n=3) mean (train elapsed, internal timer): **155.40 → 147.64s = -4.99%**、σ off 2.56% \u002F on 0.55% (比 4.66×)、有意閾値 max(2σ_off,1%) = 5.11%、実測 Δ は**閾値の 97.7%、0.12 pt 差で未達**。\u003Cbr>\u003Cstrong>v2 (n=5、新 baseline 127.4s 上、r1→r6 置換後)\u003C\u002Fstrong>: off **127.386s** (σ 0.527%) → on **125.972s** (σ 0.956%) = **-1.11%**、有意閾値 max(2σ_off,1%) = 1.054%、実測 Δ は**閾値の 105%、0.06 pt 差で形式上通過**。ただし感度分析 3 通り (汚染 r1 込み生データ Δ-0.30%\u002F不通過、r1→r6 置換後 n=5 Δ-1.11%\u002F通過、両試行を n=6 として残す Δ-0.15%\u002F不通過) のうち\u003Cstrong>通過するのは 1 通りのみ\u003C\u002Fstrong>で判定が 1 点の去就に依存する。σ 非対称は v1 が off 側 4.66× だったのに対し v2 は on 側 (n=5 で 1.81×、r1 の両試行を含む n=6 で見ると **5.40×**) と\u003Cstrong>逆転しており、両 gate とも分散構造が clean ではない\u003C\u002Fstrong>。v1 (-7.76s) と v2 (-1.41s) の絶対削減量が 5.5× 食い違う点は、A1-A4 が host 側 memset\u002Falloc 除去 (per-iter 削減量はほぼ一定のはず) である以上、\u003Cstrong>v1 の -4.99% は off arm の汚染 (σ2.56%) で膨らんでいた可能性が高く、真の効果量は ~1% 前後 = 本 harness の n=5 分解能未満\u003C\u002Fstrong>という解釈と整合する","medium","rejected-v2-wallclock-inconclusive-psnr-guard-resolved","M2 Tier1 の 4 flag (A1 SSIM memset 除去 \u002F A2 work_grad blit 化 \u002F A3 backward uniform set_bytes 化 \u002F A4 lazy C3 scratch) を全 ON\u002F全 OFF の 2 arm にまとめ gate した。\u003Cstrong>v1 (n=3, 旧 baseline)\u003C\u002Fstrong>: train elapsed (internal timer) off 155.40s (σ 2.56%) → on 147.64s (σ 0.55%) = -4.99%、3 pair 全てで on が速い一貫した方向を示したが有意閾値 max(2σ\u003Csub>off\u003C\u002Fsub>, 1%) = 5.11% を 0.12 pt 差で下回り不通過。同時に PSNR は on 側で完全分離 (mean Δ -0.065 dB) し task 指定 guard に抵触した。\u003Cstrong>v2 (n=5, 2026-08-30 M4 radix ballot 採用後の新 baseline 127.4s 上で再 gate)\u003C\u002Fstrong>: PSNR は mean **+0.028 dB**、5 pair 中 on&gt;off 3 \u002F on&lt;off 2 の符号混在で \u003Cstrong>v1 の系統分離は再現せず、「A1\u002FA2 chained path の静かな壊れ」仮説は反証\u003C\u002Fstrong>された。wallclock は r1 pair の load 汚染 (on-r1 走行中に load1 が 9.09 まで spike) を検知し 1 回だけ再実行 (r6 で置換、元 log は `*-CONTAMINATED-*` として保存) した後の値で Δ **-1.11%**、有意閾値 1.05% を 0.06 pt 差で形式上通過する。しかし①汚染 r1 を生のまま使うと Δ-0.30% (不通過)、②両方の r1 試行を n=6 として残すと Δ-0.15% (不通過) と\u003Cstrong>1 点の去就で判定が反転する脆い pass\u003C\u002Fstrong>であり、さらに③置換先の r6 自身が事前登録した再実行条件 (自 arm 他値から3σ超) を独立 load 証拠の裏付けなしに 10.3σ で踏む (条件だけでは停止しない除外連鎖になる設計上の欠陥が判明)。advisor レビューの指摘により、0.06pt の脆い pass を根拠に default flip して M7 最終スタック・卒論数値の土台にするのは不適切と判断し、\u003Cstrong>棄却を維持\u003C\u002Fstrong>した (根拠は v1 の「PSNR guard 抵触」から v2 の「wallclock 効果量 ≤1% で本 harness (n=5) の分解能未満、判定不能」に変わった)。両 gate とも `cargo test --workspace` (A1 sentinel probe \u002F A2+A3 4 組合せ parity \u002F A4 self-heal 含む) は全 pass — 実装レベルの correctness bug は一貫して否定的。\u003Cstrong>結論: 棄却維持、4 flag の default は変更しない、config.rs は一切触らない\u003C\u002Fstrong>。","\u002Ffindings\u002Fp3-tier1-bit-exact\u002F",{"id":54,"title":413,"date":414,"status":10,"polarity":346,"category":11,"axes":415,"tags":416,"task_code":426,"related_runs":427,"delta_psnr":438,"delta_wallclock":439,"rank":340,"verdict":440,"impact_summary":441,"detail_path":442},"S3 iteration pipelining depth 2 — 12.5k -18.1% \u002F busy 78 → 91% (default flip)","2026-08-17",[14,15],[417,418,419,420,421,422,423,424,27,425],"1x-roadmap-v2","s3","iteration-pipelining","command-buffer","gpu-busy","sync-tax","double-buffering","scratch-generation","unified-memory","2026-08 1× 工程表 v2 — AC 復帰後 計測 queue #2' (S3 gate)",[428,429,430,431,432,433,434,435,436,437],"s3-smoke-1000-off","s3-smoke-1000-depth2","s3-12500-off-prof","s3-12500-depth2-prof","s3-12500-off-r1","s3-12500-off-r2","s3-12500-off-r3","s3-12500-depth2-r1","s3-12500-depth2-r2","s3-12500-depth2-r3","12.5k **同一 session 交互 A\u002FB** n=3 mean: depth2 **36.202 dB** (36.195 \u002F 36.179 \u002F 36.231) vs off **36.185 dB** (36.178 \u002F 36.192 \u002F 36.186) = **+0.016 dB** (guard 36.167 ± 0.1 の内側、n=3 mean 判定 — n=1 判定なし)。final splats は depth2 406,439 \u002F off 408,874 で **depth2 のほうが 0.6% 少ない** (前段の profile pair では逆に +0.6% で、方向が一致しない = 既存 atomic 非決定性の chaos 増幅の範囲)","12.5k full run **同一 session 交互 A\u002FB n=3 mean: 185.21 → 151.70s = -18.1%** (train elapsed)。process wallclock では **188.33 → 154.00s = -18.2%**。σ は off 3.33% \u002F depth2 1.18% なので有意閾値 max(2σ,1%) = 6.7%、実測 Δ は**その 2.7 倍**。同一 session の off arm は S2 gate 当日の S2 arm (train 184.61s \u002F process 187.65s) を **+0.3% で再現**しており、session の健全性が確認できている。参考: profile=true の 1 対 1 比較では 180.49 → 162.72s = -9.85% (計装自体が host 側 critical path に乗るため S3 の効果を過小評価する)","s3-adopted-default-flip-pipelining-depth2","1× 工程表 v2 が「S2 後の単独本命」に指定していた S3 を gate し、採用した。S2 までの施策が \u003Cstrong>CB の数\u003C\u002Fstrong>を減らすものだったのに対し、S3 は \u003Cstrong>CB の並び方\u003C\u002Fstrong>を変える — iteration N の loss\u002Fbackward CB (B\u003Csub>N\u003C\u002Fsub>) を commit したら wait せずに iteration N+1 の forward CB (F\u003Csub>N+1\u003C\u002Fsub>) を組んで commit し、\u003Ccode>wait(B\u003Csub>N\u003C\u002Fsub>)\u003C\u002Fcode> の後の host readback \u002F \u003Ccode>accumulate\u003C\u002Fcode> を F\u003Csub>N+1\u003C\u002Fsub> の GPU 実行の影に置く。\u003Cstrong>12.5k 同一 session 交互 A\u002FB n=3 で 185.21 → 151.70s = -18.1%\u003C\u002Fstrong> (閾値 max(2σ,1%) = 6.7% の 2.7 倍)。\u003Cstrong>GPU busy 77.5 → 91.3% \u002F sync-tax 3.244 → 1.136 ms\u002Fiter (-65%)\u003C\u002Fstrong> で counter session が置いた「busy 100% = 理論上限」への距離は 22.5 pt → 8.7 pt に縮んだ。\u003Cstrong>1k smoke では busy 65.8 → 72.0% にしか上がらず判定不能だった\u003C\u002Fstrong> — smoke の splat 数 6.8k では forward の GPU 影 (1.06 ms\u002Fiter) が image size 固定の host 仕事 (~1.7 ms\u002Fiter) を隠しきれないためで、これは \u003Cstrong>「pipelining の gate は smoke では代替できない」という harness 上の教訓\u003C\u002Fstrong>として残す。残 bubble の内訳も確定した: \u003Cstrong>refine tick の drain 6.04s (43%) &gt; encode(B) 4.66s (33%) &gt; 残差 3.28s (23%)\u003C\u002Fstrong> — 次の一手が roadmap の「即効ペア (refine capacity スコープバグ修正)」であることが実測で決まった。msplat 同日等価 gap \u003Cstrong>1.105× → 0.907×\u003C\u002Fstrong>、Phase 0 からの累計 766.07 → 154.0s = \u003Cstrong>-79.9%\u003C\u002Fstrong> (全て数学的同値の施策のみ)。","\u002Ffindings\u002Fp2-s3-iteration-pipelining\u002F",1790227327661]