meta-pytorch/KernelAgent

Autonomous GPU Kernel Generation & Optimization via Deep Agents

何を解決するか

KernelAgentはGPUカーネルの作成とパフォーマンスチューニングを自動化します。手動で高性能なTritonカーネルを書く難しさを解決し、PyTorchプログラムを検証済みで最適化されたTritonコードに変換することで、ハードウェア固有のパフォーマンス向上を達成するために、エキスパートレベルのGPUプログラミング知識が不要になります。

動作方法

このシステムは2つの主要なパイプラインで動作します。

  1. カーネル生成:「AutoRouter」がPyTorch ASTを分析し、最適なパスを決定します。「Fuser Orchestrator」がコードを結合可能なサブグラフに再構成し、並列に動作するLLM駆動のエージェントにディスパッチします。これらのエージェントは反復的にTritonカーネルを生成し、ユニットテストに対して検証します。最後に、「Composer」がこれらのカーネルを1つの検証済みTritonプログラムに統合します。

  2. カーネル最適化:このパイプラインはハードウェアガイド付きループを使用します。NVIDIA NCUを使ってカーネルをプロファイリングし、ハードウェアメトリクスを収集します。ルーフライン分析により、カーネルがメモリ制限か計算制限かを特定し、LLMを使ってボトルネックを診断し、修正案を提案します。このループはカーネルがパフォーマンスの限界(光速)に達するか、収束するまで繰り返されます。

対象ユーザー

  • 手動で原始的なTritonカーネルを書かずに、PyTorch操作を最適化したいGPU開発者やMLエンジニア。
  • NVIDIAおよびIntel XPU GPU向けのカスタムオペレータの結合やハードウェア固有のカーネルチューニングに取り組んでいる研究者。

特徴

  • マルチプラットフォーム対応:NVIDIA CUDAとIntel XPU GPUの両方に対応。
  • マルチエージェントオーケストレーション:厳密な実行時検証に基づいて、並列ワーカーがカーネルを生成・改善。
  • ハードウェアガイド付きチューニング:リアルタイムのGPUプロファイリング(NCU)とルーフライン分析をLLM最適化ループに統合。
  • エンドツーエンドの自動化:PyTorchコードの分析・サブグラフ抽出から最終的な合成とベンチマークまでをすべて自動処理。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト