RightNow-AI/autokernel
Autoresearch for GPU kernels. Give it any PyTorch model, go to sleep, wake up to optimized Triton kernels.
解決する課題
高速なGPUカーネル(ニューラルネットワークを実行する低レベルコード)の記述は時間がかかり、深い専門知識を必要とします。AutoKernelは、コーディングAIエージェントをモデルに適用することでこれを自動化します。最も低速な部分を特定して個別のカーネルとして抽出し、高速化されるまで最適化を試行し続けます。各操作を手動で調整する代わりに、モデルを提供するだけで、測定された高速化率を備えた最適化済みカーネルを取得できます。
仕組み
任意のPyTorchモデルを提供すると、AutoKernelは以下のパイプラインを実行します:
- Profile(プロファイル):PyTorchのプロファイラーを使用して、最も時間を消費しているGPUカーネルをランク付けします。
- Extract(抽出):各ボトルネックを独立したTritonまたはCUDA C++カーネルファイルとして抽出します。
- Optimize(最適化):AIコーディングエージェント(ClaudeやCodexなど)が一連の指示(
program.md)を読み込み、カーネルファイルを編集し、固定されたベンチマークを実行します。正確性チェックに合格し、速度が向上した場合のみ変更を保持します。このループを永続的に繰り返し、各実験は約90秒かかります。 - Verify(検証):すべてのボトルネックを最適化した後、新しいカーネルをモデルに組み込み、全体的なエンドツーエンドの高速化率を報告します。
ベンチマークには、パフォーマンス測定の前に5段階の正確性チェック(スモークテスト、形状スイープ、数値安定性、決定論的動作、エッジケース)が含まれています。オーケストレーターはアムダールの法則を使用して、モデル全体に最も大きな影響を与えるカーネルを優先的に処理します。
対象ユーザー
PyTorchモデルのGPU推論やトレーニングを高速化したいが、CUDAやTritonカーネルを手書きしたくない開発者や研究者。NVIDIA GPU(H100/A100/RTX 4090でテスト済み)とPython 3.10+が必要です。すぐに実行可能なモデル定義(GPT-2, LLaMA, BERT)が付属しているため、外部のモデルライブラリなしで試すことができます。
ハイライト
- 自律的な最適化:夜間に数百の実験を監視なしで実行し、ファイルを編集して成功した変更のみを保持します。
- デュアルバックエンド:Triton(高速な反復)とネイティブCUDA C++(最大パフォーマンス)の両方のカーネルを生成し、同じインターフェースを共有します。
- 9種類のカーネルタイプ:matmul, softmax, layernorm, flash attention, fused MLPなど、一般的なディープラーニング操作をカバーしています。
- KernelBench統合:AI生成GPUカーネルの標準ベンチマークと連携し、一発勝負ではなく反復的な洗練を行います。
- 正確性優先:5段階の正確性テストに失敗したカーネルは即座に元に戻されるため、高速化は常に安全です。
- シンプルな出力:すべての実験はプレーンな
results.tsvファイルに記録され、簡単に追跡できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト