[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"run:lego-c3-tile-counting-12500":3,"run-findings:lego-c3-tile-counting-12500":136},{"run":4,"config":21,"metrics":81,"curve":87,"assets":135},{"id":5,"title":5,"subtitle":6,"eyebrow":7,"date":8,"workspace":9,"commit":10,"tags":11,"verdict":20},"lego-c3-tile-counting-12500","C3 (per-tile counting sort) GPU gate — full 12.5k quality guard run vs lego-bench-calib-checkpoints baseline (PSNR 36.226 dB \u002F 360s)","Run summary · P1 Phase G.5 final Pareto integration","2026-08-16","splat","b053e35",[12,13,14,15,16,17,18,19],"p1-g","phase-g","early-stop","sh-progressive","stacked","lego-15k","brush-compat","premultiplied","partial",[22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,78],{"key":23,"value":24},"dataset","\u002FUsers\u002Fotkrickey\u002Fdev\u002F3dgs-workspace\u002Fdatasets\u002Fnerf_synthetic\u002Flego",{"key":26,"value":27},"gt_convention","Premultiplied",{"key":29,"value":30},"iterations","12,500",{"key":32,"value":33},"seed","42",{"key":35,"value":36},"capacity","1,000,000 splats",{"key":38,"value":39},"sh_degree","3",{"key":41,"value":42},"loss","L1Ssim",{"key":44,"value":45},"lambda","0.200",{"key":47,"value":48},"ssim","window=7 sigma=1",{"key":50,"value":51},"backend.backward","Simd",{"key":53,"value":54},"backend.loss_path","Gpu",{"key":56,"value":57},"backend.emit_pairs","Original",{"key":59,"value":60},"backend.forward","F32",{"key":62,"value":63},"backend.dispatch","PerStage",{"key":65,"value":66},"backend.radix_scan","Cpu",{"key":68,"value":69},"backend.binning","Resident",{"key":71,"value":72},"backend.tile_sort","TileCounting",{"key":74,"value":75},"backend.target_cache","true",{"key":77,"value":75},"backend.shader_fast_math",{"key":79,"value":80},"os_build","26.5.2 (25F84)",{"psnr":82,"wallclock":83,"wallclock_regress":84,"splats":85,"final_loss":86},36.19035339355469,"5m 29s",false,405293,"5.627568e-3",{"loss":88,"splats":119},{"iters":89,"values":104},[90,91,92,93,94,95,96,97,98,99,100,101,102,103],1,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000,11000,12000,12500,[105,106,107,108,109,110,111,112,113,114,115,116,117,118],0.5938452482223511,0.05456414818763733,0.014257408678531647,0.008370422758162022,0.007427549920976162,0.006554212421178818,0.006258824374526739,0.006042285822331905,0.0058889081701636314,0.005782751366496086,0.005698410794138908,0.005699542351067066,0.005601514130830765,0.00562756834551692,{"iters":120,"values":121},[90,91,92,93,94,95,96,97,98,99,100,101,102,103],[122,123,124,125,126,127,128,129,130,131,132,133,134,85],5207,8201,181252,295717,347368,373183,387230,395154,399371,401553,402600,403486,404637,{"has_renders":84,"has_splat":84},[137],{"id":138,"title":139,"date":8,"status":140,"polarity":141,"category":142,"axes":143,"tags":144,"task_code":156,"related_runs":157,"delta_psnr":159,"delta_wallclock":160,"rank":161,"verdict":162,"impact_summary":163,"detail_path":164},"p2-c3-tile-counting","C3 per-tile counting sort — parity PASS \u002F PSNR guard PASS だが replay 有意差なしで棄却 (数値つき)","stable","negative","experiment",[90],[145,146,147,148,149,150,151,152,153,154,155],"gap-sweep","phase-2","c3","tile-binning","counting-sort","bitonic-sort","gpu-gate","rejected","bench-harness","lego","determinism","C3 per-tile counting sort worktree 統合 + GPU gate (2026-08-16 GPU 専有タスク)",[5,158],"lego-bench-calib-checkpoints","12.5k full run PSNR guard: 36.226 → 36.190 dB = -0.036 dB (±0.1 dB guard 内、PASS)","replay bench final n=10: GlobalRadix 32.383ms\u002Fiter (σ2.23%) vs TileCounting 33.403ms\u002Fiter (σ4.60%) = **+3.15% (非有意、閾値 4.45%)**。iter5000 n=3: +0.38% (非有意)。radix_sort kernel 単体: final n=10 で 5721us→6151us (+7.5%)。full run 単体 (n=1): 360.96s→329.11s (-8.8%、非有意判定と矛盾、confound と判断し不採用)","medium","rejected-no-significant-speedup-flag-retained","別 worktree で実装済みだった C3 (per-tile counting sort) を main の util.rs 分割後の構造 (bench harness commit fe68cfa 由来) に手で移植し統合。smoke compile + unit test 6 本 + 既存 106 test 全 pass、build warning 0。\u003Ccode>splat bench --parity\u003C\u002Fcode> で数学的正しさを確認 (tile_offsets byte-exact、5 grad buffer tol 1e-4 以内 PASS)。しかし fixed-workload replay (final checkpoint n=10) では \u003Cstrong>+3.15%\u003C\u002Fstrong> ― 閾値 max(2σ,1%)=4.45% 未満で有意な高速化なし。radix_sort kernel 単体も +7.5% 遅い。12.5k full run の PSNR guard は通過 (-0.036 dB) したが、同じ full run の wallclock は -8.8% と replay の非有意判定に矛盾しており、これは既知の full-run 分散 confound と判断し gate 判定には採用しない (むしろ bench harness の存在意義を裏付ける実例)。default flip は見送り、TileCounting は BackendConfig flag として保持 (正しさは証明済みなので将来 CPU scan を GPU 化する等の改良余地があれば再挑戦可能)。副次効果として sort key \u003Ccode>(depth_bits&lt;&lt;32)|splat_idx\u003C\u002Fcode> により depth-tie 非決定性を解消した。","\u002Ffindings\u002Fp2-c3-tile-counting\u002F",1790227323959]