Files
hakmem/docs/analysis/SSOT_BUILD_MODES.md

101 lines
2.8 KiB
Markdown
Raw Normal View History

# SSOT Build Modes: Standard / FAST / OBSERVE の役割定義
## 目的
ベンチマーク測定において、**ビルドモード**と**測定モード**を分離し、
各フェーズで何を測定するかを明確化する。
---
## 3つのモード
### 1. **Standard Build** (`-DNDEBUG`)
- **役割**: 本番相当、最適化最大
- **使用**: Phase 89+ 本格 SSOTA/B テスト、GO/NO-GO 判定)
- **スクリプト**: `scripts/run_mixed_10_cleanenv.sh`
- **出力**: Throughput最終スコア
- **特性**: LTO, -O3, frame-pointer 削除、統計安定性CV < 2%
### 2. **FAST Build** (`HAKMEM_BENCH_FAST_MODE=1`)
- **役割**: 最大パフォーマンス引き出しPGO、キャッシュ最適化
- **使用**: 性能天井確認、設計上限検証
- **スクリプト**: `scripts/run_mixed_fast_pgo_ssot.sh`(要作成)
- **出力**: Throughputceiling reference
- **特性**: Profile-Guided Optimization, aggressive inlining
### 3. **OBSERVE Build**
- **役割**: 経路確認、フローダンプ
- **使用**: ENV ドリフト検出、設定妥当性確認
- **スクリプト**: `scripts/run_mixed_observe_ssot.sh`
- **出力**: 詳細統計inline slots 活動、unified cache hit/miss、legacy fallback 呼び出し)
- **特性**: メトリクス収集、診断情報
---
## SSOT 測定手順(標準パターン)
### 流れ
```
1. OBSERVE (diagnosis)
→ 経路が正しいか確認「LEGACY used AND C6 INLINE SLOTS ACTIVE」の判定
→ ENV 設定ドリフトを検出
2. Standard SSOT (control + treatment)
→ IFL=0 (control) 10-run
→ IFL=1 (treatment) 10-run
→ 統計的に有意な差があるか判定
3. if NO-GO → FAST build で ceiling 確認
→ design は correct か、implementation は correct か の切り分け
```
---
## 各モードの環境管理
### Standard
```bash
HAKMEM_BENCH_MIN_SIZE=16 HAKMEM_BENCH_MAX_SIZE=1040
HAKMEM_BENCH_C5_ONLY=0 HAKMEM_BENCH_C6_ONLY=0 HAKMEM_BENCH_C7_ONLY=0
HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE
```
### FAST将来
```bash
HAKMEM_BENCH_FAST_MODE=1
HAKMEM_PROFILE=MIXED_TINYV3_C7_FAST_PGO (要定義)
```
### OBSERVE
```bash
# Standard + diagnostic metrics
HAKMEM_UNIFIED_CACHE_STATS_COMPILED=1
HAKMEM_INLINE_SLOTS_OVERFLOW_STATS=1
```
---
## GO/NO-GO 判定基準
| 指標 | 基準 | 判定 |
|------|------|------|
| 改善度 | ≥ +1.0% | GO |
| CV変動係数 | < 3% | 統計安定 |
| 回帰 | < -1.0% | NO-GO重大 |
| 観測スコア | baseline × 1.018 以上 | strong GO |
---
## 参考Phase 91 (C6 IFL) の例
**OBSERVE 結果**:
- 経路確認:✓ LEGACY used AND inline slots active
- スコア51.47M ops/s
**Standard SSOT 結果**:
- Control (IFL=0)52.05M ops/s, CV 1.2%
- Treatment (IFL=1)52.25M ops/s, CV 1.5%
- 改善度:+0.38%
- 判定NEUTRAL目標未達→ NO-GO