101 lines
2.8 KiB
Markdown
101 lines
2.8 KiB
Markdown
|
|
# SSOT Build Modes: Standard / FAST / OBSERVE の役割定義
|
|||
|
|
|
|||
|
|
## 目的
|
|||
|
|
|
|||
|
|
ベンチマーク測定において、**ビルドモード**と**測定モード**を分離し、
|
|||
|
|
各フェーズで何を測定するかを明確化する。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3つのモード
|
|||
|
|
|
|||
|
|
### 1. **Standard Build** (`-DNDEBUG`)
|
|||
|
|
- **役割**: 本番相当、最適化最大
|
|||
|
|
- **使用**: Phase 89+ 本格 SSOT(A/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`(要作成)
|
|||
|
|
- **出力**: Throughput(ceiling 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
|