# CURRENT_TASK(Rolling, SSOT) ## 0) 今の「正」 - **性能比較の正**: FAST PGO build(`make pgo-fast-full` → `bench_random_mixed_hakmem_minimal_pgo`)✓ **Phase 68 昇格済み** (seed/WS diversified) - **安全・互換の正**: Standard build(`make bench_random_mixed_hakmem`) - **観測の正**: OBSERVE build(`make perf_observe`) - **スコアカード**: `docs/analysis/PERFORMANCE_TARGETS_SCORECARD.md`(M1 達成・超過: 50.93% vs 50% target) - **計測の正(Mixed 10-run)**: `scripts/run_mixed_10_cleanenv.sh`(`ITERS=20000000 WS=400`) ## 1) 現状(要点) - Phase 64(backend prune / DCE): **NO-GO**(-4.05%) → layout tax 由来 - Phase 63(FAST_PROFILE_FIXED): **研究用ビルド**として保持(FAST の gate を compile-time 固定) - Phase 65(Hot Symbol Ordering): **BLOCKED**(GCC+LTO の制約で不公平/不可能)→ `docs/analysis/PHASE65_HOT_SYMBOL_ORDERING_1_RESULTS.md` - Phase 66(PGO, GCC+LTO): **GO** ✓ - 検証: 3回独立実行で +3.0% mean, all >+2.89%, 分散 <±1% - Baseline: `bench_random_mixed_hakmem_minimal_pgo` = 60.89M ops/s = 50.32% (initial PGO) - Phase 68(PGO training set 最適化): **GO & 昇格完了** ✓ - 検証: 10-run で +1.19% vs Phase 66 (GO: +1.0% threshold超過) - 新 baseline: `bench_random_mixed_hakmem_minimal_pgo` (upgraded) = 61.614M ops/s = **50.93%** (50% target 超過、+0.93pp) ## 2) 次の指示書(Active) **Phase 68: PGO training set 最適化** ✅ **完了** - ✓ seed/WS diversification: WS (3→5パターン), seed (1→3パターン) - ✓ 10-run 検証: +1.19% vs Phase 66 (GO threshold +1.0% 超過) - ✓ Baseline 昇格: 61.614M ops/s = 50.93% (M1 target 50% を +0.93pp 超過) - ✓ スコアカード・CURRENT_TASK 更新完了 --- **Phase 67a: Layout Tax 法医学(変更最小)** ✅ **完了・実運用可能** - ✓ `scripts/box/layout_tax_forensics_box.sh` 新規(測定ハーネス) - Baseline vs Treatment の 10-run throughput 比較 - perf stat 自動収集(cycles, IPC, branches, branch-misses, cache-misses, iTLB/dTLB) - Binary metadata(サイズ、セクション構成) - ✓ `docs/analysis/PHASE67A_LAYOUT_TAX_FORENSICS_SSOT.md` 新規(診断ガイド) - 判定ルール: GO (+1% 以上) / NEUTRAL (±1%) / NO-GO (-1% 以下) - "症状→原因候補" マッピング表 * IPC 低下 3%↑ → I-cache miss / code layout dispersal * branch-misses ↑10%↑ → branch prediction penalty * dTLB-misses ↑100%↑ → data layout fragmentation - Phase 64 case study(-4.05% の root cause: IPC 2.05 → 1.98) - 運用ガイドライン **使用例**: ```bash ./scripts/box/layout_tax_forensics_box.sh \ ./bench_random_mixed_hakmem_minimal_pgo \ ./bench_random_mixed_hakmem_fast_pruned # or Phase 64 attempt ``` 成果: 「削る系」NO-GO が出た時に、どの指標が悪化しているかを **1回で診断可能** → 以後の link-out/大削除を事前に止められる --- **Phase 67b(後続): 境界inline/unrollチューニング** - **注意**: layout tax リスク高い(Phase 64 reference) - **前提**: Top 50 実行確認が必須 - 触るなら最小限・高確度だけ(例: C0 allocator inline candidates のみ) **注記**: 研究箱の削除は今やらない(link-out/削除が layout tax を起こす前例が強いので、compile-out維持が正解) **M2 への道 (55% target)**: - PGO はもう +1% 程度の改善上限に達した可能性(profile training set 枯渇) - 次のレバーは: (1) layout tax 排除 (Phase 67a の基盤で調査可能) / (2) structural changes(box design) / (3) compiler flags tuning ## 3) アーカイブ - 詳細ログ: `CURRENT_TASK_ARCHIVE_20251210.md` - 直近整理前スナップショット: `docs/analysis/CURRENT_TASK_ARCHIVE.md`