TL;DR
KERNELSEEKは、CUDAカーネル最適化でツールや知識を増やすのではなく、停滞・限界主張・完了主張などの局面で短い質問を与え、検証可能なゴールの下で汎用コーディングエージェントを動かす。同一条件のFlashAttention-3ケースでは、ツール富裕型エージェントが0.50×で停滞したのに対し1.13×に到達。フルキャンペーンではFA3で1.16×、FA4で1.46×(geomean)を報告している。
既存手法との違い
原論文は、既存のエージェントを「スクリプト型」と「オープンエンド型」に整理する。スクリプト型は学習方策・最適化メニュー・固定ロールなどで各ステップを固定し、適用範囲ではサンプル効率が高いが、レシピが外れると停滞する。オープンエンド型はモデル自身がカーネル群を変異させ、自由度は高いが、数千回の評価・反復編集・誤った候補のコストを払う。直接比較の主対象は、 prevailing style で作ったツール富裕型自律エージェントで、オーケストレーションループ、前処理済みプロファイル、ドキュメント検索、学習済み教訓ストアを備える。比較条件は同一のFA3ケーススタディ課題、同一評価器、26構成、同一H200ノード、同一週。この比較で、ツール富裕型エージェントは133モデル駆動ステップ後に0.50×で plateau し、KERNELSEEKは1.13×に到達した。違いは、装備を増やすか、決定的局面で方向づけの質問を与えるかにある。
使える条件
前提は、既に動作するCUDAカーネル、複数のシナリオ、検証可能なゴールがあること。評価器は候補をビルドし、各シナリオでシードの出力とfp32参照に対して正しさを確認し、同一GPU上でシードと背中合わせに計測して、シナリオ別比率とgeomeanを返す。制約は一度宣言し機械的に強制する(事例ではCUTLASS、CuTe、cuBLAS、cuDNNの禁止をビルド済みバイナリのシンボル検査で確認)。KERNELSEEKはオペレータ非依存を掲げ、汎用コーディングエージェントに最小ハーネスと質問を与える。質問は人間のステアラまたは再利用可能な質問バンクから供給され、開始時・停滞時・限界/完了主張時・不審な大勝利後・説明で片付けられた正しさ崩れなどで使う。評価対象は、CUTLASS/CuTe/cuBLAS/cuDNNを使わない単一CUDAファイルのFA3/FA4級フォワードattentionカーネルで、vLLMが公開する機能面、Hopper/Blackwellを含む。これ以外のオペレータや条件での有効性は提示本文からは確認できない。
限界と未検証の範囲
評価の中心はattentionカーネルであり、比較対象として強い上流実装が存在するケーススタディである。したがって、他のオペレータ、融合モデル、上流実装がない課題への一般化は未確認。質問バンクの初版は単一ケーススタディ由来で、上流カーネルやattention構造に寄った項目が多かったため、公開版では除外・整理している。公開版は101の中核項目、他実装がある場合の5項目、アーキテクチャ別18項目を持つが、29項目はtraceタグ付き、72項目は公開資料由来で未検証とされている。人間の質問162メッセージと11.5Kツール呼び出しの分析はあるが、質問の効果を他のモデル・タスクで系統的に検証したとは述べていない。Blackwellは「実行可能なシナリオ」での正しさであり、全シナリオではない。Stop hookの判定をモデルに委ねた一度の例では、早すぎる完了主張を許したと報告されており、計算可能な条件はモデル判定にしない設計が重要とされる。
解説
智也くん、KERNELSEEKって論文見た?CUDAカーネル最適化を質問で方向づけるやつ。なんか面白そうでさ。
見た。AIエージェントに道具を足すんじゃなくて、詰まったときに短い質問を入れる話だよね。
そうそう。まず何が問題なの?エージェントにプロファイラとかドキュメント渡せば強いんじゃないの?
論文は既存のエージェントを二種類に分けてる。スクリプト型は手順や最適化メニューを固定するから、ハマる範囲では効率的だけど、レシピから外れると停滞する。オープンエンド型は自由に変異させるけど、何千回も試して間違った候補も量産する。
なるほど。で、両方に足りないのが「方向」ってこと?
そう。「どこに残りの差があるか」という仮説がなくて、情報を増やしても解決しない、という主張。ツール富裕型の自律エージェントを同じFA3の課題で走らせたら、133ステップで0.50倍に停滞したって報告されてる。
0.50倍って、遅くなってるじゃん…。で、KERNELSEEKは?
同じ課題・評価器・26構成・同じH200ノード・同じ週で1.13倍。やり方は、既存カーネルを種にして、汎用コーディングエージェントを最小ハーネスで動かす。ゴールは全シナリオで正しく速い、みたいに検証可能な述語にして、Stop hookで機械的に強制する。
質問はいつ入れるの?
開始時のスコープ固定、停滞時、限界や完了を主張したとき、不審な大勝利の後、正しさが崩れたのに説明で片付けそうなとき。質問は答えを含まず、その場で測れる測定を要求する。人間が最初に聞いて、繰り返す質問はバンク化してエージェント自身が使う。
質問の例は?
論文だと「その勝ちはノイズじゃない?」「ベースラインはカーネルサイクルで勝ってるの、それとも壁時計だけ?」みたいに、測定や層の移動を促すもの。あと「その限界はハードウェアの性質?自分の設計の性質?」って聞く。
評価はattentionだけ?
中心的にはFA3/FA4級のフォワードattentionで、CUTLASS、CuTe、cuBLAS、cuDNNなしの単一CUDAファイル。フルキャンペーンではFA3で1.16倍、FA4で1.46倍のgeomean。Hopperは182シナリオ全部、Blackwellは実行可能なシナリオで正しいと報告されてる。
すごい。でも限界もあるよね?
ある。強い上流実装があるattentionのケーススタディが中心で、他のオペレータや融合モデル、上流がない課題への一般化は未確認。質問バンクも初版は単一ケース由来で上流カーネルやattention構造に寄ってたから、公開版では除外して、101の中核項目、他実装がある場合の5項目、アーキテクチャ別18項目にしてる。ただ72項目は公開資料由来で未検証。
あとStop hookの判定をモデルに任せた一度の例では、早すぎる完了主張を通しちゃったんだっけ?
そう。計算できる条件はモデル判定にしないのが大事、って論文も言ってる。あとBlackwellは全シナリオじゃなくて実行可能なシナリオでの正しさ。
なるほどね。つまり「もっと装備」じゃなくて「いいタイミングでいい質問」ってのがミソなんだ。
そう。質問は方向づけだけして、次に何をするかの自由度は狭めない。人間の162メッセージと11.5Kツール呼び出しの分析でも、大きな改善は情報を渡した質問じゃなくて、層を移動させたか限界主張を否定した質問の後に来た、って書いてある。
じゃあ私のレポートもKERNELSEEK式で、詰まったら「その締切、本当にハードウェアの限界?」って質問してもらおうかな。
それは質問じゃなくて現実逃避だろ。