# 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先生からの指摘**: 「数値に根拠がない」 → 実測で検証!