Phase 4 D3 Design: Alloc Gate Shape
This commit is contained in:
@ -29,24 +29,16 @@ perf report --stdio --no-children
|
||||
|
||||
## Step 1: D3 実装(Box Theory)
|
||||
|
||||
設計メモ(SSOT): `docs/analysis/PHASE3_D3_ALLOC_GATE_SPECIALIZATION_1_DESIGN.md`
|
||||
設計メモ(SSOT): `docs/analysis/PHASE4_D3_ALLOC_GATE_SPECIALIZATION_1_DESIGN.md`
|
||||
|
||||
### 箱割り(必須)
|
||||
|
||||
- L0: ENV(戻せる)
|
||||
- `HAKMEM_ALLOC_GATE_LEGACY_ONLY=0/1`(default 0)
|
||||
- L1: Safe-Enable 判定(境界 1 箇所)
|
||||
- Mixed 本線が “LEGACY-only” であることを 1 回だけ確認し、成立した場合のみ fast 経路へ
|
||||
- Learner ON の場合は必ず disable(route が動的更新されるため)
|
||||
- L2: Integration(境界 1 箇所)
|
||||
- `tiny_alloc_gate_fast()` の入口でのみ差し替え(既存の意味は変えない)
|
||||
|
||||
### Safe-Enable 条件(Fail-Fast ではなく “自動 disable”)
|
||||
|
||||
以下のどれかに該当したら D3 は **即 disable** して既存経路へフォールバック:
|
||||
- learner が有効(例: `HAKMEM_SMALL_LEARNER_V7_ENABLED=1`)
|
||||
- route_kind に LEGACY 以外が混入(V7/MID/ULTRA/TINY_FIRST 等)
|
||||
- そのほか Mixed 本線の固定前提が崩れている
|
||||
- `HAKMEM_ALLOC_GATE_SHAPE=0/1`(default 0)
|
||||
- L1: Gate Shape(境界 1 箇所)
|
||||
- `tiny_alloc_gate_fast()` 内の分岐形だけを変更(意味は変えない)
|
||||
- `tiny_route_get()` を呼ばずに `g_tiny_route[]` を直接読む(release logging branch を避ける)
|
||||
- **Safety**: `g_tiny_route[ci] == ROUTE_POOL_ONLY` のときは必ず `NULL` を返す(`HAKMEM_TINY_PROFILE=hot/off` を壊さない)
|
||||
|
||||
## Step 2: A/B(GO/NO-GO)
|
||||
|
||||
@ -54,12 +46,12 @@ Mixed 10-run(推奨: iter=20M, ws=400, 1T):
|
||||
|
||||
- Baseline:
|
||||
```bash
|
||||
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_LEGACY_ONLY=0 \
|
||||
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_SHAPE=0 \
|
||||
./bench_random_mixed_hakmem 20000000 400 1
|
||||
```
|
||||
- Optimized:
|
||||
```bash
|
||||
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_LEGACY_ONLY=1 \
|
||||
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE HAKMEM_ALLOC_GATE_SHAPE=1 \
|
||||
./bench_random_mixed_hakmem 20000000 400 1
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user