Phase ALLOC-TINY-FAST-DUALHOT-1: WIP (regression), FREE DUALHOT confirmed +13%

**ALLOC-TINY-FAST-DUALHOT-1** (this phase):
- Implementation: malloc_tiny_fast() C0-C3 early-exit with policy snapshot skip
- ENV: HAKMEM_TINY_ALLOC_DUALHOT=0/1 (default OFF)
- A/B Result: -1.17% median regression (Mixed, 10-run)
- Root Cause: Branch prediction penalty on C4-C7 outweighs policy skip benefit
- Decision: Freeze as research box (default OFF)
- Difference from FREE: ALLOC requires structural changes (per-class paths)

**FREE-TINY-FAST-DUALHOT-1** (verified):
- A/B Confirmation: +13.00% improvement (42.08M → 47.81M ops/s, Mixed, 10-run)
- Success Criteria: +2% target ACHIEVED
- Health Check: PASS (verify_health_profiles.sh, ENV OFF/ON)
- Safety: HAKMEM_TINY_LARSON_FIX guard in place
- Decision: Promotion to MIXED_TINYV3_C7_SAFE profile candidate

**Next Steps**:
- Profile adoption of FREE DUALHOT for MIXED workload
- No further deep-dive on ALLOC optimization (deferred to future phases)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-13 05:10:45 +09:00
parent 0a7400d7d3
commit b2724e6f5d
3 changed files with 53 additions and 6 deletions

View File

@ -27,6 +27,17 @@ DUALHOT optimized の perf で **alloc 側が次のボトルネック**に移行
2) `core/front/malloc_tiny_fast.h``malloc_tiny_fast()``class_idx<=3` early-exit を追加
3) health + 10-run A/BMixed / C6-heavy
### Status: Phase ALLOC-TINY-FAST-DUALHOT-1 FROZEN ✅ (2025-12-13)
- **Safety**: healthENV OFF/ONPASS
- **Mixed A/B10-run, iter=100M, ws=400**: median **-1.17%**(許容範囲内だが勝ち筋ではない)
- **C6-heavy A/B10-run, 10M ops**: ±1% 程度でニュートラル
- **Decision**: default OFF のまま freezeopt-in 研究用)
次の攻め先(候補):
- `malloc` / Front Gate の “構造的” オーバーヘッドPGO/定数化・include/inline の整理で枝を消す)
- Free 側は `FREE-TINY-FAST-DUALHOT-1` の昇格手順HOTCOLD=1 前提のため、標準プロファイル採用の可否を決める)
---
## 前フェーズ: Phase POOL-MID-DN-BATCH 完了 ✅(研究箱として freeze 推奨)