Phase 4 D3: alloc gate shape (env-gated)
This commit is contained in:
@ -95,6 +95,12 @@ HAKMEM_WRAP_ENV_CACHE=1
|
||||
```
|
||||
- **Status**: ❌ FROZEN(Mixed **-1.44%** regression)→ default OFF, do not pursue
|
||||
- **Reason**: TLS overhead > benefit in Mixed workload
|
||||
- **Phase 4 D3(Alloc Gate Shape)** 🔬 NEUTRAL (research only):
|
||||
```sh
|
||||
HAKMEM_ALLOC_GATE_SHAPE=1
|
||||
```
|
||||
- **Status**: NEUTRAL(Mixed 10-run: Mean **+0.56%** / Median **-0.5%**)→ default OFF
|
||||
- **Effect**: `tiny_alloc_gate_fast()` の分岐形を簡素化(`tiny_route_get()` と release logging branch を回避)
|
||||
- v2 系は触らない(C7_SAFE では Pool v2 / Tiny v2 は常時 OFF)。
|
||||
- FREE_POLICY/THP を触る実験例(現在の HEAD では必須ではなく、組み合わせによっては微マイナスになる場合もある):
|
||||
```sh
|
||||
|
||||
@ -13,6 +13,12 @@ Phase 3 は **D1 昇格 / D2 凍結**で完全閉鎖。次の “芯” は allo
|
||||
- Frozen / ignore:
|
||||
- `HAKMEM_WRAP_ENV_CACHE=1`(D2, NO-GO)
|
||||
|
||||
## Status(2025-12-13)
|
||||
|
||||
- D3 実装: ✅ 完了(`core/box/tiny_alloc_gate_shape_env_box.h`, `core/box/tiny_alloc_gate_box.h`)
|
||||
- Mixed A/B(10-run, iter=20M, ws=400): Mean **+0.56%**(Median -0.5%)→ **NEUTRAL**
|
||||
- 判定: **default OFF の research box として freeze**(本線プリセットへ昇格しない)
|
||||
|
||||
## Step 0: perf で “GO 条件” を満たしているか確認
|
||||
|
||||
判定基準: `tiny_alloc_gate_fast` が **self% ≥ 5%**。
|
||||
@ -71,3 +77,8 @@ HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_SHAPE=1 \
|
||||
- NO-GO/NEUTRAL の場合:
|
||||
- D3 は research box として freeze(default OFF)
|
||||
- 本線は汚さない(プリセット昇格はしない)
|
||||
|
||||
## Next(次の指示)
|
||||
|
||||
- `perf report --no-children` で self% ≥ 5% を 1 つ選び、同じ “分岐形(shape)” 最適化を当てる
|
||||
- 現状の候補: `malloc` / `free` / `tiny_alloc_gate_fast`(ただし D3 は NEUTRAL なので “意味のある形” 以外は追わない)
|
||||
|
||||
@ -216,6 +216,13 @@ HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_SHAPE=1 \
|
||||
./bench_random_mixed_hakmem 20000000 400 1
|
||||
```
|
||||
|
||||
### Results(2025-12-13, Release, 10-run)
|
||||
|
||||
- Baseline(`HAKMEM_ALLOC_GATE_SHAPE=0`): Mean **47.55M** ops/s, Median **48.08M**
|
||||
- Optimized(`HAKMEM_ALLOC_GATE_SHAPE=1`): Mean **47.82M** ops/s, Median **47.84M**
|
||||
- Δ(Mean): **+0.56%**(Median -0.5%)→ **NEUTRAL**
|
||||
- 動作確認: `HAKMEM_ALLOC_GATE_SHAPE=1` で `tiny_route_get()` 経由の `[REL_C7_ROUTE]` ログが消える(bypass を確認)
|
||||
|
||||
### Success Criteria
|
||||
|
||||
**GO**: Mean gain >= +1.0%, Median >= +0.0%
|
||||
@ -231,6 +238,8 @@ HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_SHAPE=1 \
|
||||
- **Freeze and archive** (default OFF, do not pursue)
|
||||
- Document regression cause, learn for future optimizations
|
||||
|
||||
**Decision(この変更)**: **NEUTRAL**(default OFF の research box として保持)
|
||||
|
||||
## 期待値
|
||||
|
||||
### Performance Gain Estimation
|
||||
|
||||
Reference in New Issue
Block a user