松田研究室
FindingID: p1-profiling-clean
Status: stable / task P1 axis 1 profile re-baseline
← Findings Index
P1 axis 1 · clean profile baseline · share over-state correction

P1 clean single-process profile baseline — radix_sort 27% → 13.6%、emit_pairs 6.5% → 14.2% の share 大幅 shift、axis 1 真の ROI 上限確定

Phase D 全 process (re-chain、subagent、decay sweep) 完了後に single-process で取り直した per-kernel timing baseline。前 profile baseline (p1-profiling-baseline、multi-process contention 中) と比較すると share が大幅 shift: ts_fwd_radix_sort 27.0% → **13.6%** (-13.4 pt)、ts_fwd_emit_pairs 6.5% → **14.2%** (+7.7 pt)、ts_forward 全体 60.1% → **36.7%** (-23.4 pt)。これは前 profile の share が contention で over-state されていた決定的証拠で、target_upload subagent (share 5.6% → 実 ROI 0.23% / 1/25) の経験を kernel level でも再現。新 axis 1 ROI 上限: emit_pairs 改善 -14% / radix_sort -13% / backward_raster -13% / ssim_fusion -7-8%、いずれも卒論 future work として価値あり。

neutralrank: highaudit-complete-share-correction第 1 軸p1-profileaxis-1clean-baselinekernel-sharesingle-processpremultipliedlego-5kshare-correction
Δ PSNR
N/A (audit)
Δ Wallclock
N/A (audit)
Impact
clean single-process で per-kernel share を取り直し、前 profile baseline (multi-process contention 中) と比較すると share が大幅 shift: ts_fwd_radix_sort 27.0% → **13.6%** (-13.4 pt)、ts_fwd_emit_pairs 6.5% → **14.2%** (+7.7 pt)、ts_forward 全体 60.1% → **36.7%** (-23.4 pt)。これは前 profile の share が contention で over-state されていた決定的証拠 (target_upload subagent の share 5.6% → 実 ROI 0.23% を kernel level で再現)。新 axis 1 ROI 上限: emit_pairs 改善 -14% / radix_sort -13% / backward_raster -13% / ssim_fusion -7-8%。Phase E (refine GPU 化) の ROI 仮説 -5x は元々 share 2.6% で 1/40 過大評価だったが、本 clean baseline でも refine 0.2% に縮小、棄却強化。target_upload は本 clean baseline で完全消滅 (cache 化済)。
01

本文

Phase D 全 process (multi-scene re-chain、subagent worktree、decay sweep) 完了後に single-process で profile を取り直し、前 baseline (multi-process contention 中) と比較。share の大幅 shift を確認: radix_sort 27% → 13.6%、emit_pairs 6.5% → 14.2%、forward 60% → 37%。これは contention 中の share が systematic に over-state されていた決定的証拠で、target_upload subagent (share 5.6% → 実 ROI 0.23%) の経験を kernel level でも再現。

Headline (share over-state correction)

前 profile baseline (p1-profiling-baseline、multi-process contention 中) の share data は systematic に over-state されていた。clean baseline で radix_sort share は 27% → 13.6% に半減、forward 全体は 60% → 37% に大幅縮小、一方 emit_pairs は 6.5% → 14.2% に倍増。これは axis 1 ROI 推定の前提を変える: 前 "radix_sort -14-17%" は ceiling -13%、emit_pairs は新しい高優先 candidate (-14% 上限)。卒論 axis 1 narrative では profile baseline は contention 状態を明記 + clean baseline で再評価が必須の方法論として記述。

1. Per-kernel share 比較 table

rankkernelclean share旧 profile shareshift (pt)shift 解釈
1**ts_forward (全体)****36.7%**60.1%**-23.4**forward が contention で大幅誇張
2**ts_fwd_emit_pairs****14.2%**6.5%**+7.7**emit_pairs が contention で under-state、真の bottleneck candidate
3**ts_fwd_radix_sort****13.6%**27.0%**-13.4**radix_sort 半減、前 baseline の最大 candidate は over-state
4ts_backward_raster13.4%13.5%±0唯一 stable な share (contention 影響小)
5ts_ssim_fwd_grad7.8%15.6%-7.8SSIM も contention で 2x 誇張
6ts_fwd_rasterize6.1%9.4%-3.3
7ts_adam3.0%5.6%-2.6
8ts_target_upload**0% (消滅)**5.6%-5.6**target_upload cache subagent で完全除去済**
9ts_refine0.2%2.6%-2.4Phase E refine GPU 化の ROI 仮説 -5x の 1/250 縮小
10ts_opacity_decay0.0%0.001%±0no-op 確定
全 kernel で share が変化 (backward_raster のみ stable)。contention 中は forward 系 kernel が誇張され、emit_pairs だけが under-state されていた (interesting!)。emit_pairs が clean baseline で第 1 候補に浮上。

2. 修正された axis 1 ROI ランキング (clean baseline 基準)

#改修clean share完璧改善時 wallclock ROI 上限備考
1**emit_pairs 高速化****14.2%****-14%**新候補、前 profile では under-state されていた
2radix_sort 改善13.6%-13%前 profile -14-17% から下方修正
3backward_raster 高速化13.4%-13%唯一 stable な share、確実な ROI
4SSIM fusion7.8%-7-8%前 profile -5-7% に近い
5fwd_rasterize 高速化6.1%-6%
6adam batching3.0%-2-3%Phase E subagent 提案、ROI 低
7refine GPU 化 (Phase E)0.2%-0.2%**棄却強化** (前 profile 2.6% で既に -1.3% 上限、clean で 1/13)
8f16 packed (A.6)-1.7-2.2%**棄却維持** (memory bandwidth bound 不発)
9opacity_decay GPU 化0.0%0%**no-op 確定**
clean baseline で emit_pairs が第 1 候補に浮上、refine は完全棄却。axis 1 future work 優先順位は 1-4 (emit_pairs / radix_sort / backward / ssim) で合計 -47% wallclock 改善余地、ただし実装 cost も大。

3. 構造的気づき (axis 1 narrative core)

  1. profile share は contention 状態に依存: 単独 single-process で取り直すまでは share data を ROI 上限として使うべきでない
  2. contention 中の under-state も発生: emit_pairs が +7.7 pt 増加、これは contention 中に他 process が GPU を占めている間に emit_pairs が "待ち時間" として cumulative 計測されなかった可能性
  3. backward_raster は contention 影響を受けない唯一の kernel: per-pixel atomic 中心で synchronous な処理、contention に関係なく GPU 時間を消費
  4. target_upload は async commit overlap で実 ROI 1/25 だった: clean baseline で完全消滅、kernel 除去自体は構造的成果として確定
  5. refine は contention でも clean でも < 3%: Phase E hypothesis 棄却が clean でも維持、refine 系は narrative 価値のみで実用 ROI なし
  6. 新 axis 1 future work 候補: emit_pairs 高速化が第 1 候補、ただし implementation 詳細は別途検証必要 (sort key 生成の Apple MPS 化 or kernel fusion 等)

4. 卒論への含意 (§5.4.4 + §6 future work)

  • §5.4.4 "axis 1 Metal kernel ROI 上限実測": 前 profile baseline + clean baseline 両方を掲載、share over-state correction を方法論として記述
  • Phase E refine GPU 化の narrative 強化: 仮説 -5x → 前 profile で -1.3% → clean profile で -0.2% と 3 段階で棄却強度を上げる流れ、卒論 "axis 1 ROI 上限の honest reporting" として強い
  • §6 future work 優先順位: emit_pairs (-14%) / radix_sort (-13%) / backward_raster (-13%) / ssim_fusion (-7-8%) の 4 つを high-ROI 候補として明記、各 kernel の implementation 詳細を future work として残す
  • profile baseline 取得方法の方法論: "single-process で取り直すまでは ROI 推定に使うべきでない" を §3 evaluation methodology に追加検討

5. 実測手順 (再現可能性)

# 前提: 他の bench/subagent が全て完了し、single-process な GPU/CPU 状態
cd splat
./target/release/splat train --config configs/2026-05-25-0600-lego-profile-clean-5k.toml
# → runs/lego-profile-clean-5k/{result.toml, final.ply (not saved)}
# → mean val PSNR 31.511 dB / wallclock ~2m / splats 84,831
# → [profile] kernel timing が log に出力、grep ts_ で抽出

6. 関連

  • 前 profile baseline (multi-process contention 中): p1-profiling-baseline
  • target_upload cache (share 5.6% → 実 ROI 0.23% の経験): p1-axis1-target-cache
  • Phase E refine GPU 化 (仮説 -5x 棄却の data point): p1-e-refine-gpu-smoke
  • A.6 f16 packed (orientation halt): a-6-f16-packed-rebench
  • Phase D Stage 2 (Lego val 36.106 dB の root): p1-d-stage2-30k-results
02

関連する run

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

03

関連 finding

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