# べき等性
## 定義
べき等性(idempotency)とは、同じ操作を複数回実行しても結果が一度の実行と変わらない性質。GPU カーネルの文脈では、再実行しても出力が変わらないカーネルを指し、フォールトトレラントなチェックポイント省略やプリエンプティブスケジューリングの前提として使われる。[[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]](PICKER)は、GPU カーネルが入力に応じてべき等インスタンスと非べき等インスタンスの両方を持ちうる「条件付きべき等(conditional idempotency)」を発見し、実アプリの 547 カーネル中 490 が条件付きべき等だと報告する。([[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]])
## 横断的知見
- **「カーネルをべき等/非べき等に二分する」先行研究の前提が崩れる**: PICKER は条件付きべき等の広汎な存在(547 中 490)を示し、カーネル単位の静的二分がべき等ベースシステムの正しさ・効率を損なうと主張する。べき等性は静的属性でなく**インスタンス(起動引数)依存の動的属性**として扱う必要がある。(Source: [[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]])
- **べき等性は観測性ツールの上に成り立つ正しさ判定**: PICKER は GPU 動的計装(NVBit 系の SASS 解析)で全メモリアクセスを追跡してべき等性を検証する。[[GPU観測性]]・[[動的計装]]が性能診断だけでなく正しさ検証の基盤になる一例で、起動引数のみから実行前にマイクロ秒スケール(全インスタンス 5µs 以内)で判定する。(Source: [[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]])
- **手動コード規約によるべき等性確保の先例**: 1960年代の Apollo Guidance Computer は、動的計装のような自動検証手段を持たなかったため、非べき等な更新(`X = X+1` 型の逐次代入)がリスタートで二重実行されないよう、開発者が「waypoint」を手作業でコードの前後に配置する規約でべき等性を確保していた(→ [[リスタート保護]])。PICKER のような自動・動的な条件付きべき等判定が存在しない環境では、べき等性は静的コード規約(人間による設計)として実現するほかなく、これは動的検証(PICKER)と静的規約(Apollo)というべき等性確保の二つの極を示す。(Source: [[@2004__AAS__Tales from the Lunar Module Guidance Computer]])
## 未解決の問い
- 条件付きべき等という入力依存の判定を、LLM 訓練のような巨大カーネル群でも µs スケールで成立させられるか([[耐障害LLM訓練]]のチェックポイント削減と直結)。
- 決定的実行を要する正しさ判定(PICKER の SASS 解析)を、クローズドソース/動的生成カーネルへどこまで一般化できるか。
- べき等性に基づく省略([[チェックポイント]]不要・プリエンプション高速化)を、訓練系の周期チェックポイントと組み合わせられるか。
## 関連
- ソース: [[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]]
- 概念: [[チェックポイント]] / [[耐障害LLM訓練]] / [[GPU観測性]] / [[動的計装]]
- エンティティ: [[PICKER]] / [[Asymmetric Resilience]] / [[Chimera]] / [[NVBit]]
- 関連 MOC: [[AI Infra Telemetry - MOC]]
## 出典
- [[@2024__arXiv__Microsecond-scale Dynamic Validation of Idempotency for GPU Kernels]](条件付きべき等の発見・インスタンス単位動的検証・5µs・偽陽性 0/偽陰性 18.54%)