← 最新の論文
🤖 machine learning

Optimizing CUDA like a Human: Micro-Profiling Tools as Expert Surrogates for LLM-Based GPU Kernel Optimization

KernelProは、LLMを専門家によるマイクロプロファイリングツールおよびドメイン適応型MCTS探索と統合し、多様なベンチマークにおいて最先端のスピードアップを実現する、高性能かつエネルギー効率の高いCUDAカーネルを自動生成および反復的に最適化するクローズドループ型マルチエージェントシステムである。

原著者: Jiading Gai, Shuai Zhang, Kaj Bostrom, Jin Huang, Vihang Patil, Haoyang Fang, Bernie Wang, Huzefa Rangwala, George Karypis

公開日 2026-06-26
📖 1 分で読めます☕ さくっと読める

原著者: Jiading Gai, Shuai Zhang, Kaj Bostrom, Jin Huang, Vihang Patil, Haoyang Fang, Bernie Wang, Huzefa Rangwala, George Karypis

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

想像してみてください。あなたには、非常に才能があるものの経験不足な見習いシェフ(AI)がいます。彼らは世界で最も速く、最も効率的な料理(グラフィックスカード用のコンピュータプログラム)を作ろうとしています。問題は、シェフが厨房の機器の言葉を話せないことです。もし、コンロのセンサーから送られてくる生の数値のリスト――例えば「温度:400、圧力:20、火の様子:ゆらゆら」といったもの――をそのまま渡してしまうと、シェフは混乱し、料理をさらに悪化させてしまうかもしれません。

KernelProは、その見習いのすぐ横に立つ**熟練の副料理長(スーシェフ)**として機能する新しいシステムです。副料理長は、AIに生のセンサーデータを渡す代わりに、それらの数値を分かりやすい英語のアドバイスへと翻訳します。「おい、油を使いすぎているから火が強すぎるぞ。もっと小さなフライパンに切り替えて、もっと素早くかき混ぜるんだ」といった具合に。

KernelProの仕組みを、シンプルな概念ごとに分解して説明します。

1. 「エキスパート・サロゲート(専門家による代理)」(翻訳者)

かつて、AIシステムは数字が何を意味しているのかを推測しようとしていました。KernelProはマイクロ・プロファイリング・ツールを導入しています。これは、それぞれ異なる専門家によって運営される、一連の特化したセンサーのようなものです。

  • 一人の専門家は、シェフが適切なサイズのフライパンを使っているかどうかをチェックします(メモリ)。
  • もう一人の専門家は、シェフが野菜を切るスピードが遅すぎないかをチェックします(演算/コンピュート)。
  • 三人目の専門家は、シェフが食材を床に落としていないかをチェックします(レジスタ・スピル)。

AIに数値のスプレッドシートを渡す代わりに、これらのツールは人間の専門家の代わり(サロゲート)として機能します。これらはデータを分析し、問題を特定して、明確なメモを書き出します。「メモリ使用量が限界です。より高速なストレージ方法に切り替えてください」。論文によると、AIにこれらの明確なメモを与えることは、生の数値をただ投げ込むよりも125%効果的であることが分かりました。実際、生の数値はあまりに紛らわしく、何もフィードバックを与えない場合よりもAIのパフォーマンスを低下させてしまったのです!

2. 「スマートな探偵」(探索戦略)

コードを最適化することは、迷路を解くことに似ています。単純なアプローチ(「貪欲探索」と呼ばれるもの)は、単に前進し続け、壁に当たったら左に曲るというものです。これでは行き止まりに陥ってしまう可能性があります。

KernelProは、モンテカルロ木探索 (MCTS) を使用します。これは、単に一つの道を歩むのではなく、以下のような行動をとる探偵を想像してください。

  • 自分が進むことが「あり得る」あらゆる曲がり角の地図を描きます。
  • 同時に、さまざまな経路を試すために「斥候(スカウト)」を送り出します。
  • もしある経路が有望に見えたら、そこにさらに多くの斥候を送り込みます。
  • もしある経路が行き止まりであれば、その場所を地図にマークし、時間の無駄を防ぐために停止します。

これにより、システムは「十分に良い」という妥協案に陥ることなく、コードを修正するための多くの異なる方法を探索することができます。論文では、この手法が単に盲目的に前進するよりも、大幅に高速な解決策を見つけ出すことが示されています。

3. 「メモリーバンク」(失敗からの学習)

通常、AIがコードを修正しようとする際、前の試行で何が起きたかを忘れてしまいます。それは、鍋を焦がした後に、掃除をして、すぐにまた同じように焦がそうとするシェフのようなものです。

KernelProには**検索メモリ(サーチ・メモリー)**があります。それは、あらゆる失敗、成功、そして「なるほど!」という瞬間を記録し続けるログです。

  • 「前回、大きなフライパンを使ってみたが、重すぎた。」
  • 「この種類の料理には、ライブラリ内のショートカットがうまく機能することを発見した。」

このログは各ステップでAIにフィードバックされるため、AIは自らの履歴から学び、同じ間違いを繰り返さないようにします。

4. 「ソースコード・ハンター」(ゼロからの記述)

ほとんどのAIシステムは、既製品のパーツを組み立てようとします(あらかじめ調理された食材のライブラリを使うようなものです)。KernelProは異なります。彼はレシピをゼロから書き上げることができます。
このシステムには、既存の高性能コード(CUTLASS/CuTe)の膨大なライブラリの中から、必要な特定の構成要素を見つけ出すツールを備えています。そして、熟練のシェフがするように、特定のハードウェアに完璧にチューニングされた、全く新しいカスタム料理へとそれらを組み立てるのです。

5. 「エネルギー・セーバー」(ボーナス機能)

通常、人々は料理がどれだけ「速く」作られるかだけに注目します。しかし、KernelProは、どれだけの電気を使用するかについても考慮する最初のシステムです。
テストにおいて、システムは全く同じ速度で同じ料理を作る方法を見つけましたが、「食材(命令)」の選び方を変えることで、11.6%少ないエネルギーで済ませることができました。これは、熱を上げるのではなく、より優れた鍋を使うことで、より速くお湯を沸かす方法を見つけるようなものです。

結果

困難なコーディング課題(KernelBench)を用いたテストにおいて:

  • レベル1(初級): 以前の最高システムよりも2.4倍高速でした。
  • レベル2(中級): 4.7倍高速でした。
  • レベル3(上級): 5.3倍高速でした。

複雑なAIトレーニングタスク(MoE)を用いた実世界のテストでは、人間による手動チューニングされたコードを1.23倍上回り、人間がこれまで書いてこなかった新しい高速プログラムをゼロから作り上げました。

要約すると: KernelProは、AIにコードの修正方法を「推測」させるだけではありません。問題を説明してくれる専門の翻訳チーム、解決策を探求するスマートな探偵、失敗から学ぶための記憶、そしてカスタムコードをゼロから書き上げる能力をAIに与えます。これにより、混乱した見習いを、熟練のシェフへと変貌させるのです。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →