AutoKernel — GPUカーネル自動探索ツール

Tool

概要

AutoKernelは「Autoresearch for GPU kernels」を掲げる実験的ツールで、PyTorchモデルに対して自動的に最適化されたTritonカーネルを探索します。エージェントはリポジトリ内の一つのファイルを変更し、事前定義の評価(ベンチマーク)を実行して性能を測定。変更で性能が向上すればその改変を保持し、悪化すれば元に戻すという単純なサイクルを繰り返すことで、継続的にカーネルの性能を改善します。karpathyのautoresearchに触発されたアプローチをGPUカーネル領域に適用したもので、研究やプロトタイプ作成に適した道具です。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 1
  • ウォッチャー数: 3
  • コミット数: 28
  • ファイル数: 19
  • メインの言語: Python

主な特徴

  • PyTorchモデルを入力に、Tritonカーネルの自動探索と最適化を目指す。
  • エージェントがソースを変更→評価→保持/差し戻しを繰り返す自己改善ループ。
  • 実験的で継続実行可能な自律探索フロー。長時間の探索に向く設計。
  • シンプルな評価ハーネスにより、目的関数(実行時間など)に基づく判定が可能。

技術的なポイント

AutoKernelの核となるアイデアは「自動で試行を繰り返し、実行性能に基づいて変更を採否する」という非常に単純だが効果的なメタアルゴリズムです。TritonはGPU向けに高性能なカーネルを記述できるフレームワークであり、AutoKernelはそのTritonカーネル(あるいは関連するコード)を対象に小さな改変を入れてビルド/ベンチを回します。READMEにある通りエージェントは「1ファイルを変更」→「固定の評価を実行」→「良ければ保持、悪ければ戻す」を繰り返すため、局所探索(hill-climbing)的な振る舞いになります。

この構成の利点は、実際のハードウェア上での実行時間など実用的な指標を直接最適化できる点です。コンパイラ最適化や理論的モデルに頼らず、実機ベンチの結果に基づくため、微妙なメモリアクセスやスレッド編成、ループ展開などハードウェア寄りの改善が見つかりやすいです。一方で、探索空間が大きく評価コストが高いため、探索戦略、変更のスコープ(どのパラメータ/コード片を変えるか)、安定した評価プロトコル(ウォームアップ、平均化、再現性確保)が重要になります。

リポジトリにはanalysi.pyのような分析・ベンチ用スクリプトが含まれており、評価の自動化や結果の集計を行うための土台が用意されています。karpathy/autoresearchの思想を受け継ぐため、完全自律で長時間走らせることを想定した作りになっており、改善の履歴を残しつつ良い変更のみを採用していくワークフローです。将来的にはメタ探索アルゴリズム(ランダム探索、ベイズ最適化、遺伝的アルゴリズムなど)や、より洗練された差分スコアリング、マルチメトリクス最適化(スループットと精度のトレードオフ)を組み合わせる余地があります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • .python-version: file
  • LICENSE: file
  • README.md: file
  • analysis.py: file

…他 14 ファイル

(注:リポジトリ全体は小規模で、主要ロジックと評価スクリプトが中心になっています。)

まとめ

自律的にTritonカーネルを探索する実験的ツール。研究用途に有用。

リポジトリ情報:

READMEの抜粋:

AutoKernel

Autoresearch for GPU kernels. Give it any PyTorch model, go to sleep, wake up to optimized Triton kernels.

AutoKernel Progress

Inspired by @karpathy/autoresearch — which demonstrated autonomous AI agents for LLM training research. AutoKernel applies the same philosophy to GPU kernel optimization: agent modifies one file, runs a fixed evaluation, keeps or reverts, repeats forever.

How It Works

Give AutoKernel a…