256 lines
6.3 KiB
Markdown
256 lines
6.3 KiB
Markdown
|
|
# Learning System Benchmark Task
|
|||
|
|
|
|||
|
|
**目的**: PROFILES.md の数値を実測データで裏付ける
|
|||
|
|
**提案者**: ChatGPT先生
|
|||
|
|
**実測者**: Task先生(この文書を元に計測)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚠️ **実測結果:学習機能が壊れています** ⚠️
|
|||
|
|
|
|||
|
|
**測定日**: 2025-11-26
|
|||
|
|
|
|||
|
|
**発見された重大バグ**:
|
|||
|
|
1. ❌ `HAKMEM_ALLOC_LEARN=1` を有効化すると即座に SEGFAULT
|
|||
|
|
2. ❌ `HAKMEM_MEM_LEARN=1` を有効化すると即座に SEGFAULT
|
|||
|
|
3. ❌ Larson ベンチマーク: 学習OFFでも SEGFAULT(TLS SLL corruption)
|
|||
|
|
|
|||
|
|
**測定可能だった項目**:
|
|||
|
|
- ✅ Baseline Random Mixed 256B: **83.19 M ops/s** (学習OFF)
|
|||
|
|
|
|||
|
|
**測定不可能だった項目**:
|
|||
|
|
- ❌ Pattern 1 (Alloc Learning): SEGFAULT
|
|||
|
|
- ❌ Pattern 2 (Memory Learning): SEGFAULT
|
|||
|
|
- ❌ Pattern 3 (Both ON): SEGFAULT
|
|||
|
|
- ❌ Larson 1T/8T: SEGFAULT (学習OFF含む全設定)
|
|||
|
|
|
|||
|
|
**結論**:
|
|||
|
|
- PROFILES.md の学習関連の全ての数値は **検証不可能** です
|
|||
|
|
- 学習機能の実装に重大なバグが存在します
|
|||
|
|
- 修正後に再測定が必要です
|
|||
|
|
|
|||
|
|
**詳細レポート**: このタスクで生成されたレポートを参照
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 検証パターン(3パターン)
|
|||
|
|
|
|||
|
|
### Pattern 1: Alloc Learning のみ ON
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
export HAKMEM_ALLOC_LEARN=1
|
|||
|
|
export HAKMEM_ALLOC_LEARN_WINDOW=10000
|
|||
|
|
export HAKMEM_ALLOC_LEARN_RATE=0.08
|
|||
|
|
export HAKMEM_MEM_LEARN=0
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**期待**: 性能 ±3%以内、RSS -10~20%
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Pattern 2: Memory Learning のみ ON
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
export HAKMEM_ALLOC_LEARN=0
|
|||
|
|
export HAKMEM_MEM_LEARN=1
|
|||
|
|
export HAKMEM_MEM_LEARN_WINDOW=20000
|
|||
|
|
export HAKMEM_MEM_LEARN_THRESHOLD=0.7
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**期待**: 性能 ±3%以内、RSS -10~30%
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Pattern 3: 両方 ON(攻め)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
export HAKMEM_ALLOC_LEARN=1
|
|||
|
|
export HAKMEM_ALLOC_LEARN_WINDOW=8000
|
|||
|
|
export HAKMEM_ALLOC_LEARN_RATE=0.12
|
|||
|
|
export HAKMEM_MEM_LEARN=1
|
|||
|
|
export HAKMEM_MEM_LEARN_WINDOW=12000
|
|||
|
|
export HAKMEM_MEM_LEARN_THRESHOLD=0.8
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**期待**: 性能 -0~5%、RSS -20~40%
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 ベンチマーク実行方法
|
|||
|
|
|
|||
|
|
### Baseline (学習 OFF - 現在のデフォルト)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 学習機能を明示的に OFF
|
|||
|
|
unset HAKMEM_ALLOC_LEARN
|
|||
|
|
unset HAKMEM_MEM_LEARN
|
|||
|
|
unset HAKMEM_ALLOC_LEARN_WINDOW
|
|||
|
|
unset HAKMEM_ALLOC_LEARN_RATE
|
|||
|
|
unset HAKMEM_MEM_LEARN_WINDOW
|
|||
|
|
unset HAKMEM_MEM_LEARN_THRESHOLD
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
|
|||
|
|
# Random Mixed 256B (10M iterations)
|
|||
|
|
./out/release/bench_random_mixed_hakmem 10000000 256 42
|
|||
|
|
|
|||
|
|
# Larson 1T (10秒)
|
|||
|
|
./out/release/larson_hakmem 1 10 1 1000 100 10000 42
|
|||
|
|
|
|||
|
|
# Larson 8T (10秒)
|
|||
|
|
./out/release/larson_hakmem 8 10 1 1000 100 10000 42
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**記録項目**:
|
|||
|
|
- Random Mixed: ops/s
|
|||
|
|
- Larson 1T: ops/s
|
|||
|
|
- Larson 8T: ops/s
|
|||
|
|
- RSS: /proc/self/status の VmRSS(開始時・終了時)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Pattern 1 測定
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Pattern 1 設定
|
|||
|
|
export HAKMEM_ALLOC_LEARN=1
|
|||
|
|
export HAKMEM_ALLOC_LEARN_WINDOW=10000
|
|||
|
|
export HAKMEM_ALLOC_LEARN_RATE=0.08
|
|||
|
|
export HAKMEM_MEM_LEARN=0
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
|
|||
|
|
# 同じベンチマーク3つ実行
|
|||
|
|
./out/release/bench_random_mixed_hakmem 10000000 256 42
|
|||
|
|
./out/release/larson_hakmem 1 10 1 1000 100 10000 42
|
|||
|
|
./out/release/larson_hakmem 8 10 1 1000 100 10000 42
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**記録項目**: 同上
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Pattern 2 測定
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Pattern 2 設定
|
|||
|
|
export HAKMEM_ALLOC_LEARN=0
|
|||
|
|
export HAKMEM_MEM_LEARN=1
|
|||
|
|
export HAKMEM_MEM_LEARN_WINDOW=20000
|
|||
|
|
export HAKMEM_MEM_LEARN_THRESHOLD=0.7
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
|
|||
|
|
# 同じベンチマーク3つ実行
|
|||
|
|
./out/release/bench_random_mixed_hakmem 10000000 256 42
|
|||
|
|
./out/release/larson_hakmem 1 10 1 1000 100 10000 42
|
|||
|
|
./out/release/larson_hakmem 8 10 1 1000 100 10000 42
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**記録項目**: 同上
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Pattern 3 測定
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Pattern 3 設定
|
|||
|
|
export HAKMEM_ALLOC_LEARN=1
|
|||
|
|
export HAKMEM_ALLOC_LEARN_WINDOW=8000
|
|||
|
|
export HAKMEM_ALLOC_LEARN_RATE=0.12
|
|||
|
|
export HAKMEM_MEM_LEARN=1
|
|||
|
|
export HAKMEM_MEM_LEARN_WINDOW=12000
|
|||
|
|
export HAKMEM_MEM_LEARN_THRESHOLD=0.8
|
|||
|
|
export HAKMEM_SUPERSLAB_REUSE=1
|
|||
|
|
export HAKMEM_SUPERSLAB_PREWARM=0
|
|||
|
|
|
|||
|
|
# 同じベンチマーク3つ実行
|
|||
|
|
./out/release/bench_random_mixed_hakmem 10000000 256 42
|
|||
|
|
./out/release/larson_hakmem 1 10 1 1000 100 10000 42
|
|||
|
|
./out/release/larson_hakmem 8 10 1 1000 100 10000 42
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**記録項目**: 同上
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 結果フォーマット
|
|||
|
|
|
|||
|
|
各パターンについて以下を記録:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Pattern: [Baseline/Pattern1/Pattern2/Pattern3]
|
|||
|
|
Random Mixed 256B (10M):
|
|||
|
|
- ops/s: XXX.XX M ops/s
|
|||
|
|
- RSS start: XXX MB
|
|||
|
|
- RSS end: XXX MB
|
|||
|
|
- RSS delta: +XXX MB
|
|||
|
|
|
|||
|
|
Larson 1T (10s):
|
|||
|
|
- ops/s: XXX.XX M ops/s
|
|||
|
|
- RSS start: XXX MB
|
|||
|
|
- RSS end: XXX MB
|
|||
|
|
- RSS delta: +XXX MB
|
|||
|
|
|
|||
|
|
Larson 8T (10s):
|
|||
|
|
- ops/s: XXX.XX M ops/s
|
|||
|
|
- RSS start: XXX MB
|
|||
|
|
- RSS end: XXX MB
|
|||
|
|
- RSS delta: +XXX MB
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 成功基準
|
|||
|
|
|
|||
|
|
### Pattern 1 (Alloc Learning のみ)
|
|||
|
|
|
|||
|
|
- ✅ **性能**: Random Mixed/Larson が Baseline 比 -3% 以内
|
|||
|
|
- ✅ **RSS**: Baseline 比 -10% 以上削減
|
|||
|
|
|
|||
|
|
### Pattern 2 (Memory Learning のみ)
|
|||
|
|
|
|||
|
|
- ✅ **性能**: Random Mixed/Larson が Baseline 比 -3% 以内
|
|||
|
|
- ✅ **RSS**: Baseline 比 -10% 以上削減
|
|||
|
|
|
|||
|
|
### Pattern 3 (両方 ON)
|
|||
|
|
|
|||
|
|
- ✅ **性能**: Random Mixed/Larson が Baseline 比 -5% 以内
|
|||
|
|
- ✅ **RSS**: Baseline 比 -20% 以上削減
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 期待される結果(仮説)
|
|||
|
|
|
|||
|
|
| Pattern | Random Mixed | Larson 1T | Larson 8T | RSS 削減 |
|
|||
|
|
|---------|--------------|-----------|-----------|----------|
|
|||
|
|
| Baseline | 107 M ops/s | 47.6 M ops/s | 48.2 M ops/s | 0% (基準) |
|
|||
|
|
| Pattern 1 | 104-107 M ops/s | 46-48 M ops/s | 47-49 M ops/s | -10~20% |
|
|||
|
|
| Pattern 2 | 104-107 M ops/s | 46-48 M ops/s | 47-49 M ops/s | -10~30% |
|
|||
|
|
| Pattern 3 | 102-107 M ops/s | 45-48 M ops/s | 46-49 M ops/s | -20~40% |
|
|||
|
|
|
|||
|
|
**注**: これらは仮説値。実測で検証する。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 Task先生への依頼
|
|||
|
|
|
|||
|
|
1. **ビルド確認**: `./build.sh bench_random_mixed_hakmem larson_hakmem`
|
|||
|
|
2. **Baseline 測定**: 学習 OFF で3ベンチマーク実行
|
|||
|
|
3. **Pattern 1-3 測定**: 各パターンで3ベンチマーク実行
|
|||
|
|
4. **結果レポート**: 上記フォーマットで結果を報告
|
|||
|
|
5. **PROFILES.md 更新**: 実測データで数値を差し替え
|
|||
|
|
|
|||
|
|
**所要時間**: 約 10-15分(4パターン × 3ベンチマーク)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**作成日**: 2025-11-26
|
|||
|
|
**ChatGPT先生からの指摘**: 「数値に根拠がない」 → 実測で検証!
|