Files
hakmem/docs/analysis/BENCH_REPRODUCIBILITY_SSOT.md

49 lines
1.8 KiB
Markdown
Raw Normal View History

# Bench Reproducibility SSOTころころ防止の最低限
目的: 「数%を詰める開発」で一番きつい **ベンチが再現しない問題**を潰す。
## 1) まず結論(よくある原因)
同じマシンでも、以下が変わると 515% は普通に動く。
- **CPU power/thermal**governor / EPP / turbo
- **HAKMEM_PROFILE 未指定**route が変わる)
- **export 漏れ**(過去の ENV が残る)
- **別バイナリ比較**layout tax: text 配置が変わる)
## 2) SSOT最適化判断の正
- Runner: `scripts/run_mixed_10_cleanenv.sh`
- 必須:
- `HAKMEM_PROFILE=MIXED_TINYV3_C7_SAFE` を明示
- `RUNS=10`(ノイズを平均化)
- `WS=400`SSOT
- 任意(切り分け用):
- `HAKMEM_BENCH_ENV_LOG=1`CPU governor/EPP/freq をログ)
## 3) referenceallocator間比較の正
allocator比較は layout tax が混ざるため **reference**
ただし “公平さ” を上げるなら同一バイナリで測る:
- Same-binary runner: `scripts/run_allocator_preload_matrix.sh`
- `bench_random_mixed_system` を固定して `LD_PRELOAD` を差し替える
## 4) “ころころ”を止める運用(最低限の儀式)
1. SSOT実行は必ず cleanenv:
- `scripts/run_mixed_10_cleanenv.sh`
2. 毎回、環境ログを残す:
- `HAKMEM_BENCH_ENV_LOG=1`
3. 結果をファイル化(後から追える形):
- `scripts/bench_ssot_capture.sh` を使うgit sha / env / bench出力をまとめて保存
## 5) 重要メモAMD pstate epp
`amd-pstate-epp` 環境で
- governor=`powersave`
- energy_perf_preference=`power`
のままだと、ベンチが“遅い側”に寄ることがある。
まずは `HAKMEM_BENCH_ENV_LOG=1` の出力が **同じ**条件同士で比較すること。