meta-pytorch/KernelAgent
Autonomous GPU Kernel Generation & Optimization via Deep Agents
何を解決するか
KernelAgentはGPUカーネルの作成とパフォーマンスチューニングを自動化します。手動で高性能なTritonカーネルを書く難しさを解決し、PyTorchプログラムを検証済みで最適化されたTritonコードに変換することで、ハードウェア固有のパフォーマンス向上を達成するために、エキスパートレベルのGPUプログラミング知識が不要になります。
動作方法
このシステムは2つの主要なパイプラインで動作します。
カーネル生成:「AutoRouter」がPyTorch ASTを分析し、最適なパスを決定します。「Fuser Orchestrator」がコードを結合可能なサブグラフに再構成し、並列に動作するLLM駆動のエージェントにディスパッチします。これらのエージェントは反復的にTritonカーネルを生成し、ユニットテストに対して検証します。最後に、「Composer」がこれらのカーネルを1つの検証済みTritonプログラムに統合します。
カーネル最適化:このパイプラインはハードウェアガイド付きループを使用します。NVIDIA NCUを使ってカーネルをプロファイリングし、ハードウェアメトリクスを収集します。ルーフライン分析により、カーネルがメモリ制限か計算制限かを特定し、LLMを使ってボトルネックを診断し、修正案を提案します。このループはカーネルがパフォーマンスの限界(光速)に達するか、収束するまで繰り返されます。
対象ユーザー
- 手動で原始的なTritonカーネルを書かずに、PyTorch操作を最適化したいGPU開発者やMLエンジニア。
- NVIDIAおよびIntel XPU GPU向けのカスタムオペレータの結合やハードウェア固有のカーネルチューニングに取り組んでいる研究者。
特徴
- マルチプラットフォーム対応:NVIDIA CUDAとIntel XPU GPUの両方に対応。
- マルチエージェントオーケストレーション:厳密な実行時検証に基づいて、並列ワーカーがカーネルを生成・改善。
- ハードウェアガイド付きチューニング:リアルタイムのGPUプロファイリング(NCU)とルーフライン分析をLLM最適化ループに統合。
- エンドツーエンドの自動化:PyTorchコードの分析・サブグラフ抽出から最終的な合成とベンチマークまでをすべて自動処理。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト