Phase 1 完了:環境変数整理 + fprintf デバッグガード ENV変数削除(BG/HotMag系): - core/hakmem_tiny_init.inc: HotMag ENV 削除 (~131 lines) - core/hakmem_tiny_bg_spill.c: BG spill ENV 削除 - core/tiny_refill.h: BG remote 固定値化 - core/hakmem_tiny_slow.inc: BG refs 削除 fprintf Debug Guards (#if !HAKMEM_BUILD_RELEASE): - core/hakmem_shared_pool.c: Lock stats (~18 fprintf) - core/page_arena.c: Init/Shutdown/Stats (~27 fprintf) - core/hakmem.c: SIGSEGV init message ドキュメント整理: - 328 markdown files 削除(旧レポート・重複docs) 性能確認: - Larson: 52.35M ops/s (前回52.8M、安定動作✅) - ENV整理による機能影響なし - Debug出力は一部残存(次phase で対応) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
6.3 KiB
6.3 KiB
Learning System Benchmark Task
目的: PROFILES.md の数値を実測データで裏付ける 提案者: ChatGPT先生 実測者: Task先生(この文書を元に計測)
⚠️ 実測結果:学習機能が壊れています ⚠️
測定日: 2025-11-26
発見された重大バグ:
- ❌
HAKMEM_ALLOC_LEARN=1を有効化すると即座に SEGFAULT - ❌
HAKMEM_MEM_LEARN=1を有効化すると即座に SEGFAULT - ❌ 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
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
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(攻め)
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
期待: 性能 -05%、RSS -2040%
🔧 ベンチマーク実行方法
Baseline (学習 OFF - 現在のデフォルト)
# 学習機能を明示的に 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 測定
# 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 測定
# 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 測定
# 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先生への依頼
- ビルド確認:
./build.sh bench_random_mixed_hakmem larson_hakmem - Baseline 測定: 学習 OFF で3ベンチマーク実行
- Pattern 1-3 測定: 各パターンで3ベンチマーク実行
- 結果レポート: 上記フォーマットで結果を報告
- PROFILES.md 更新: 実測データで数値を差し替え
所要時間: 約 10-15分(4パターン × 3ベンチマーク)
作成日: 2025-11-26 ChatGPT先生からの指摘: 「数値に根拠がない」 → 実測で検証!