[{"data":1,"prerenderedAt":922},["ShallowReactive",2],{"findings":3},[4,31,55,72,90,116,135,159,177,193,216,237,263,284,301,322,340,355,380,400,415,432,446,463,482,497,511,526,542,557,569,579,594,607,623,637,658,674,694,713,728,739,759,773,799,811,829,843,862,878,892,908],{"id":5,"title":6,"date":7,"status":8,"polarity":9,"category":10,"axes":11,"tags":15,"task_code":23,"related_runs":24,"delta_psnr":25,"delta_wallclock":26,"rank":27,"verdict":28,"impact_summary":29,"detail_path":30},"p1-msplat-baseline-spike","msplat v1.1.3 baseline spike — M4 Max 実測、Lego 30K で 3m40s \u002F 35.48 dB、materials で densify 破綻","2026-06-26","stable","mixed","experiment",[12,13,14],1,2,3,[16,17,18,19,20,21,22],"msplat","baseline","apple-silicon","m4-max","nerf-synthetic","direct-comparison","thesis-ready","P1 msplat spike (critical path)",[],"Lego: 本実装 +0.78 dB (Phase H 12500 vs msplat 30K)、materials: 本実装 +21.17 dB (Phase I 12500 vs msplat 7K broken)","Lego: msplat -3.2× (msplat 3m40s vs Phase H 11m48s)、chair 7K のみ msplat -63× (msplat 17.58s vs Phase I 18m35s)","high","critical-path-complete-A-confirmed","\u003Cstrong>msplat (rayanht) v1.1.3 を M4 Max で実測完了\u003C\u002Fstrong>。Lego 30K で 219.8s (3m40s) \u002F 35.48 dB \u002F 208k splats、chair 7K で 17.58s \u002F 33.81 dB を確認。\u003Cstrong>本実装 Phase H lego (11m48s \u002F 36.26 dB) に対し msplat は wallclock 3.2× 高速、ただし PSNR は -0.78 dB\u003C\u002Fstrong>。materials 7K では PSNR 8.80 \u002F splats 367 と densification が壊れた — msplat の scene robustness 弱点が判明し、本実装の \u003Cstrong>universal な density 動作\u003C\u002Fstrong>が明確な差別化軸として確定。\u003Cstrong>本実装 Phase I 8 scene のうち 5 scene が msplat lego 30K の 35.48 dB を上回る\u003C\u002Fstrong> (Lego 36.26 \u002F chair 35.88 \u002F hotdog 37.37 \u002F mic 36.62 \u002F drums は 27 のみ)。Pareto plot で msplat は左上 (速い + 中品質)、本実装は右側 (遅い + 高品質 + 全 scene robust) と vector が直交。本 spike により \u003Cstrong>A (Reframing narrative) の killer figure が確定\u003C\u002Fstrong>、\u003Cstrong>B (G.2 backport) は引き続き NO-GO\u003C\u002Fstrong> (msplat が既に kernel fusion + pre-allocated bins まで実装済、本実装が追いつく工数は大)、\u003Cstrong>E (msplat 著者接触) の materials bug 報告は良い PR ネタ\u003C\u002Fstrong>。","\u002Ffindings\u002Fp1-msplat-baseline-spike\u002F",{"id":32,"title":33,"date":34,"status":8,"polarity":35,"category":36,"axes":37,"tags":38,"task_code":48,"related_runs":49,"delta_psnr":50,"delta_wallclock":51,"rank":27,"verdict":52,"impact_summary":53,"detail_path":54},"p1-axis1-phase-g-pareto-landscape","Phase G omnibus — 速度改善 4 candidate × 8 scene の Pareto landscape 確定、**G.3 alone 30k = universal quality improvement** (+0.107 dB \u002F +10% wall)","2026-05-26","positive","audit",[12],[39,40,41,42,43,44,45,46,47],"p1-axis1","phase-g","omnibus","pareto-front","sh-progressive","early-stop","brush-comparison","multi-scene","calibration","P1 Phase G omnibus",[],"**G.3 alone 30k = +0.107 dB universal mean** (7\u002F8 scene improve)、Lego +0.278 \u002F mic +0.244 \u002F chair +0.142 \u002F materials +0.125","**G.3 alone 30k = +10.2%** (mean、scene 依存 +5-50%)、G.1 stop15k = -62%、G.1+G.3 stacked = -58%","g3-universal-pareto-confirmed","Phase G (速度改善 loop) で 4 candidate × 8 scene の Pareto landscape 確定。\u003Cstrong>結論\u003C\u002Fstrong>: **G.3 alone 30k = universal quality improvement** (8 scene mean **33.592 dB**、Phase D 33.485 比 **+0.107 dB**、7\u002F8 scene で win、wallclock +10.2%、splats +29%)、特に **mic は stacked で -6.05 dB だったが G.3 alone なら +0.244 dB 救済**。\u003Cstrong>G.1 stop15k\u003C\u002Fstrong> は dense scene で acceptable (Lego\u002Fchair\u002Fhotdog で Phase D 比 -0.5 dB 圏内) も sparse scene で大幅劣化 (mic -5.84\u002Fficus -1.79)、8 scene mean -1.39 dB で Pareto worse、brush parity (32.86) を -0.76 dB 下回り。\u003Cstrong>G.1+G.3 stacked\u003C\u002Fstrong> は Lego-specific Pareto sweet spot (16m13s \u002F 36.254 dB \u002F +0.15 dB) だが multi-scene mean 31.998 dB で stacked \u003C G.1 alone、SH warmup の効果が early stop で truncate されて sparse scene で逆効果 (ficus -3.15、mic -6.05)。\u003Cstrong>G.2 audit\u003C\u002Fstrong> は 4.7× gap が architectural dispatch (Burn\u002FCubeCL 内部 batching vs Metal 直 per-kernel sync) と判明、Phase F 5 連続 falsification への統一的説明、kernel\u002Falgorithm 軸では覆せない構造的 finding。\u003Cstrong>axis 1 future work ROI 階層\u003C\u002Fstrong>: \u003Cstrong>algorithmic compute reduction > architectural dispatch > kernel-level micro-opt\u003C\u002Fstrong>。Phase G が axis 1 「Apple Silicon native 最適化の ROI 階層」を構造的に確定、卒論 §5.4 narrative の集大成。","\u002Ffindings\u002Fp1-axis1-phase-g-pareto-landscape\u002F",{"id":56,"title":57,"date":34,"status":8,"polarity":9,"category":36,"axes":58,"tags":59,"task_code":65,"related_runs":66,"delta_psnr":67,"delta_wallclock":68,"rank":27,"verdict":69,"impact_summary":70,"detail_path":71},"p1-axis1-phase-h-lego-pareto-sweep","Phase H Lego Pareto sweep — stop_iter=10000 で brush dominate、12500 で Phase D dominate (Lego)、ただし scene-dependent 確定",[12],[39,60,61,62,43,63,64,47],"phase-h","pareto-sweep","stop-iter","scene-dependent","lego-detail","P1 Phase H",[],"**Lego stop_iter=12500 = +0.15 dB** vs Phase D 30k、ficus 同 config = **-4.12 dB の fail**","**Lego stop_iter=12500 = -71% wallclock** vs Phase D 30k","scene-dependent-confirmed-future-work-scene-adaptive","Phase G で G.3 alone 30k = universal Pareto improvement (+0.107 dB \u002F +10% wall) を確定した後、**Lego の (wallclock, PSNR) Pareto curve を stop_iter × 6 点 で精密 map**。\u003Cstrong>結果\u003C\u002Fstrong>: stop_iter=10000 は brush (9m08s \u002F 32.04 dB) を完全 Pareto-dominate (8m42s \u002F 35.931 dB = **同時間で +3.89 dB**)、stop_iter=12500 は Phase D 30k (41m54s \u002F 36.106 dB) を Pareto-dominate (11m48s \u002F 36.259 dB = **-71% wallclock + 0.15 dB**)、stop_iter=17500 以降は marginal +0.1 dB のみで diminishing returns 顕著。\u003Cstrong>anomaly\u003C\u002Fstrong>: stop_iter=25000 が 36.092 dB と 20000 (36.359) より -0.27 dB 低い (variance or training instability の可能性)。\u003Cstrong>Scene-validation\u003C\u002Fstrong>: ficus @ stop_iter=12500 = **30.103 dB** (Phase D 34.22 比 -4.12 dB の大幅 fail)、**Lego sweet spot が scene-dependent と確定**。mic \u002F drums \u002F hotdog \u002F ship 等 sparse scene でも同様の fail が予想され (G.1 stacked パターンと整合)、universal config では Phase G.3 alone 30k が依然 best。\u003Cstrong>Phase H の最終 framing\u003C\u002Fstrong>: Lego の Pareto curve は dense texture scene 固有、sparse scene は full SH from start (no sh_progressive) または full 30k iter が必要。\u003Cstrong>axis 1 future work\u003C\u002Fstrong>: scene-adaptive iter budget (Lego\u002Fchair\u002Fmaterials @ 12500、ficus\u002Fdrums\u002Fmic 等 @ 30000) で 8 scene mean を維持しつつ total wallclock を 5h 36m → ~3h に -40-50% 削減可能と推定。","\u002Ffindings\u002Fp1-axis1-phase-h-lego-pareto-sweep\u002F",{"id":73,"title":74,"date":34,"status":8,"polarity":35,"category":75,"axes":76,"tags":77,"task_code":81,"related_runs":82,"delta_psnr":85,"delta_wallclock":86,"rank":27,"verdict":87,"impact_summary":88,"detail_path":89},"p1-axis1-phase-i-scene-adaptive","Phase I scene-adaptive iter budget — **STRONG Pareto improvement** 確定 (8 scene mean +0.077 dB at -24% wallclock vs Phase D)","design",[12],[39,78,79,42,62,43,80,47],"phase-i","scene-adaptive","universal-improvement","P1 Phase I",[83,84],"chair-phase-i-adaptive-12500","materials-phase-i-adaptive-12500","**+0.077 dB** (8 scene mean vs Phase D 30k)、+0.701 dB (vs brush)、-0.031 dB (vs G.3 30k = within noise)","**-24.4%** (vs Phase D)、**-31.6%** (vs G.3 30k)、both Pareto dimensions improved","scene-adaptive-pareto-confirmed","Phase H で Lego stop_iter=12500 が Pareto sweet spot だが ficus\u002Fmic で大幅 fail (-4.12 \u002F -6.03 dB) と scene-dependent 確定後、**Phase I で chair \u002F materials @ stop_iter=12500 も fast converger と確認** (G.3 30k 比 -0.05〜-0.07 dB のみで essentially same)。これにより \u003Cstrong>scene-adaptive iter budget\u003C\u002Fstrong> (Lego\u002Fchair\u002Fmaterials @ 12500、ficus\u002Fdrums\u002Fhotdog\u002Fmic\u002Fship @ 30000) を構成、\u003Cstrong>既存 8 scene 全データ点が揃った状態で 8 scene mean を算出\u003C\u002Fstrong>。\u003Cstrong>結果\u003C\u002Fstrong>: scene-adaptive 8 scene mean **33.561 dB** \u002F total wallclock **3h 50m 10s**、Phase D 30k 比 \u003Cstrong>+0.077 dB \u002F -24.4% wallclock\u003C\u002Fstrong>、G.3 30k 比 \u003Cstrong>-0.031 dB (within noise) \u002F -31.6% wallclock\u003C\u002Fstrong>、brush 比 \u003Cstrong>+0.701 dB\u003C\u002Fstrong>。\u003Cstrong>Pareto front の両軸で improvement\u003C\u002Fstrong>: Phase D を quality + speed 両方で dominate、G.3 30k quality を 1\u002F3 短時間で達成。**axis 1 contribution の最終形**: kernel-level 直叩きではなく \u003Cstrong>scene-adaptive iter budget + sh_progressive + opacity_decay の組み合わせ\u003C\u002Fstrong>が Apple Silicon native Metal 最適化の universal Pareto improvement。卒論 §5.4.7 末尾 + §6 future work で本 Phase I を明示、scene-adaptive を新 universal default として推奨。","\u002Ffindings\u002Fp1-axis1-phase-i-scene-adaptive\u002F",{"id":91,"title":92,"date":93,"status":8,"polarity":94,"category":95,"axes":96,"tags":97,"task_code":108,"related_runs":109,"delta_psnr":110,"delta_wallclock":111,"rank":112,"verdict":113,"impact_summary":114,"detail_path":115},"a-6-f16-packed-rebench","A.6 再評価 (Phase D 文脈) — feat.G f16 packed の ROI 上限 ~3.3%、M5 gate margin 0.11 dB と PSNR drift リスクが干渉、再着手非推奨","2026-05-25","negative","spec",[14],[98,99,100,101,102,103,104,105,94,106,107],"phase-5","a-6","feat-g","f16","packed","splat2d","phase-d","bound-check","premise-correction","deferred","A.6 (rebench)",[],"implement 時 0.1-0.5 dB regression risk (M5 margin 0.11 dB 食い込みあり)","実装 ceiling ~3.3% (旧 ~1% より上限上昇だが期待値 20-40% に遠く及ばず)","low","halt-orientation-only","User task brief は Phase D 375k 文脈で旧 A.6 (~1% wallclock ROI) を再評価し f16 packed の真の bandwidth ROI を引き出すことを期待したが、orientation 段階で feat.G 実装の事実関係を確認した結果、3 つの factual error (32 byte \u002F -11% \u002F ~12 MB) が判明。bound math (rasterize fwd+bwd share 上限 30% × bandwidth 削減 11%) より wallclock 上限 ~3.3%、user brief の 20-40% 期待は実装の物理特性と整合しない。加えて M5 Lego val gate margin (+0.11 dB) より RGB f16 round-trip 誤差 (rel 5e-4、abs ~0.5 dB drift 想定) の方が大きい可能性、再着手は M5 gate を割るリスク。orientation 段階で halt、bench 不実施。","\u002Ffindings\u002Fa-6-f16-packed-rebench\u002F",{"id":117,"title":118,"date":93,"status":8,"polarity":35,"category":75,"axes":119,"tags":120,"task_code":128,"related_runs":129,"delta_psnr":130,"delta_wallclock":131,"rank":27,"verdict":132,"impact_summary":133,"detail_path":134},"p1-axis1-metal-opt-audit","P1 axis 1 Metal 最適化候補 audit — 5 候補 + 既実装 gate flip 機会、Tier 1 -1.0% wallclock 即時 actionable",[12],[121,122,123,124,125,126,18,127],"p1-profile","axis-1","metal-optimization","kernel-audit","tbdr","simd-reduction","gate-flip","P1 axis 1 Metal kernel audit",[],"N\u002FA (audit)","estimated -1.5 〜 -2.5% (Tier 1+2)","design-complete-actionable","5 kernel (clean baseline share 合計 55.1%) を Explore subagent で構造的 audit、Apple Silicon 特化最適化候補を kernel 単位で 2-4 個ずつ抽出。\u003Cstrong>最大の発見\u003C\u002Fstrong>: **emit_pairs_simd PSO は既に実装済**、\u003Ccode>use_simd_emit: Cell::new(false)\u003C\u002Fcode> で gate off、comment に「30k validation 後 default true 化予定」(tile_bin.rs:86-87)、**Phase D 30k 完遂で即 flip 可能** (-0.7-1.0% wallclock 即時、zero risk)。同様の即 actionable 機会: f16 forward kernel \u003Ccode>render_splats_f16\u003C\u002Fcode> は env \u003Ccode>SPLAT_F16_FORWARD=1\u003C\u002Fcode> gate (現在 disabled、A\u002FB test 必須 PSNR risk MED-HIGH)。\u003Cstrong>Tier 2 (Phase E scope)\u003C\u002Fstrong>: radix_sort GPU prefix sum (-0.54-0.82% wallclock、CPU-GPU 16-pass sync 除去)、backward_raster imageblock+TBDR (-0.67-1.07% wallclock、tile-local 累積で atomic 大幅削減)。\u003Cstrong>累計 -1.5-2.5% wallclock 改善余地確定、卒論 §6 future work 候補と pilot 実装目標\u003C\u002Fstrong>。backward SIMD reduction は既に default 有効 (rasterize.rs:642、2.43× win 享受中で確認済)、SSIM は eval-only で training 直接寄与なしのため Tier 3。","\u002Ffindings\u002Fp1-axis1-metal-opt-audit\u002F",{"id":136,"title":137,"date":93,"status":8,"polarity":94,"category":36,"axes":138,"tags":139,"task_code":148,"related_runs":149,"delta_psnr":153,"delta_wallclock":154,"rank":155,"verdict":156,"impact_summary":157,"detail_path":158},"p1-axis1-phase-f1-emit-simd-falsified","Phase F.1 emit_pairs_simd + f16 forward gate flip — audit Tier 1 仮説 falsified、現規模で net regression \u002F no improvement",[12],[39,140,141,142,143,144,145,146,147],"phase-f","emit-simd","f16-forward","tier-1","falsified","negative-finding","ab-test","lego-5k","P1 Phase F.1 \u002F F.2",[150,151,152],"lego-phase-f1-emit-simd-5k","lego-phase-f1-baseline-5k","lego-phase-f2-f16-fwd-5k","±0.13 dB (両者とも許容範囲、atomic\u002Ffp 順序由来)","+4.7% (emit_simd net regression) \u002F +2.5% (f16 fwd noise 圏内)","medium","audit-falsified-tier-1","audit (p1-axis1-metal-opt-audit) で Tier 1「即 actionable gate flip、-0.7-1.0% wallclock、zero risk」と分類した 2 候補を Lego 5k smoke A\u002FB で実証検証。\u003Cstrong>emit_pairs_simd は total wallclock +4.7% の net regression\u003C\u002Fstrong> (112.11s → 117.38s、~10 kernel 平均なので noise floor 小、real regression 確定)、ただし per-kernel emit_pairs 単体は +8.5% で baseline 2 sample 変動 (4.814 \u002F 5.129、6.5%) と近い hedge 必要。\u003Cstrong>f16 forward は ~+2.5% wallclock\u003C\u002Fstrong> (114.97s)、run-to-run variance 圏内で improvement \u002F regression いずれも明確に検出できず。\u003Cstrong>PSNR は両者で許容範囲\u003C\u002Fstrong> (emit_simd -0.132 dB、f16 +0.075 dB、atomic order \u002F fp 順序由来想定)。**audit の予測 calibration data**: Tier 1 SIMD-reduction 系の効果は theory より小さく overhead が打ち消し、Tier 2 別 mechanism (CPU-GPU sync 除去) は別途検証必要、Tier 2 同 family (backward TBDR) は falsification 拡大適用で skip 判断強化。卒論 narrative 価値: 「audit theoretical predictions vs empirical measurements」の方法論 paragraph を §5.4 negative findings 章 (chapter-5-4-negative-findings.md) に追加候補。","\u002Ffindings\u002Fp1-axis1-phase-f1-emit-simd-falsified\u002F",{"id":160,"title":161,"date":93,"status":8,"polarity":94,"category":36,"axes":162,"tags":163,"task_code":168,"related_runs":169,"delta_psnr":172,"delta_wallclock":173,"rank":27,"verdict":174,"impact_summary":175,"detail_path":176},"p1-axis1-phase-f3-radix-gpu-prefix-falsified","Phase F.3 radix GPU prefix scan — bit-exact 実装完成だが Metal implicit fences で +7.4% wallclock \u002F +35-41% per-call regression、audit Tier 2 仮説 falsified",[12],[39,140,164,165,166,144,145,167,125,146,147],"radix-sort","gpu-prefix-scan","tier-2","metal-fences","P1 Phase F.3",[170,171],"lego-phase-f3-baseline-5k","lego-phase-f3-gpu-scan-5k","+0.03 dB (parity、bit-exact 経路、session noise 内)","+7.4% (+8.58s @ 5k iter、sanity rerun +4.8% でも regression 確定)","audit-falsified-tier-2","audit (p1-axis1-metal-opt-audit) で Tier 2 「radix_sort GPU prefix sum、-0.5-0.8% wallclock、LOW PSNR risk」と分類した候補を empirical 検証。\u003Cstrong>bit-exact 実装は完成\u003C\u002Fstrong> (16-thread single-threadgroup kernel、Apple SIMD prefix exclusive sum + per-digit serial scan、100k random \u002F 500k packed keys \u002F edge cases 6 種で CPU stable sort と byte-for-byte 一致)、しかし 5k Lego smoke で \u003Cstrong>wallclock 115.83s → 124.41s (+7.4%)、ts_fwd_radix_sort 4.768 → 6.733 ms\u002Fcall (+41%)\u003C\u002Fstrong> の net regression。sanity re-run (118.73s \u002F 6.402ms) で再現確認、run-to-run 変動の上。\u003Cstrong>PSNR は parity\u003C\u002Fstrong> (31.604 → 31.635 dB、bit-exact 経路で 0 drift 期待、観測 +0.03 dB は session noise)。\u003Cstrong>Likely mechanism\u003C\u002Fstrong>: StorageModeShared buffer での back-to-back compute encoder 間で Metal が implicit fence を挿入 (hist→scan の buf_hist、scan→scatter の buf_offsets で read-after-write hazard)、TBDR pipeline stall。旧 CPU 経路は buf_hist→buf_offsets 変換を host で実行するため GPU 内 memory dependency が無く、\u003Cstrong>「除去した wait_until_completed」は実は CPU prefix scan と overlap していた active work\u003C\u002Fstrong> だった。教訓: 「CPU 介在を on-GPU に置換」族の audit 予測は overlap の存在を見落とすため systematically overestimate、Tier 2 同 family (backward TBDR、tile-local accumulator) の skip 判断強化。kernel + tests は env \u003Ccode>SPLAT_RADIX_GPU_SCAN=1\u003C\u002Fcode> で opt-in (future workload hedge)。","\u002Ffindings\u002Fp1-axis1-phase-f3-radix-gpu-prefix-falsified\u002F",{"id":178,"title":179,"date":93,"status":8,"polarity":9,"category":75,"axes":180,"tags":181,"task_code":187,"related_runs":188,"delta_psnr":130,"delta_wallclock":189,"rank":27,"verdict":190,"impact_summary":191,"detail_path":192},"p1-axis1-phase-g2-brush-dispatch-architecture","Phase G.2 brush 4.7× per-iter 速度差の真因 — command buffer batching、Phase F 全 kernel-level 改善試行への統一的構造説明",[12,13],[39,40,45,182,183,184,185,186],"dispatch-architecture","command-buffer-batching","structural-finding","burn-cubecl","metal-direct","P1 axis 1 Phase G.2",[],"0% (audit) \u002F estimated +3-5% if async readback backport (要 prototype 検証)","structural-explanation","Explore subagent (Sonnet very thorough) で brush 18ms\u002Fiter vs splat-rs 84ms\u002Fiter (4.67×) の真因を architectural 差で構造特定。\u003Cstrong>brush は Burn\u002FCubeCL backend の \u003Ccode>launch_unchecked()\u003C\u002Fcode> async dispatch + 内部 command buffer batching\u003C\u002Fstrong> で per-iter 5-7 explicit awaits → ~5 actual GPU flushes。一方 \u003Cstrong>splat-rs は per kernel 毎に \u003Ccode>cmd.wait_until_completed()\u003C\u002Fcode> で 10-50 GPU flushes\u003C\u002Fstrong>。計算: 17ms GPU compute + ~25ms wait overhead (~2.5ms\u002Fwait × ~10) = ~42ms、実測 84ms とは ~2× ずれあるが (subagent quantification の不確実性)、order-of-magnitude は一致。\u003Cstrong>これは Phase F 5 連続 falsification への統一的構造説明\u003C\u002Fstrong>: kernel-level micro-opt (SIMD reduction \u002F f16 accumulator \u002F radix GPU prefix \u002F TBDR imageblock 等) が効かなかったのは bottleneck が \u003Cstrong>per-kernel compute ではなく dispatch synchronization architecture\u003C\u002Fstrong> だったから。**主仮説 ranking** (subagent assessment): (1) command buffer batching (50% of gap、移植 VERY HIGH cost 6-10 週)、(2) async readback (15%、MEDIUM cost 1-2 週、+3-5% expected)、(3) kernel fusion (5-10%、EXTREME cost)。**ただし subagent quantification は overestimate 傾向あり** (Phase F.3 で「removed wait was overlapping with CPU work, not idle」発覚と矛盾、wait は free な場合もある)。卒論 narrative としては \u003Cstrong>structural explanation\u003C\u002Fstrong> として極めて価値高い、§5.4 negative findings 章で「Phase F 全 kernel-level 改善試行は architectural mismatch だった」統一的 paragraph 候補。","\u002Ffindings\u002Fp1-axis1-phase-g2-brush-dispatch-architecture\u002F",{"id":194,"title":195,"date":93,"status":8,"polarity":35,"category":75,"axes":196,"tags":197,"task_code":205,"related_runs":206,"delta_psnr":211,"delta_wallclock":212,"rank":27,"verdict":213,"impact_summary":214,"detail_path":215},"p1-axis1-phase-g3-sh-progressive","Phase G.3 SH-progressive — 5k smoke -14% は artifact、30k full は **quality improvement + 0.28 dB** に reframe、stacked + G.1 で **Pareto sweet spot** (Lego -61% wallclock + 0.15 dB)",[12],[39,40,43,198,42,147,199,200,201,202,203,204],"compute-reduction","lego-30k","stacked-config","implementation","unit-tests","bit-exact","smoke-artifact","P1 Phase G.3",[207,208,209,151,210],"lego-phase-g3-sh-progressive-5k","lego-phase-g3-sh-progressive-30k","lego-phase-g1g3-stacked-15k","lego-brushcompat-opacdecay-30k","+0.15 dB stacked (vs Phase D)、+0.28 dB 30k single (vs Phase D)、-0.12 dB 5k smoke (許容)","**-61% stacked** (vs Phase D)、-1.9% 30k single、-13.9% 5k smoke (artifact)","pareto-sweet-spot-confirmed-chain-pending","Phase G compute reduction family の G.3 (SH-progressive growth) を実装 + bit-exact unit tests (11 件、cargo test 43 件 全 pass) + **3 layer の Lego 結果検証**。\u003Cstrong>(1) 5k smoke\u003C\u002Fstrong>: wallclock -13.9% \u002F splats -22% \u002F PSNR -0.12 dB、cascading splat reduction を観測。\u003Cstrong>(2) 30k full validation\u003C\u002Fstrong>: wallclock **-1.9%** (5k から大幅縮小)、splats **+30%** (5k から逆転)、PSNR **+0.28 dB** (quality improvement!)。5k smoke の cascading 効果は refine.stop_iter=1500 による artifact、30k では sh unlock 完了 (iter 3000) 後に refine が iter 15000 まで full SH で継続 → splats baseline より grow。\u003Cstrong>(3) G.1+G.3 stacked (max_steps=15000 + sh_progressive)\u003C\u002Fstrong>: Lego **16m13s \u002F 36.254 dB \u002F 428k splats** = Phase D 比 **-61% wallclock + 0.15 dB PSNR** で \u003Cstrong>Pareto sweet spot\u003C\u002Fstrong> 確定。\u003Cstrong>Key reframe\u003C\u002Fstrong>: G.3 は「speed win」ではなく「**quality improvement at no speed cost**」、stacked variant で G.1 speed と SH warmup quality gain を統合。\u003Cstrong>Implementation\u003C\u002Fstrong>: \u003Ccode>[trainer.sh_progressive]\u003C\u002Fcode> section (default disabled、全 backward compat)、\u003Ccode>CameraGpu\u003C\u002Fcode> struct を \u003Ccode>sh_degree\u003C\u002Fcode> (buffer layout) と \u003Ccode>active_sh_degree\u003C\u002Fcode> (per-iter eval) に分離。\u003Cstrong>Calibration data point\u003C\u002Fstrong>: Phase F 5 連続 falsification + G.3 5k smoke artifact = audit \u002F smoke overestimate 6 例目、「smoke は production scale を representative しない」が新教訓。8 scene chain validation pending。\u003Cstrong>卒論 narrative\u003C\u002Fstrong>: Phase F (kernel-level fail) → G.2 (architectural insight) → G.3 (algorithmic reframe: speed → quality + stacked Pareto) の 3 family 比較で「Apple Silicon native 最適化は \u003Cstrong>algorithmic compute reduction + early stop の組み合わせが Pareto-optimal\u003C\u002Fstrong>」という構造的 calibration。","\u002Ffindings\u002Fp1-axis1-phase-g3-sh-progressive\u002F",{"id":217,"title":218,"date":93,"status":8,"polarity":219,"category":220,"axes":221,"tags":222,"task_code":229,"related_runs":230,"delta_psnr":232,"delta_wallclock":233,"rank":112,"verdict":234,"impact_summary":235,"detail_path":236},"p1-axis1-target-cache","P1 axis 1 target_upload cache — kernel 除去は成功、wallclock ROI は host\u002FGPU overlap で予想の 1\u002F25","neutral","optimization",[12],[223,122,224,225,226,227,228,147],"p1","target-cache","kernel-removal","host-gpu-overlap","low-roi","apples-to-apples-ab","P1 axis 1 target upload cache",[231],"lego-target-cache-5k","+0.14 dB (seed同一、RNG drift、許容範囲)","-0.23% (apples-to-apples A\u002FB、env toggle 同一 binary)","accepted-cleanup-keep-merged","Per-iter target upload kernel を完全除去 (5000 calls → 0)、構造的には kernel 一つ消えた成果。 だが wallclock ROI は **予想 -5.5% に対し実測 -0.23%** (-1\u002F25)、profile baseline の \"5.6% share\" は GPU contention 3x 環境での host stall 値で、平常 contention では host upload は既に GPU 計算と overlap していた。 PSNR は seed 同一でも +0.14 dB drift (Metal driver の buffer 配置順序差 → atomic ordering 差 → refine.split RNG 経由)、5k smoke の noise floor 内。 実装は trivial (train_loop entry で `Vec\u003CBuffer>` 構築、train_step に `Option\u003C&Buffer>` 追加)、commit 残しておく価値はあるが、roadmap 上の位置付けは \"deprioritize \u002F cleanup level\" に修正。 **真の優先順位は radix_sort 改善 (27% share) と A.7 ICB batching tail に集中すべき**。","\u002Ffindings\u002Fp1-axis1-target-cache\u002F",{"id":238,"title":239,"date":93,"status":8,"polarity":35,"category":10,"axes":240,"tags":241,"task_code":249,"related_runs":250,"delta_psnr":258,"delta_wallclock":259,"rank":27,"verdict":260,"impact_summary":261,"detail_path":262},"p1-d-multi-scene-rechain","P1.D multi-scene Phase D re-chain final — 8 scene mean 33.49 dB、brush mean 32.86 を +0.63 dB 上回り、universal win-win-win 実証",[12,13,14],[223,104,242,46,243,244,245,246,247,248],"milestone-m5","brush-parity","brush-超え","premultiplied","opacity-decay","universal-win-win-win","rechain-final","P1.D multi-scene re-chain (M5 final)",[210,251,252,253,254,255,256,257],"chair-brushcompat-opacdecay-30k","ficus-brushcompat-opacdecay-30k","drums-brushcompat-opacdecay-30k","hotdog-brushcompat-opacdecay-30k","mic-brushcompat-opacdecay-30k","materials-brushcompat-opacdecay-30k","ship-brushcompat-opacdecay-30k","8 scene mean +0.63 dB vs brush paper (33.49 vs 32.86)","-61% total chain (13h+ → 5h 5m)","accepted-m5-complete","Phase D opacity_decay (rate=0.004 brush default) を 7 scene × 30k full chain bench、Lego val Phase D 30k と合わせて 8 scene 集計。**全 scene で baseline brushcompat 30k 比 PSNR + splats + wallclock すべて改善 (universal win-win-win)**: PSNR +0.18〜+1.42 dB \u002F splats -57〜-78% \u002F wallclock -39〜-69%。8 scene mean 33.49 dB vs brush paper 8 scene mean 32.86 dB = **+0.63 dB 上回り**、本実装が brush の multi-scene mean を decisive に超えた。brush 超え 3 scene (Lego val +4.07 \u002F drums +1.05 \u002F mic +1.02)、4 scene が brush 比 ±0.7 dB 圏内 (chair -0.02 \u002F hotdog -0.39 \u002F ship -0.01 \u002F materials -0.10)、最遠 scene でも ficus -0.65 で接近。全体 wallclock baseline chain (13h+) → Phase D re-chain 5h 5m (-61%)、mean splats 1.4M → 428k (-69%) で brush 282k に肉薄。P1.M5 完全達成 (Lego val > 36 dB ✅ + multi-scene mean > 32 dB ✅)、卒論 central evaluation table の final 数字確定、universal claim 完全実証。","\u002Ffindings\u002Fp1-d-multi-scene-rechain\u002F",{"id":264,"title":265,"date":93,"status":8,"polarity":35,"category":266,"axes":267,"tags":268,"task_code":272,"related_runs":273,"delta_psnr":279,"delta_wallclock":280,"rank":155,"verdict":281,"impact_summary":282,"detail_path":283},"p1-d-rate-sweep","P1.D opacity decay rate sweep — rate=0.002 が PSNR 最高 sweet spot (brush default +0.40 dB)","ablation",[12,14],[269,246,270,147,271,245,266],"p1-d","rate-sweep","brush-compat","P1.D.2 (rate sweep)",[274,275,276,277,278],"lego-brushcompat-opacdecay-r0p001-5k","lego-brushcompat-opacdecay-r0p002-5k","lego-brushcompat-opacdecay-5k","lego-brushcompat-opacdecay-r0p006-5k","lego-brushcompat-opacdecay-r0p008-5k","+0.40 dB max (rate=0.002 vs default 0.004、ただし 5k smoke variance σ ±0.32 dB の 1.25 倍)","~3 min\u002Frun、wallclock 影響微小","accepted-keep-default","opacity_decay_rate を 5 点 (0.001\u002F0.002\u002F0.004 default\u002F0.006\u002F0.008) で 5k smoke sweep。**rate=0.002 で PSNR 32.090 dB (default +0.40 dB)** と最高、splats は 88k で +5.8% 微増。rate を上げる (0.006-0.008) と splats は 80k 帯に削減されるが PSNR 影響は 5k variance σ ±0.32 dB 内。Phase D 30k baseline (rate=0.004) は既に M5 +0.11 突破済 (36.106 dB)、rate 変更の追加 +0.2-0.5 dB は smoke noise と並ぶ ROI 不明確。multi-scene Phase D re-chain も brush 互換性維持の観点で rate=0.004 維持を推奨。","\u002Ffindings\u002Fp1-d-rate-sweep\u002F",{"id":285,"title":286,"date":93,"status":8,"polarity":35,"category":10,"axes":287,"tags":288,"task_code":293,"related_runs":294,"delta_psnr":296,"delta_wallclock":297,"rank":27,"verdict":298,"impact_summary":299,"detail_path":300},"p1-d-stage2-30k-results","P1.D Stage 2 — Lego brushcompat + opacity decay 30k = 36.106 dB、splats -56% \u002F wallclock -32%",[12,13,14],[223,104,242,246,243,289,245,199,290,291,292],"win-win-win","stage-2","splat-efficient","axis-1-prep","P1.D Stage 2 (M5 Lego val pass)",[210,295,276],"lego-brushcompat-base-30k","+0.92 dB vs baseline 30k (35.184 → 36.106)","-32% vs baseline 30k (1h 02m 18s → 41m 54s)","accepted-decisive-win","Lego brushcompat + opacity decay 30k で training-time eval 36.106 dB (val 100 view, brush convention, raw)、independent eval 36.163 dB (brush q8)。baseline 30k (35.184 dB) を **+0.92 dB 上回り**、splats を 846,689 → 375,146 に **-55.6% 削減**、wallclock を 1h 02m → 41m 54s に **-32% 短縮**。これは trade-off と想定していた PSNR\u002Fsplats\u002Fwallclock が **完全 win-win-win** に。M5 個別 scene gate (Lego brush conv > 36 dB) を val で達成、brush 自身 val 32.038 dB を +4.07 dB 上回り、本実装が brush を decisive に超えた。test subset (n=36) も +0.75 dB 改善 (33.315 → 34.065)、brush paper test 37.40 との gap を -3.34 dB まで縮小。Stage 1 smoke 推定 (splats -11.6%) を 30k で -56% に拡大、opacity decay の効果は iter 累積で増大することを実証。次 step は multi-scene Phase D 7 scene re-chain (chain 完了後 schedule)、低 wallclock + 低 splats での M5 multi-scene parity 完遂を狙う。","\u002Ffindings\u002Fp1-d-stage2-30k-results\u002F",{"id":302,"title":303,"date":93,"status":8,"polarity":94,"category":10,"axes":304,"tags":305,"task_code":312,"related_runs":313,"delta_psnr":317,"delta_wallclock":318,"rank":27,"verdict":319,"impact_summary":320,"detail_path":321},"p1-e-refine-gpu-smoke","P1.E refine GPU 化 hypothesis を SPLAT_TIMING profile で falsified — refine 寄与は \u003C1%、真の bottleneck は forward 60% + loss 28%",[12],[223,306,307,145,308,309,310,311,147],"phase-e","refine-gpu","kernel-profile","axis-1-limit","opacity-decay-gpu","kernel-plumbing","P1.E refine GPU 化 (axis 1 core contribution)",[314,315,316],"p1-e-profile-1k","p1-e-profile-5k","p1-e-gpu-decay-5k","-0.21 dB (CPU 31.92 → GPU 31.71、5k smoke、bit-close 内 RNG cascade)","+1.4% (CPU 144.32s → GPU 146.32s、5k smoke、opacity_decay は 0.005% で誤差)","accepted-negative-redirect-phase-f","Phase D 30k 実測 wallclock 41m54s vs brush 9m08s = -4.6x gap の原因について、task は `splat process CPU 63.4% = 1 core only` → 「refine の host RMW loop が CPU 1-thread bound」と仮説立てた。本 Phase E ではこの仮説を SPLAT_TIMING profile で実測。5k smoke (84k splats、p1-e-profile-5k.toml) の kernel breakdown: **ts_forward 60.1% (123s) \u002F ts_loss_gpu 28.0% (57s) \u002F ts_adam 4.8% (9.9s) \u002F ts_target_upload 3.9% (8.1s) \u002F ts_project_back 2.3% (4.75s) \u002F ts_refine_compact 0.6% (1.14s, 103ms\u002Fcall × 11) \u002F ts_refine_accumulate 0.3% (605ms) \u002F ts_opacity_decay 0.0046% (957µs)**。**refine 全体で \u003C1%** = refine を完璧に GPU 化しても全体 wallclock は -1% も短縮されない。代わりに demo kernel として `refine_opacity_decay.metal` を実装し、kernel + Rust pipeline + `refine.gpu_path` flag plumbing pattern を validate (CPU vs GPU max diff 1.5e-5、5k full PSNR delta -0.21 dB = 許容内)。Phase F の真の target は (a) forward subdivision で判明した tile-binning chain (`ts_fwd_sort 15.5% + ts_fwd_emit 12.8%`)、(b) Adam の 5x sequential `cmd.wait_until_completed` (1 cmd buffer 化で ~5% 削減期待)、(c) target_upload preload (~4% 削減期待) の 3 つ。","\u002Ffindings\u002Fp1-e-refine-gpu-smoke\u002F",{"id":323,"title":324,"date":93,"status":8,"polarity":219,"category":325,"axes":326,"tags":327,"task_code":332,"related_runs":333,"delta_psnr":335,"delta_wallclock":336,"rank":27,"verdict":337,"impact_summary":338,"detail_path":339},"p1-profiling-baseline","P1 profiling baseline — radix_sort 27% \u002F ssim 16% \u002F backward 14% が三大 bottleneck、refine は僅か 2.6%","investigation",[12,14],[223,328,329,306,99,292,330,331],"profiling","kernel-timing","lego-smoke","host-instant-proxy","P1 profiling baseline",[334],"lego-profile-smoke-1500","(n\u002Fa — 計測のみ、PSNR 不変)","(n\u002Fa — 計測 instrumentation のみ、 default OFF)","accepted-roadmap-pivot","Phase D Lego brushcompat 30k で wallclock 42m \u002F brush 9m gap (-4.6x) の真の bottleneck を per-kernel host Instant 計測で数値化。**仮説 (refine host RMW dominant) は棄却**、refine は 2.6% に過ぎず Phase E GPU 化の ROI は ~3% (期待していた -25% の 1\u002F8)。実 dominant は radix_sort 27% \u002F ssim 16% \u002F backward 14%。優先順位を **target_upload キャッシュ (即時 -5.6%) → radix_sort 改善 (-10〜15% 期待) → A.7 ICB batching tail (-5% 期待) → Phase E は卒論後** に反転すべき。","\u002Ffindings\u002Fp1-profiling-baseline\u002F",{"id":341,"title":342,"date":93,"status":8,"polarity":219,"category":36,"axes":343,"tags":344,"task_code":349,"related_runs":350,"delta_psnr":130,"delta_wallclock":130,"rank":27,"verdict":352,"impact_summary":353,"detail_path":354},"p1-profiling-clean","P1 clean single-process profile baseline — radix_sort 27% → 13.6%、emit_pairs 6.5% → 14.2% の share 大幅 shift、axis 1 真の ROI 上限確定",[12],[121,122,345,346,347,245,147,348],"clean-baseline","kernel-share","single-process","share-correction","P1 axis 1 profile re-baseline",[351],"lego-profile-clean-5k","audit-complete-share-correction","clean single-process で per-kernel share を取り直し、前 profile baseline (multi-process contention 中) と比較すると \u003Cstrong>share が大幅 shift\u003C\u002Fstrong>: 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% \u002F radix_sort -13% \u002F backward_raster -13% \u002F ssim_fusion -7-8%。Phase E (refine GPU 化) の ROI 仮説 -5x は元々 share 2.6% で 1\u002F40 過大評価だったが、本 clean baseline でも refine 0.2% に縮小、棄却強化。target_upload は本 clean baseline で完全消滅 (cache 化済)。","\u002Ffindings\u002Fp1-profiling-clean\u002F",{"id":356,"title":357,"date":358,"status":8,"polarity":9,"category":10,"axes":359,"tags":360,"task_code":365,"related_runs":366,"delta_psnr":375,"delta_wallclock":376,"rank":27,"verdict":377,"impact_summary":378,"detail_path":379},"a-4-nerf-synthetic-scene-results","A.4 NeRF Synthetic 他シーン展開 — 8 シーン complete 30k 結果","2026-05-24",[12],[98,20,46,361,362,363,364],"psnr","scene-dependency","evaluation","8-scenes","A.4",[367,368,369,370,371,372,373,374],"lego-sh3-30k","chair-30k","ficus-30k","drums-30k","hotdog-30k","mic-30k","materials-30k","ship-30k","-5.93 dB (8 シーン平均 18.95 vs lego 24.879、std ±6.0)","21-29 min (シーン非依存的、materials のみ +5 min)","partial","8 シーン complete (lego + 7 新規) 30k 完遂。シーン依存性が PSNR で 17.6 dB の幅 (materials 12.71 〜 hotdog 30.29)、mean 18.95 ± 6.0 dB。本実装の brush SoTA 比 gap は scene-dependent で -7.4 dB (hotdog) 〜 -22.3 dB (ficus 含む)。共通要因仮説: SfM init.ply の sparsity (細い枝 \u002F マイク \u002F 反射 PBR で薄い) + refine grad_threshold の lego\u002Fhotdog tuning over-fit。卒論 evaluation で「lego baseline + multi-scene mean ± std」併記必須。","\u002Ffindings\u002Fa-4-nerf-synthetic-scene-results\u002F",{"id":381,"title":382,"date":358,"status":8,"polarity":219,"category":36,"axes":383,"tags":384,"task_code":391,"related_runs":392,"delta_psnr":395,"delta_wallclock":396,"rank":27,"verdict":397,"impact_summary":398,"detail_path":399},"p1-a-1-brush-eval-audit","P1.A.1 brush eval audit — 数式定式化 + diff 観点 12 項目",[12,13],[223,385,386,36,361,387,388,389,245,390],"a-1","brush","ssim","eval","alpha","convention","P1.A.1",[393,394],"brush-lego-sh3-30k (37.40 dB report)","splat-rs-lego-sh3-30k (24.879 dB)","N\u002FA (apparent gap mechanism の特定が主目的)","N\u002FA (audit task)","audit-complete","brush eval は (1) AlphaMode::Transparent で GT を α premultiply、(2) bg=Vec3::ZERO の黒背景に render、(3) composite_bg=None で premultiplied 同士を直接比較、(4) 8-bit roundtrip 後に MSE = mean((pred−gt)²) over H·W·3、(5) PSNR = 10·log10(1\u002FMSE)。これは NeRF Synthetic (RGBA で α=0 の透明領域が支配的) において **透明領域は pred=gt=0 で完全一致** となり、MSE 分母に 0 寄与が大量に入る → conventional 「白背景に composite してから PSNR」より高く出る。splat-rs 側の eval 規約を A.2 で確認し、A.3 で「同 convention 下での真の gap」を測定する必要あり。","\u002Ffindings\u002Fp1-a-1-brush-eval-audit\u002F",{"id":401,"title":402,"date":358,"status":8,"polarity":219,"category":36,"axes":403,"tags":404,"task_code":409,"related_runs":410,"delta_psnr":411,"delta_wallclock":412,"rank":27,"verdict":219,"impact_summary":413,"detail_path":414},"p1-a-2-splat-eval-audit","P1.A.2 splat-rs eval audit — val split 100view・α 除外・rendered 黒背景の RGB-only PSNR",[12,14],[405,243,388,406,407,36,408],"phase-1","psnr-formula","convention-diff","self-trainer","P1.A.2",[367],"N\u002FA (本タスクでは PSNR を変えない、audit 結果のみ提示)","N\u002FA (audit のみ)","splat-rs trainer の eval は (1) val split 100 view・brush は test split 200 view、(2) PSNR は RGB のみ・α 除外、(3) rendered は raw f32 (clamp \u002F quantize なし)・brush 標準は u8 quant 後、(4) rendered は bg 合成なしで Σαi·Ti·ci のみ・target は white-bg pre-composite — の 4 つの diff 軸を持つ。training loss は 4ch (α 含む) で動くため、α 通り collapse が暗黙の white-bg 効果を作るが、convergence は不完全。P1.A.3 で 7 項目の切り分け reproducer を作り apparent gap (推定 −3〜−6 dB) を分離する。","\u002Ffindings\u002Fp1-a-2-splat-eval-audit\u002F",{"id":416,"title":417,"date":358,"status":8,"polarity":94,"category":10,"axes":418,"tags":419,"task_code":424,"related_runs":425,"delta_psnr":427,"delta_wallclock":428,"rank":27,"verdict":429,"impact_summary":430,"detail_path":431},"p1-a-3-cross-eval-reproducer","P1.A.3 cross-eval reproducer — brush convention で 24.879 → 1.67 dB に崩壊、主仮説 falsify",[12,13,14],[223,420,421,243,388,390,361,245,422,423],"phase-a","milestone-m1","reproducer","falsified-hypothesis","P1.A.3 + P1.A.4",[426],"lego-sh3-30k (splat-rs 24.879 dB legacy\u002Fval)","-23.21 dB (brush convention 化で 24.879 → 1.667)","N\u002FA (eval only)","hypothesis-falsified-stronger-finding","splat-rs `final.ply` (24.879 dB legacy\u002Fval baseline) を brush 準拠 convention (premultiplied GT + bg=ZERO 比較 + 8-bit roundtrip) で再評価すると **1.67 dB に崩壊**。audit §6 が予測した +3〜+5 dB 底上げと逆方向に -23 dB。原因は trainer が white-bg target で学習されており、背景領域を opaque-white splat で埋めるよう収束した結果、brush 流の bg=ZERO 比較では背景 pixel 全体で MSE≈1 が systematic に乗る。`view_00.png` 目視確認 (背景は白い不透明領域) で機構を確定。**training と eval の convention は coupling しており、eval pipeline だけ揃える apparent-gap 仮説は不成立**。卒研 P1.M2\u002FM3 に向けては「training loss も brush 化 (RGBA 4ch L1 を α=0 領域で背景に penalty を吹かさない構造)」が必須要件。8-bit quantize 単体の impact はほぼ無視可能 (legacy 24.879 → 24.879、brush 1.605 → 1.667、+0.06 dB)。","\u002Ffindings\u002Fp1-a-3-cross-eval-reproducer\u002F",{"id":433,"title":434,"date":358,"status":8,"polarity":219,"category":36,"axes":435,"tags":436,"task_code":439,"related_runs":440,"delta_psnr":442,"delta_wallclock":396,"rank":27,"verdict":443,"impact_summary":444,"detail_path":445},"p1-a-eval-convention-audit","P1.A eval convention audit (統合) — 7 軸の diff 確定、apparent gap 推定 -3〜-6 dB",[12,13,14],[223,420,421,243,388,390,361,245,389,437,36,438],"split","synthesis","P1.A (M1)",[441,393],"lego-sh3-30k (splat-rs 24.879 dB)","推定 -3〜-6 dB (apparent gap 縮小、A.3 で実測予定)","audit-complete-gate-passed","両 trainer の eval pipeline を file:line で完全 audit、PSNR formula 本体 (MAX=1 \u002F log10 \u002F RGB only \u002F per-view mean) は同等だが、(1) test split (200 view) vs val split (100 view)、(2) background composite convention の **完全逆方向**、(3) 8-bit roundtrip 有無、(4) α-mask 経路、(5) clamp\u002Fquantize 等 7 軸で diff を確認。最大の発見は brush の premultiplied-α + bg=ZERO eval が NeRF Synthetic の透明領域で構造的に PSNR を +3 dB 以上嵩上げする一方、splat-rs は target に white pre-composite \u002F rendered に bg 合成なしの mismatch で convergence 残差が MSE に直接残る。apparent gap の推定 -3〜-6 dB を A.3 reproducer で実証予定、残り -6〜-9 dB が真の algorithmic gap。","\u002Ffindings\u002Fp1-a-eval-convention-audit\u002F",{"id":447,"title":448,"date":358,"status":8,"polarity":35,"category":10,"axes":449,"tags":450,"task_code":454,"related_runs":455,"delta_psnr":458,"delta_wallclock":459,"rank":27,"verdict":460,"impact_summary":461,"detail_path":462},"p1-b-f-stage2-30k-results","P1.B+F Stage 2 — Lego 30k brushcompat で 35.184 dB、brush 自身を +3.20 dB 上回り",[12,13,14],[223,451,452,243,244,245,453,199,290],"phase-b-f","milestone-m3","convention-bridge","P1.B+F Stage 2 (M3 gate)",[295,456,457],"lego-brushcompat-base-5k","lego-sh3-30k (legacy 30k 24.879 dB)","+10.30 dB vs legacy 30k (24.879 → 35.184、convention 変更後の真の現状)","+2.7x vs legacy 30k (1h 2m 18s vs 22m18s、splats 10x で per-iter time 増、ただし brush 自身 282k より 3 倍多い)","accepted-stretch-goal-met","Lego sh3 30k で gt_convention=premultiplied (brush 互換) を立てると、4-way eval で legacy=1.60 \u002F brush=35.24 dB。**brush 自身 val 32.0 dB を +3.20 dB 上回る** 結果。M3 lifeline (30 dB) を +5.24 dB 突破、M5 (36 dB) まで -0.76 dB に到達。Phase A 主仮説 (apparent gap -3〜-6 dB) は falsify されたが、coupling 解消の真の効果は **+33.6 dB shift (1.67 → 35.24)**、想定 (+10 dB) の 3 倍。実装は configs 1 行 (gt_convention) + dataset.rs (load_rgba_premultiplied path 追加、既に Stage 1 で merge 済) のみ、既存 30k legacy bench との apples-to-apples comparison が可能。brush の wallclock 38% 高速化は 30k でも継続 (splats 1M-cap で 846k 到達、refine が攻撃的 split)、ただし brush 自身 282k に比べて 3 倍、本実装が capacity を未活用 (refine を絞る余地あり、Phase D で検証可能)。次 Step は multi-scene 8 シーン展開で universal claim 確定、brush mean 33.32 dB 超えで multi-scene parity 完全達成を狙う。","\u002Ffindings\u002Fp1-b-f-stage2-30k-results\u002F",{"id":464,"title":465,"date":358,"status":8,"polarity":35,"category":10,"axes":466,"tags":467,"task_code":473,"related_runs":474,"delta_psnr":477,"delta_wallclock":478,"rank":27,"verdict":479,"impact_summary":480,"detail_path":481},"p1-b-f-trainer-convention-bridge","P1.B.F Stage 1 — gt_convention=premultiplied 切替で brush eval PSNR を 1.67 → 31.33 dB に回復、coupling 解消実証",[12,13,14],[223,468,140,469,243,470,245,453,471,472],"phase-b","milestone-m2","trainer","smoke","hypothesis-confirmed","P1.B + P1.F Stage 1",[475,456,476],"lego-legacybase-5k","lego-sh3-30k (P1.A.3 baseline)","+29.71 dB (brush eval 系: A.3 30k 1.667 dB → P1.B.F 5k 31.334 dB)、Stage 1 hypothesis (>10 dB) を +21 dB 上回り","5k 比較: legacy 202.4s \u002F brush 125.4s (brush -38% 高速、splats 77.6k → 93.9k だが GPU loss は同等)","hypothesis-confirmed-stage-2-go","P1.A.3 で `splat-rs trainer が white-bg target で学習 → 背景を opaque-white splat で埋める → brush 流 eval (bg=ZERO 比較) で MSE≈1 崩壊` と診断された coupling を、**GT loader を premultiplied 経路に切替えるだけ** で解消できるか 5k smoke で検証。同一 hyperparameter (`2026-05-22-2155-lego-sh3-30k.toml` の iter のみ 5k 短縮) で `data.gt_convention=white_bg` vs `data.gt_convention=premultiplied` を独立 training し、各 final.ply を 2 通り convention で eval (4 cell)。結果: brush trainer × brush eval = **31.334 dB**、legacy trainer × brush eval = 1.628 dB と完全に対比、coupling が双方向に存在することも symmetry test (brush trainer × legacy eval = 1.595 dB) で確定。5k 段階で既に B-N 30k baseline (24.88 dB legacy) を **brush eval 系で +6.5 dB 超え**、brush 公称 37 dB との gap は -5.7 dB のみ。Stage 1 hypothesis (10+ dB) を 21 dB 上回り、coupling 解消が brush parity への critical path であることを定量実証。実装は `splat-cli\u002Fsrc\u002Fconfig.rs` に `data.gt_convention: GtConvention` enum 追加 (default=`WhiteBg`、既存 configs 完全互換) + `train.rs` の train\u002Fval load を `load_nerf_synthetic_with_convention` に切替、合計 4 file の最小差分。loss kernel (`loss.metal:31-88`) は変更不要 (n_total=W·H·4 が α channel を含み、premultiplied target の α=0 領域が `rendered α (=1-T) → 0` の natural pressure を提供、brush の match_alpha 機構と同等効果)。","\u002Ffindings\u002Fp1-b-f-trainer-convention-bridge\u002F",{"id":483,"title":484,"date":358,"status":8,"polarity":35,"category":10,"axes":485,"tags":486,"task_code":488,"related_runs":489,"delta_psnr":492,"delta_wallclock":493,"rank":27,"verdict":494,"impact_summary":495,"detail_path":496},"p1-d-opacity-decay-smoke","P1.D opacity decay 5k smoke — splats -11.6%、PSNR +0.38 dB の同時改善",[12,14],[223,104,246,487,271,147,471],"splat-count-reduction","P1.D opacity-decay (Phase D core)",[276,490,491],"lego-brushcompat-base-5k (Stage 1 baseline 31.31 dB \u002F 93,948 splats)","lego-brushcompat-base-30k (Stage 2 35.18 dB \u002F 846,689 splats)","+0.38 dB vs Stage 1 baseline 5k (31.308 → 31.689)","+23% vs Stage 1 5k (2m 5s → 2m 34s、host RMW overhead、N で線形)","accepted-go-30k","brush の `refine_splats()` (train.rs:611-619) と同じ sigmoid-space formula で opacity decay を refine cadence に統合: `new_opac = sigmoid(raw) - rate*(1-train_t)` → `clamp(1e-12, 1-1e-12)` → `inv_sigmoid`。5k Lego smoke で PSNR は維持以上 (31.31 → 31.69 dB、+0.38 dB)、splats は **-11.6%** 削減 (93,948 → 83,093)、wallclock は +23% (1500 iter で全 splat 触る host loop が支配的、N=83k で問題ない範囲)。これにより 30k に進めば brush 282k 帯 (Stage 2 の 846k からの大幅削減) + PSNR ≥ 34 dB の同時達成が射程に入る。axis 1 (native Metal) ではなく axis 3 (unified memory CPU RMW) を活用した実装で、refine 周辺の O(N)\u002Frefine_every オペレーションには合理的選択 (Metal dispatch overhead > 実 work)。","\u002Ffindings\u002Fp1-d-opacity-decay-smoke\u002F",{"id":498,"title":499,"date":358,"status":8,"polarity":9,"category":10,"axes":500,"tags":501,"task_code":506,"related_runs":507,"delta_psnr":-1,"delta_wallclock":-1,"rank":27,"verdict":508,"impact_summary":509,"detail_path":510},"p1-test-split-subset-eval","P1 test split subset eval — Lego brushcompat 30k で test 33.315 dB (n=36)、brush 37.40 dB と -4.09 dB",[12,14],[223,451,243,502,503,504,199,505],"test-split","subset-eval","apples-to-apples","generalization-gap","P1.B+F Stage 2 後続 (test split subset eval)",[295],"mixed — val parity 維持 + test split で brush 未達","Lego brushcompat 30k final.ply を test split subset (n=36\u002F200、ローカルに残っている RGB のみ) で eval すると 33.315 dB (q8) \u002F 33.241 dB (raw)。val 100 view 35.237 dB (q8) との Δ = -1.92 dB は novel view (test) vs near-train view (val) の generalization gap (brush 自身も val 32.038 → test 37.40 と +5.36 dB 上振れする方向なので、本実装は test で逆に -1.9 dB 劣化、合計の apples-to-apples diff は -4 〜 -5 dB)。brush paper 37.40 dB との差は -4.09 dB で、val ベースで主張していた `brush 超え` claim は test split に拡張すると **不成立**。n=36 (18% subset) の random subsampling bias は mean PSNR で ±1〜2 dB 程度と見積もれるが、4 dB の gap を埋めるには足りない。本 finding により P1 計画の最終判定は `val split で brush parity + α 達成、test split (novel view generalization) では brush に未達` という mixed 結果で確定。実装側のアウトプットとして `splat eval --split-file \u003CPATH>` flag が追加され、任意 transforms JSON での eval が可能になった (subset \u002F 外部 split 互換)。","\u002Ffindings\u002Fp1-test-split-subset-eval\u002F",{"id":512,"title":513,"date":514,"status":8,"polarity":94,"category":95,"axes":515,"tags":516,"task_code":519,"related_runs":520,"delta_psnr":-1,"delta_wallclock":521,"rank":522,"verdict":523,"impact_summary":524,"detail_path":525},"a-1-ssim-tile-shader-investigation","A.1 SSIM タイルシェーダ — 実装試行せず documented investigation で close","2026-05-23",[14],[98,387,125,517,518,325,107],"metal","imageblock","A.1",[],"expected -3〜5% (未検証)","mid","investigative","TBDR imageblock_data ベースの SSIM tile shader 化は render pipeline 大改修 + backward 設計 + 既存テスト 23 件への影響が大きく、卒論 time-box では見合わない。必要要件のみ記録して close。期待効果は SSIM kernel -50% \u002F trainer 全体 -3〜5%。","\u002Ffindings\u002Fa-1-ssim-tile-shader-investigation\u002F",{"id":527,"title":528,"date":514,"status":8,"polarity":94,"category":10,"axes":529,"tags":530,"task_code":535,"related_runs":536,"delta_psnr":537,"delta_wallclock":538,"rank":112,"verdict":539,"impact_summary":540,"detail_path":541},"a-10-kahan-negative","A.10 Kahan summation — Metal compiler が compensator を最適化消去",[14],[98,531,532,533,534],"kahan","metal-compiler","variance","msl","A.10",[367],0,"+0.5% (overhead のみ)","rejected","Neumaier compensated summation の compensator term は MSL compiler の algebraic optimization で消去され、loss は bit-identical。Kahan は wallclock overhead だけ残し variance reduction 効果ゼロ。","\u002Ffindings\u002Fa-10-kahan-negative\u002F",{"id":543,"title":544,"date":514,"status":8,"polarity":94,"category":10,"axes":545,"tags":546,"task_code":535,"related_runs":549,"delta_psnr":553,"delta_wallclock":554,"rank":27,"verdict":8,"impact_summary":555,"detail_path":556},"a-10-variance-baseline","A.10 variance baseline — σ ±0.32 dB \u002F range 0.885 dB を実測",[14],[98,533,547,531,548,18],"gpu-non-determinism","atomic",[367,550,551,552],"lego-variance-trial1-30k","lego-variance-trial2-30k","lego-variance-trial3-30k","σ ±0.32 dB \u002F range 0.885 dB","σ ±2.4% \u002F range 5.2%","M-3.x lego sh3 30k の PSNR variance は σ ±0.32 dB \u002F range 0.885 dB (4 run estimate)、wallclock variance は σ ±2.4% \u002F range 5.2%。原因は SIMD backward kernel の atomic_fetch_add 順序非決定性で、A.10 Kahan で消えない (compensator も bit-identical のところ)。卒論 finding として「Apple Silicon の variance band は数値精度の問題でなく GPU scheduler 由来」と確定。","\u002Ffindings\u002Fa-10-variance-baseline\u002F",{"id":558,"title":559,"date":514,"status":8,"polarity":94,"category":95,"axes":560,"tags":561,"task_code":565,"related_runs":566,"delta_psnr":-1,"delta_wallclock":-1,"rank":522,"verdict":523,"impact_summary":567,"detail_path":568},"a-11-tanks-temples-investigation","A.11 Tanks & Temples real-world シーン — 実装試行せず documented investigation で close",[12],[98,562,563,564,325,107,20],"tanks-and-temples","real-world","colmap","A.11",[],"T&T を取り込むには dataset DL 5-10GB + COLMAP SfM + trainer 入力 format 対応 + eval indicator 再設計 + long run × 数シーンが必要で 2-3 日コース。NeRF Synthetic 8 シーン整備で幅出しは達成済みのため close。","\u002Ffindings\u002Fa-11-tanks-temples-investigation\u002F",{"id":570,"title":571,"date":514,"status":8,"polarity":94,"category":95,"axes":572,"tags":573,"task_code":574,"related_runs":575,"delta_psnr":-1,"delta_wallclock":576,"rank":112,"verdict":523,"impact_summary":577,"detail_path":578},"a-6-feat-g-packed-investigation","A.6 #feat.G f16 packed Splat ROI 再評価 — kernel pair は完成、trainer integration は未着手で close",[14],[98,100,101,102,103,325,107,517],"A.6",[],"~1% (既知、bench 不実施)","Splat2DPacked kernel pair は完成 (cargo test 73\u002F73 pass) だが、trainer forward path は fp32 path のみで packed kernel を呼ぶ route がない。理論上 -39% memory traffic \u002F splat だが kernel pair 単独 bench で wallclock 効果 ~1% と既知。close。","\u002Ffindings\u002Fa-6-feat-g-packed-investigation\u002F",{"id":580,"title":581,"date":514,"status":582,"polarity":219,"category":95,"axes":583,"tags":584,"task_code":589,"related_runs":590,"delta_psnr":-1,"delta_wallclock":591,"rank":522,"verdict":523,"impact_summary":592,"detail_path":593},"a-7-icb-batching-plan","A.7 #5.32 ICB \u002F per-iter command buffer commit reduction — 実装プラン","draft",[14],[98,585,586,587,517,18,588],"icb","command-buffer","batching","plan","A.7",[367],"target -10% (未検証)","forward \u002F backward の各 chain を 1 cmd buffer に集約する simpler batching plan。期待効果 +15-30% wallclock 改善 (commit overhead 20-50% を集約)。スタイル A (Option\u003C&CommandBuffer> opt-in) で既存テスト 23 件を touch せず実装。target -10% wallclock \u002F PSNR drift \u003C 0.05 dB。","\u002Ffindings\u002Fa-7-icb-batching-plan\u002F",{"id":595,"title":596,"date":514,"status":8,"polarity":35,"category":10,"axes":597,"tags":598,"task_code":589,"related_runs":600,"delta_psnr":602,"delta_wallclock":603,"rank":522,"verdict":604,"impact_summary":605,"detail_path":606},"a-7-icb-batching-results","A.7 batched cmd buffer — wallclock -6.2% 改善 + PSNR drift -0.30 dB",[14],[98,585,586,587,517,18,599],"results",[367,601],"lego-a7-batched-30k","-0.302 dB (24.577 vs 24.879)","-6.16% (1307.26s vs 1393s = -85.74s)","accepted","scope B 限定版 (forward 末尾の extract_offsets + rasterize.forward を 1 cmd buffer、backward chain の rasterize.backward + project_backwards を 1 cmd buffer) を env SPLAT_BATCHED_FORWARD=1 で活性化。30k bench で wallclock -6.2% \u002F PSNR drift -0.30 dB、Mildly positive。期待 -6〜-12% の下限、Apple Silicon の commit overhead が予想より小さい示唆。","\u002Ffindings\u002Fa-7-icb-batching-results\u002F",{"id":608,"title":609,"date":514,"status":8,"polarity":9,"category":10,"axes":610,"tags":611,"task_code":589,"related_runs":614,"delta_psnr":619,"delta_wallclock":620,"rank":27,"verdict":377,"impact_summary":621,"detail_path":622},"a-7-multi-scene-batched","A.7 × multi-scene — batching 効果は scene 依存 (-1.6% 〜 -18.6% で 12x の幅)",[14],[98,612,585,613,46,362,18],"a-7","batched",[368,615,369,616,370,617,371,618,367,601],"chair-batched-30k","ficus-batched-30k","drums-batched-30k","hotdog-batched-30k","+0.130 dB 〜 -0.828 dB (mean -0.21 dB)","-1.6% 〜 -18.6% (mean -7.0%)","A.7 batched cmd buffer の wallclock 改善は scene 依存で chair -18.6% \u002F hotdog -5.4% \u002F drums -3.4% \u002F ficus -1.6% \u002F lego -6.16% の 5 シーン (12x の幅)。chair の突出は splat 数最大 (~130k) + scene geometry の compute\u002Fcommit ratio が高いことが要因と推測。一方 ficus \u002F drums は variance 範囲内、独立 effect 断定不可。卒論で「A.7 effective ≠ universal、scene 選択 + workload analysis 必須」と honest framing。","\u002Ffindings\u002Fa-7-multi-scene-batched\u002F",{"id":624,"title":625,"date":514,"status":8,"polarity":94,"category":10,"axes":626,"tags":627,"task_code":630,"related_runs":631,"delta_psnr":633,"delta_wallclock":634,"rank":27,"verdict":539,"impact_summary":635,"detail_path":636},"a-9-f16-forward-negative","A.9 f16 forward — half3 accumulator が underflow + cast overhead で二重 negative",[14],[98,101,628,517,629,18],"mixed-precision","underflow","A.9",[367,632],"lego-a9-f16-30k","-10.006 dB (14.873 vs 24.879)","+75.1% (2439.73s vs 1393s)","half3 per-pixel accumulator が low-T 領域 (alpha * T \u003C 6e-5) で underflow → 寄与 splat の累積消失で PSNR -10.0 dB。さらに half↔float cast が compute bound でも重く wallclock +75%。Apple Silicon SIMD は half と float が同 throughput、bandwidth bound でないので f16 化は loss-only。","\u002Ffindings\u002Fa-9-f16-forward-negative\u002F",{"id":638,"title":639,"date":514,"status":8,"polarity":35,"category":640,"axes":641,"tags":642,"task_code":650,"related_runs":651,"delta_psnr":654,"delta_wallclock":655,"rank":522,"verdict":604,"impact_summary":656,"detail_path":657},"c32-gsplat-smoke","c32 V100 gsplat smoke — NFS 共有 env を異 sm 機へ持ち込み JIT 再 build 1 回で動作確認","setup",[13],[643,644,645,646,647,471,648,649],"phase-2","gsplat","v100","c32","cuda","nfs","jit","A.3",[652,653],"gsplat-lego-1k-smoke","gsplat-lego-50-dryrun",19.81,"10.5s \u002F 1k step","NFS 共有 gsplat-env を異 sm 機 (c33 sm_86 → c32 sm_70) に持ち込み、TORCH_CUDA_ARCH_LIST=7.0 で JIT 再 build 1 回 (93s) → 即動作。Lego 1k iter で wallclock 10.5s \u002F val PSNR 19.81 dB。30k full は Phase 2b。","\u002Ffindings\u002Fc32-gsplat-smoke\u002F",{"id":659,"title":660,"date":514,"status":8,"polarity":9,"category":10,"axes":661,"tags":662,"task_code":650,"related_runs":667,"delta_psnr":670,"delta_wallclock":671,"rank":27,"verdict":523,"impact_summary":672,"detail_path":673},"c32-orig3dgs-bench","c32 V100 原著 3DGS 30k bench — A.5 三層対比表の最終 row & eval convention 乖離 finding",[13],[643,663,645,646,647,664,665,666],"original-3dgs","bench","eval-convention","abstraction-cost",[668,669],"orig3dgs-lego-1k-smoke","orig3dgs-lego-30k",28.384,"10m37s","原著 3DGS を V100 で 30k 学習 (PSNR 28.38 dB \u002F 10m37s \u002F 237k splats)。同 V100・同 30k で brush (wgpu→Vulkan) 8m24s \u002F 37.46 dB を上回れず、抽象コスト ≪ 実装最適化レベル を CUDA 機でも再確認。さらに codebase eval と paper-standard eval で 12 dB 乖離 (28.4 vs 14.6) を発見、A.5 表は eval convention 注記必須。","\u002Ffindings\u002Fc32-orig3dgs-bench\u002F",{"id":675,"title":676,"date":514,"status":8,"polarity":9,"category":10,"axes":677,"tags":678,"task_code":684,"related_runs":685,"delta_psnr":690,"delta_wallclock":691,"rank":522,"verdict":377,"impact_summary":692,"detail_path":693},"e-5-iter-scaling","E.5 iter scaling — 10k で 96.7% 品質、kerbl_exp_decay artifact で non-monotonic",[14],[98,679,680,681,682,683],"e-5","iter-scaling","lr-schedule","kerbl-exp-decay","mobile","E.5",[686,687,688,689,367],"lego-iter10000","lego-iter15000","lego-iter20000","lego-iter25000","+0.000 〜 -0.966 dB (mean -0.41 dB from 30k baseline)","-70% 〜 -18% (iter 数に比例)","10k iter で PSNR 24.007 dB を達成、30k baseline (mean 24.834) の 96.7% 品質、wallclock 1\u002F3.4。15k → 23.932、20k → 23.868、25k → 24.623 と non-monotonic で kerbl_exp_decay lr schedule の max_steps 依存性 artifact が混入。卒論モバイル含意では「10k iter で十分、追加 iter は variance noise」と言える反面、E.5 として「fair な iter scaling 比較には固定 schedule での checkpoint 取得が必要」と spec 化が必要。","\u002Ffindings\u002Fe-5-iter-scaling\u002F",{"id":695,"title":696,"date":514,"status":8,"polarity":35,"category":10,"axes":697,"tags":698,"task_code":703,"related_runs":704,"delta_psnr":709,"delta_wallclock":710,"rank":27,"verdict":604,"impact_summary":711,"detail_path":712},"e-6-capacity-scaling","E.6 capacity scaling — 50k〜1M で PSNR variance band 内、本質的 splat 数 ≈ 85k で plateau",[14],[98,699,700,683,701,702],"e-6","capacity-scaling","plateau","regularization","E.6",[705,706,707,708,367],"lego-cap50000-30k","lego-cap100000-30k","lego-cap200000-30k","lego-cap500000-30k","±0.44 dB (variance band 内、有意差なし)","-3% 〜 -4% (capacity 小で僅かに速い)","lego では capacity 50k から 1M まで PSNR は 24.605 〜 25.275 dB で variance σ ±0.32 dB band 内、capacity effect は実質ゼロ。final splats は 50k 飽和 → 81k → 85k → 84k と「本質的 ~85k で plateau」を実証。モバイル制約下で capacity 50-100k を choose しても 1M と同等品質、卒論モバイル章の重要数値。capacity 大きいほど refine が無駄 split で variance noise を増やす副作用も観測。","\u002Ffindings\u002Fe-6-capacity-scaling\u002F",{"id":714,"title":715,"date":514,"status":8,"polarity":219,"category":716,"axes":717,"tags":718,"task_code":-1,"related_runs":725,"delta_psnr":-1,"delta_wallclock":-1,"rank":522,"verdict":604,"impact_summary":726,"detail_path":727},"implementation-metrics","実装規模メトリクス (卒論 §4.1 用)","tables",[12,13,14],[719,720,721,722,723,724],"metrics","loc","tests","thesis-section-4.1","shaders","tooling",[],"splat workspace は Rust 8,467 + Metal 2,230 LOC (合計 ~10.7k)、67 unit test 完備、findings ノート 10 件と Cloudflare Pages + R2 配信が稼働。卒論 §4.1 (実装規模) と §4.1.3 (shader 内訳) への直接転記に使える。","\u002Ffindings\u002Fimplementation-metrics\u002F",{"id":729,"title":730,"date":514,"status":8,"polarity":9,"category":10,"axes":731,"tags":732,"task_code":650,"related_runs":734,"delta_psnr":735,"delta_wallclock":736,"rank":27,"verdict":523,"impact_summary":737,"detail_path":738},"m4-brush-bench","M4 Max 上 brush (wgpu→Metal) の 30k baseline — wgpu 抽象は自作より速かった",[13],[643,386,733,17,19,666],"wgpu",[367],"+11.13 dB (brush 比優位)","−65.6% (brush の方が速い)","wgpu 抽象は自作 native より遅いはず、という想定が逆。同一 M4 Max 上で brush (wgpu) が 9m08s \u002F 37.40 dB、自作 (Metal 直) が 26m32s \u002F 26.27 dB。第 2 軸 (抽象コスト定量化) の主張を再 framing する必要が確定。","\u002Ffindings\u002Fm4-brush-bench\u002F",{"id":740,"title":741,"date":514,"status":8,"polarity":94,"category":10,"axes":742,"tags":743,"task_code":748,"related_runs":749,"delta_psnr":756,"delta_wallclock":-1,"rank":27,"verdict":523,"impact_summary":757,"detail_path":758},"mcmc-noise-calibration","A.2 MCMC 検証で発覚した noise gate 不整合と L1 全滅 segfault",[12],[98,744,745,47,746,471,747],"mcmc","sgld-noise","regression","segfault","A.2",[750,751,752,753,754,755],"lego-mcmc-30k","mcmc-l1-only-smoke","mcmc-noise-sh3-smoke","mcmc-combo-iter-bisect","mcmc-combo-500","mcmc-l1-500","2.5 dB (sh=3 + 全部入り、50 iter で発散)","SGLD gate を paper 式に揃えた結果 mean_noise_weight が ~50-150x スケールズレし、calibration 補正 (5e5→5e3) でも iter 240 前後で SIGSEGV。Bisect smoke で真因が L1 全滅 → refine prune → 空 buffer crash というアルゴリズム順序問題と判明。Calibration ≠ correctness。","\u002Ffindings\u002Fmcmc-noise-calibration\u002F",{"id":760,"title":761,"date":762,"status":8,"polarity":219,"category":640,"axes":763,"tags":764,"task_code":650,"related_runs":769,"delta_psnr":-1,"delta_wallclock":770,"rank":522,"verdict":604,"impact_summary":771,"detail_path":772},"c33-cuda-setup-notes","c33 CUDA env setup — gsplat \u002F orig 3DGS \u002F brush の 3 env を A6000 + NFS 共有ホームで構築","2026-05-22",[13],[643,640,647,765,766,644,663,386,767,768,648],"a6000","c33","conda","rust",[],"~18.6 GB disk","c33 (A6000, sm_86) に gsplat-env \u002F orig3dgs-env \u002F Rust + brush の 3 env を build。NFS 共有ホーム経由で c32 \u002F c34 にも継承可能。3 env とも import \u002F --help \u002F --version レベルで動作確認 OK。実 training (Lego 30k) は Phase 2 で。","\u002Ffindings\u002Fc33-cuda-setup-notes\u002F",{"id":774,"title":775,"date":762,"status":582,"polarity":9,"category":716,"axes":776,"tags":777,"task_code":781,"related_runs":782,"delta_psnr":795,"delta_wallclock":796,"rank":27,"verdict":377,"impact_summary":797,"detail_path":798},"final-ablation-table","A.5 Final Ablation Table — brush vs 自作 + パラメータ ablation",[12,13,14],[98,266,778,779,744,46,386,647,780],"table","sh-degree","resolution-scaling","A.5",[783,784,785,367,750,786,787,788,789,790,791,792,729,793,659,638,794],"lego-sh0-30k","lego-sh1-30k","lego-sh2-30k","lego-res200-30k","lego-res400-30k","lego-res800-30k","chair-sh3-30k","ficus-sh3-30k","drums-sh3-30k","hotdog-sh3-30k","c32-brush-bench","phase5-step31-x-30k","-12.6 dB (自作 24.84 vs brush 37.46)","brush は自作の 0.39× (= 2.59x 速い、同 M4 Max)","三層対比 (自作 M4 \u002F brush V100 \u002F CUDA V100) で wgpu→Vulkan が 37.46 dB \u002F 8m24s と CUDA orig (28.4) \u002F gsplat (32.9) より高 PSNR + 高速、自作 24.84 \u002F 23m40s に対し brush wgpu→Metal が 37.40 \u002F 9m08s。「wgpu 抽象は重い」の素朴予想が 2 機種で逆転し、第 2 軸の主張を『抽象コスト \u003C 実装最適化レベル』に再 framing 必須。","\u002Ffindings\u002Ffinal-ablation-table\u002F",{"id":800,"title":801,"date":762,"status":582,"polarity":219,"category":95,"axes":802,"tags":803,"task_code":748,"related_runs":808,"delta_psnr":-1,"delta_wallclock":-1,"rank":522,"verdict":523,"impact_summary":809,"detail_path":810},"mcmc-3-defects","A.2 MCMC 法の完全実装 — 3 設計欠陥の整理 (spec)",[12],[98,744,804,95,805,806,807],"sgld","relocation","scale-l1","opacity-l1",[750],"本実装の MCMC が論文と乖離している 3 箇所 (5% incremental growth 欠如、λ_Σ\u002Fλ_o covariance\u002Fopacity 正則化欠如、relocation が refine prune に便乗) を整理し、A.2 の修正項目と検証条件を確定させた spec。","\u002Ffindings\u002Fmcmc-3-defects\u002F",{"id":812,"title":813,"date":762,"status":8,"polarity":94,"category":814,"axes":815,"tags":816,"task_code":825,"related_runs":826,"delta_psnr":-1,"delta_wallclock":-1,"rank":27,"verdict":604,"impact_summary":827,"detail_path":828},"negative-findings-chapter","§5.4 Negative findings — 失敗から得た 3 つの発見 (卒論章ドラフト)","chapter",[12,13,14],[817,818,814,819,744,820,821,822,823,824],"thesis-draft","negative-findings","scale-reg","argbuffer","queue-reuse","m3x","honest-reject","methodology","§5.4",[367],"3 ストーリー (scale_reg 3 連敗 \u002F MCMC 4 連敗 \u002F #5.31 ArgBuffer 却下 → M-3.x 偶発発見) を「事前 commit gate に基づく honest reject が engineering 上の時間配分を保護し、失敗の数字自体が次に必要な infrastructure の signal を encode する」という方法論として整理。M-3.x baseline と第 3 軸 (unified memory) narrative はいずれもこの経路で確定。","\u002Ffindings\u002Fnegative-findings-chapter\u002F",{"id":830,"title":831,"date":762,"status":582,"polarity":219,"category":724,"axes":832,"tags":833,"task_code":839,"related_runs":840,"delta_psnr":-1,"delta_wallclock":-1,"rank":112,"verdict":523,"impact_summary":841,"detail_path":842},"refs-bib-sync-todo","D.8 refs.bib 同期 TODO — Zotero 経由で追加すべき文献の備忘録",[],[834,835,836,837,744,838],"bib","zotero","todo","refs","survey","D.8",[],"refs.bib は Zotero auto-export なので手動編集禁止。A.2 MCMC 関連 (Kheradmand 2024) と D.9 Phase 1D サーベイ補追を Zotero 側に取り込む TODO リスト。","\u002Ffindings\u002Frefs-bib-sync-todo\u002F",{"id":844,"title":845,"date":846,"status":8,"polarity":9,"category":847,"axes":848,"tags":849,"task_code":855,"related_runs":856,"delta_psnr":858,"delta_wallclock":859,"rank":27,"verdict":377,"impact_summary":860,"detail_path":861},"phase-c-migration-gate","Phase C migration gate — splat workspace で M-3.x を再現する 30k 単発比較","2026-04-30","validation",[12,13,14],[850,851,19,852,853,854],"phase-c","migration-gate","splat-workspace","variance-band","30k","Phase C",[857,794],"m3x-30k-migration-gate","-0.16 dB (band 内)","+9.6% (23m40s vs 21m37s)","新 splat workspace は M-3.x の training quality (PSNR 24.842 dB) を variance band 内で再現、全 7 kernel + refine + Adam + eval + PLY save が動作。wallclock は +9.6% の軽微 regression (steady-state では +4%) で許容内。","\u002Ffindings\u002Fphase-c-migration-gate\u002F",{"id":863,"title":864,"date":846,"status":8,"polarity":9,"category":865,"axes":866,"tags":867,"task_code":872,"related_runs":873,"delta_psnr":-1,"delta_wallclock":875,"rank":522,"verdict":523,"impact_summary":876,"detail_path":877},"phase5-step30-profile","Phase 5 step 30 — Instruments \u002F Metal System Trace 分析結果","speed",[14],[98,868,869,870,19,328,871],"step-30","instruments","metal-system-trace","fusion-reject","#5.30",[874],"phase5-step30","B-mini: -1% (noise floor)","30s Metal System Trace で 14,909 encoder \u002F iter 40 encoder を観測。当初の「STIME 70% = sync overhead」解釈は B-mini プロト (scatter wait 削除、\u003C 1% 改善) で撤回。真の breakdown は GPU compute ~70% \u002F CPU encoding ~30%、dispatch fusion ROI は小さく Phase 4 後続 (C\u002FD\u002FF) 進行に戻る判断。","\u002Ffindings\u002Fphase5-step30-profile\u002F",{"id":879,"title":880,"date":846,"status":8,"polarity":35,"category":865,"axes":881,"tags":882,"task_code":887,"related_runs":888,"delta_psnr":-1,"delta_wallclock":-1,"rank":27,"verdict":604,"impact_summary":890,"detail_path":891},"phase5-step30b-timing","Phase 5 step 30b — kernel-by-kernel timing 計測結果",[14],[98,883,329,884,885,19,886],"step-30b","rasterize-backwards","atomic-bottleneck","hotspot","#5.30b",[889],"phase5-step30b","kernel-level GPU timer で rasterize_backwards が 24.1 ms\u002Fcall \u002F 52.1% total と確定 dominant。atomic float add が律速と判定し、step 33 SIMD prefix sum reduction prototype の最有力ターゲットを確定。期待 ROI は 50% 削減で iter -13%、80% 削減で -21%。","\u002Ffindings\u002Fphase5-step30b-timing\u002F",{"id":893,"title":894,"date":846,"status":8,"polarity":9,"category":865,"axes":895,"tags":896,"task_code":902,"related_runs":903,"delta_psnr":-1,"delta_wallclock":905,"rank":27,"verdict":377,"impact_summary":906,"detail_path":907},"phase5-step31-encoding-profile","Phase 5 #5.31 — CPU side profile + queue reuse 効果 + 真の bottleneck 同定",[13,14],[98,897,898,821,899,900,901,19],"step-31","arg-buffer","readback","unified-memory","encoding-profile","#5.31",[904],"phase5-step31-profile","queue reuse: -13.7% \u002F ArgBuffer: 0.5% (reject)","ArgBuffer は CPU encoding 寄与 0.5% で 3% gate 不通過 → reject。queue reuse refactor 単独で -13.7% wallclock (1.14 ms\u002Fiter 削減が autorelease pool 圧縮を伴って効果増幅)。真の bottleneck は host-side loss compute + readback ~10.5 ms\u002Fiter (= 24-26% wallclock potential)、第 3 軸 narrative 最強の #5.31.x GPU loss kernel + no-readback を次着手に再定義。","\u002Ffindings\u002Fphase5-step31-encoding-profile\u002F",{"id":909,"title":910,"date":846,"status":8,"polarity":35,"category":865,"axes":911,"tags":912,"task_code":916,"related_runs":917,"delta_psnr":918,"delta_wallclock":919,"rank":27,"verdict":604,"impact_summary":920,"detail_path":921},"phase5-step31-x-gpu-loss","Phase 5 #5.31.x — GPU loss kernel + no-readback pipeline (wallclock -26.9% + variance 解明)",[14],[98,822,913,900,914,533,915,517],"gpu-loss","host-pump","no-readback","#5.31.x",[367],"variance 内 (band 25.0 ± 0.6 dB)","-26.9% (2k) \u002F -14〜-19% (30k, n=4)","host pump pipeline を排除し forward\u002Floss\u002Fbackward を GPU buffer で連結。2k iter wallclock -26.9% (42.5 → 31.07 ms\u002Fiter)、30k では n=4 variance test で wallclock -14〜-19% を再現。当初の PSNR -0.65 dB regression 主張は撤回 (band 25.0 ± 0.6 dB 内)。第 3 軸 (unified memory) narrative の核。","\u002Ffindings\u002Fphase5-step31-x-gpu-loss\u002F",1782449787765]