松田研究室
FindingID: p2-gap-sweep-baseline
Status: stable / task 2026-08 msplat gap sweep Phase 0 + 1a
← Findings Index
P2 gap sweep · Phase 0/1a · baseline + STP gate

P2 gap sweep Phase 0/1a — binning 55% 実測 + C0 発見 + StopThePop -7.45%

規約 v2 適用後 main の Lego 12.5k baseline (766.07s / 36.216 dB / 407k splats) を profile=true で実測。<strong>emit_pairs 38.2% + radix_sort 16.6% = tile binning 経路が wallclock の 55%</strong> と確定し、Phase 2 trigger 想定 (SSIM 15% / Adam 15% / backward 25%) は全て不発 (SSIM 5.2% / Adam+SH 5% / backward 21.5%)。設計調査で <strong>55% の主犯は kernel でなく毎 iter ~1.25GB の pair buffer alloc + Vec 三重往復 (C0)</strong> と判明 — capacity 式 `num_splats×256` が実需要 (~1.3M pairs) の ~80 倍を確保している。StopThePop (feat.F cherry-pick) は 12.5k paired A/B で <strong>-7.45% wallclock / PSNR -0.023 dB (guard 通過)</strong>、効果は大 splat regime に集中し区間 -32%→-3〜5% に単調減衰。5k n=2 A/B は refine 非決定性 (splats 軌道 ±1.5%) で検出力不足だった。

positiverank: highbinning-55-percent-c0-discovered-stp-marginal-go第 1 軸gap-sweepphase-0phase-1aprofilingper-kernel-breakdownstop-the-popbinningc0-resident-arenalego
Δ PSNR
STP 12.5k: 36.216 → 36.193 dB = -0.023 dB (guard -0.05 内で通過)
Δ Wallclock
STP 12.5k: 766.07 → 708.96s = **-7.45%** (emit -10.5% / radix -8% / backward -6%)
Impact
Phase 2 の主戦場が確定: strategy doc の trigger 3 候補 (separable SSIM / last_contributor / SH-Adam fusion) は全て閾値不発、代わりに binning 経路 55% の主犯 = per-iter ~1.25GB alloc + Vec 三重往復 (C0) が最大 lever。C0 (persistent buffer arena、bit-exact、3-4 日) の期待は wallclock -30〜39% (766→~470s) で単独 gap ≤2.0× 到達圏。C1 (radix 定数桁 pass skip 16→11、bit-exact、0.5-1 日) が +4-5%。StopThePop は -7.45% で adoption gate (-8%) に僅差未達、default 維持のまま C0 後再判定。5 連敗の教訓「profiling が指す順」が機能した初の事例 — 事前決め打ちなら SSIM (5.2%) に突撃していた。
01

本文

規約 v2 適用後 main の初 baseline で per-kernel breakdown を確定し、tile binning 経路 (emit_pairs + radix_sort) が wallclock の 55% を占めると実測。設計調査により主犯は sort アルゴリズムではなく 毎 iter ~1.25GB の pair buffer 確保と Vec 三重往復 (capacity = num_splats×256 が実需要の ~80 倍) と判明。StopThePop は 12.5k paired A/B で -7.45% / PSNR guard 通過。

1. Baseline per-kernel breakdown (Lego 12.5k, wallclock 766.07s 分母)

kerneltotalavg/call実占有率備考
**ts_fwd_emit_pairs**293.3s23.47ms**38.2%**主犯は host alloc/copy (C0)、kernel 本体でない
**ts_backward_raster**164.5s13.16ms21.5%2-BWD trigger (25%) 未達
**ts_fwd_radix_sort**127.4s10.19ms16.6%GPU compute 85% (#5.40 実測) = sort 本体律速
ts_fwd_rasterize43.3s3.47ms5.7%
ts_ssim 系39.8s3.18ms5.2%2-SSIM trigger (15%) 大幅未達 — separable 化は発火せず
ts_adam + ts_project_back47.1s3.77ms6.1%2-ADAM trigger (15%) 未達 — SH-Adam fusion 発火せず
その他 (project/extract/refine/loss)~51s~6.7%
C0 発見 — 55% の主犯は kernel ではない

`ts_fwd_emit_pairs` は host wallclock 計測で、その内訳は (1) 毎 iter keys 833MB + idx 417MB ≒ 1.25GB の新規 buffer 確保 (capacity = num_splats×256 = 104M pairs、実 pair 数 ~1.3M の ~80 倍)、(2) keys/idx の Vec readback → radix_sort で再 upload → sorted 再 readback → extract_offsets で三たび upload。傍証: emit は 84k splats 時代 ~5ms → 407k で 23.5ms と splat 数 (=capacity) にほぼ線形、pair 数 (ほぼ横ばい) と不整合。修正 (C0: persistent buffer arena + Buffer 直結) は演算・順序を一切変えない bit-exact で、期待削減 ~24ms/iter = wallclock -30〜39%。past negatives (F.1 emit SIMD / F.3 GPU prefix scan / #5.40 8-bit radix) とはすべて直交。

2. StopThePop 12.5k paired A/B (Phase 1a gate)

metricbaseline (original)STPΔ
wallclock (training)766.07s708.96s**-7.45%**
PSNR (100 views)36.216 dB36.193 dB-0.023 dB (guard -0.05 内)
final splats407,267407,575+0.08% (軌道等価)
emit_pairs293.3s262.5s-10.5%
radix_sort127.4s117.1s-8.1%
backward_raster164.5s154.0s-6.4%
verdict: marginal GO — default は original 維持、C0 後に再判定

adoption gate (-8%) に 0.55pp 未達 (thermal handicap 下 n=1)。品質 guard は通過。効果は大 splat regime に集中: 区間 delta が iter 1000 の -32% から後期定常 -3〜5% へ単調減衰 (STP の tile test は mean を含む tile を必ず pass するため小 splat では棄却率 ≈0)。branch 時代の -10.2% (`6e3bc57`) は「1k 大 splat smoke」の数字で矛盾しない。5k n=2 A/B (187.6/184.1 vs 180.8/191.4s) は refine 非決定性による splats 軌道差 ±1.5% + noise floor ±3% で検出力不足と切り分け済 (軌道積分と wallclock が相関、最遅 run は最重軌道)。C0 実装後は emit の alloc 成分が消えて STP の相対効果が変わるため、default 判定は C0 landing 後の再 bench で行う。

3. Phase 2 実装順の決定 (trigger 判定)

候補trigger実測判定
**C0 resident binning arena** (新規)—binning 55%、alloc 律速**GO — 最優先** (bit-exact、3-4 日、期待 -30〜39%)
**C1 radix 定数桁 pass skip** (新規)—radix 16.6%、tile≤2500 で桁 44-63 恒等**GO — C0 の stretch** (bit-exact、0.5-1 日、期待 +4-5%)
2-SSIM separableSSIM ≥15%5.2%**不発** — future work 送り
2-ADAM SH fusionAdam+SH ≥15%~6.1%**不発** — future work 送り
2-BWD last_contributorbackward ≥25%21.5%**保留** — C0 後に share 再判定 (相対比率が上がる見込み)
msplat 逐語 per-tile bins——C3 (exact-size counting sort) に支配される、Tier 3 除外維持
方法論の validation

「profiling が指す順にしか実装しない」(5 連敗の教訓) が初めて機能した事例。事前決め打ちなら separable SSIM (11× 軽量化、実占有 5.2%) に 1 週を溶かしていた — 全体への上限 ~4% で 6 連敗目になっていた。実測が指したのは誰も候補に挙げていなかった C0 (host alloc) だった。

02

関連する run

この finding が観測された / 言及している実験 run。

03

関連 finding

© 2026 大竹律輝 — 松田研究室