Files
hakmem/docs/analysis/LEARNING_BENCHMARK_TASK.md
Moe Charm (CI) a9ddb52ad4 ENV cleanup: Remove BG/HotMag vars & guard fprintf (Larson 52.3M ops/s)
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>
2025-11-26 14:45:26 +09:00

6.3 KiB
Raw Blame History

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でも SEGFAULTTLS 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先生への依頼

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