Files
hakmem/PHASE_ML2_CHATGPT_QUESTIONNAIRE_FASTLANE.md
Moe Charm (CI) e48cbff4b9 Phase 5 Complete: E7 NO-GO confirmed + ChatGPT Pro questionnaire
Summary:
- E7 frozen box prune: -3.20% regression (NO-GO) with clean ENV
- Keep E5-2/E5-4 (NEUTRAL) + E6 (NO-GO) as research boxes
- Regression due to build differences (LTO/layout/alignment), not logic

Results:
- Winning boxes: E4-1 (+3.51%), E4-2 (+21.83%), E5-1 (+3.35%) → adopted
- Frozen boxes: E5-2, E5-4, E6, E7 → kept with ENV gates (doc as assets)
- Phase 5 cumulative progress: +6.43% on MIXED profile

Documentation updates:
- PHASE5_E7_FROZEN_BOX_PRUNE_AB_TEST_RESULTS.md: Final NO-GO record
- PHASE5_E7_FROZEN_BOX_PRUNE_NEXT_INSTRUCTIONS.md: E7 conclusion

Next phase planning:
- PHASE_ML2_CHATGPT_QUESTIONNAIRE_FASTLANE.md: Design consultation template
  - Candidates: dedup new boundaries, PGO/layout optimization feasibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-14 08:56:09 +09:00

3.8 KiB
Raw Blame History

PHASE ML2: 外部LLM向け 質問状FastLane / Layer Collapse 設計レビュー)

0. 目的

  • mimalloc との差を詰めるための「次の高 ROI 設計」を外部レビューで得る。
  • 箱理論Box Theoryを守り、ENV で戻せる境界1箇所Fail-Fast最小可視化の形で提案してほしい。

1. 重要な前提(比較の作法)

  • 以後の A/B は 同一バイナリで ENV トグルが原則(削除/追加で別バイナリにすると、LTO/配置差で結果が崩れる)。
    • 参考: docs/analysis/PHASE5_E7_FROZEN_BOX_PRUNE_AB_TEST_RESULTS.md
  • bench_setenv_default() は export 済み ENV を上書きしないため、過去の実験 ENV が残ると比較が壊れる。
    • Mixed 10-run 実行補助: scripts/run_mixed_10_cleanenv.sh

2. 現在地(事実メモ)

2.1 競合比較Mixed 161024B, 2025-12-05 時点)

  • HAKMEM: 44.45M ops/s
  • mimalloc: 117.20M ops/s
  • system: 90.95M ops/s
  • 出典: CURRENT_TASK_ARCHIVE_20251210.md

※ 現在は上積みが進んでいるが、mimalloc との距離感の基準として引用。

2.2 直近の勝ち筋

  • “分岐形/ヒント” は飽和しやすいZen で branch miss rate が低い)。
  • 一方で 重複排除(境界の一本化)ENV/TLS 読み回数の削減は勝ちやすい。
  • “凍結箱を削るdiet” は NO-GO(別バイナリ比較になり、配置差が支配的)。

3. 読んでほしい資料(最小セット)

  1. AGENTS.md(箱理論ルール)
  2. CURRENT_TASK.md(直近の勝ち箱/負け箱の記録)
  3. PERF_PROFILE_ANALYSIS_20251204.md(ホットスポット俯瞰)
  4. docs/analysis/PHASE5_E5_COMPREHENSIVE_ANALYSIS.mdE4/E5 系の学び)
  5. docs/analysis/PHASE5_E7_FROZEN_BOX_PRUNE_AB_TEST_RESULTS.md(別バイナリ A/B の罠)

制約:

  • /home/user/hakmem_private/... のような 絶対パスは使わず、ファイル名/パスは repo 相対で書いてください。

4. 質問(回答フォーマット指定)

Q1. 次の「芯」の優先順位(必須)

次の 3 案を ROI / リスク / 工数で順位付けし、推奨案を 1 つ選んでください。

  • A) Front FastLane: wrapper + gate + policy + route を “hot 1箱” に畳み、cold 側へ単一フォールバック
  • B) ptr→meta 到達の O(1) 化を mid/pool に波及segment/mask 方式で lookup 地獄を避ける)
  • C) 触るメモリ削減cache miss / minor fault を減らすための geometry/metadata 見直し)

Q2. 推奨案の Box 分割(必須)

推奨案について、以下を提示してください。

  • 箱名L0/L1/L2…
  • 箱の責務(各 1 文)
  • 境界 API関数名・引数・戻り値
  • “変換点は 1 箇所” をどこに置くか

Q3. Fail-Fast と安全ゲート(必須)

  • fast path に入れる条件(必要最小)
  • 必ず fallback する条件(安全側)
  • 不変条件assert/範囲チェック/ワンショットログ等、最小)

Q4. 戻せる導入プラン(必須)

Phase 0〜2 くらいの小パッチ順序で提示してください。

  • ENV gate 名と default
  • A/B の評価コマンドMixed 10-run + 可能なら perf stat
  • GO/NO-GO 閾値(例: +1.0% 以上で GO、-1.0% 以下で NO-GO 等)

Q5. “mimalloc に追いつく” の現実ライン(必須)

  • 現状の多層構造wrapper→gate→policy→route→handlerを保ったままの上限ざっくり %
  • parity に近づくために「統合/削除しないと無理」な層がどこか(具体)

5. 期待する回答形式(これで返してほしい)

  1. 1枚サマリ箇条書き
  2. Box 図ASCIIでOK
  3. API 一覧
  4. A/B 手順と閾値
  5. リスクと対策(戻せる手段を含む)