AI & Machine Learning

TorchInductorのCuteDSLバックエンド、最先端GEMMを実装

コンパイル途中で、TorchInductorのオートチューナーがCuteDSLを起動する。これはNVIDIAが開発したPython DSLで、静かにGEMMカーネルのルールを書き換えている。CUTLASSよりも高速で、同等の実力を持つこのバックエンドは、PyTorch開発者が待ち望んでいたものだ。

{# Always render the hero — falls back to the theme OG image when article.image_url is empty (e.g. after the audit's repair_hero_images cleared a blocked Unsplash hot-link). Without this fallback, evergreens with cleared image_url render no hero at all → the JSON-LD ImageObject loses its visual counterpart and LCP attrs go missing. #}
TorchInductorにCuteDSL追加、NVIDIA GPUでのSOTA GEMMを実現 — Open Source Beat

Key Takeaways

  • CuteDSLがTorchInductorのバックエンドに加わり、CUTLASSレベルのGEMMパフォーマンスをPython並みの高速コンパイルで提供。
  • トランスフォーマーの主要部分であるGEMMのみをターゲットとし、メモリバウンドな演算はTritonに任せる。
  • NVIDIAのコミットメントによりPyTorchのメンテナンス負担は最小限になり、CUTLASSの後継としての位置づけ。

TorchInductorのオートチューナーが一旦停止する。TritonとcuBLAS、CUTLASSと新参者であるCuteDSLを比較検討し、トランスフォーマー演算を食い尽くすGEMMにはPythonベースの候補を選ぶ。

これは単なる誇張ではない。PyTorchのバックエンド戦争における計算された方針転換であり、LLMにおいて演算の大部分を占める行列計算(まさに貪欲な獣だ)は、ミリ秒単位のハードウェア制御を要求する。

なぜCuteDSLはTorchInductorにスムーズに統合されるのか?

満たすべき条件は3つ:低メンテナンス、コンパイル回帰なし、主要ワークロードでの圧倒的な速度。CuteDSLはこれら全てをクリアする。NVIDIAはリソースを投じ、PyTorchエンジニアの負担を軽減する、すぐに使えるカーネルテンプレートを提供している。コンパイル時間? Tritonと同等であり、CUTLASSのnvccによる重いコンパイル作業と比較すれば天国だ。

「CuteDSLは、FP8 GEMMとエピローグ融合で高いパフォーマンスを発揮することが証明されているCUTLASS C++と同じ抽象化の上に構築されていますが、Pythonで書かれており、コンパイル時間が速く、メンテナンスも容易です。」

これはPyTorchチームからの直接の声だ。飾り気はない。そして、ここに隠された重要な点がある。これは単なるバックエンドの入れ替えではない。PyTorchがPythonを活用してNVIDIAのテンソルコアを制御しようとする試みなのだ。H100の分散共有メモリからB200のクラスタートリックまで、すべてが対象となる。

CuteDSLは、C++の煩わしさなしに、ワープ、スレッドブロック、メモリ階層といったスタック全体を露出させる。オートチューニングが候補を爆発的に生成し、融合のベンチマークが可能になる。既にTritonで強力なPyTorchのパイプラインは、今やGEMMの精度にまでスケールする。

しかし、待て。GEMMだけだ。なぜか?

GEMMが支配的——なぜそれにこだわるのか?

トランスフォーマーは囁かない。それらのフォワードパスはGEMMを叫ぶ:アテンション射影、FFN、出力ヘッド。 GPUサイクル時間の大部分を毎回占める。ピーク利用率?それはタイルサイズをテンソルパイプラインに合わせ、共有メモリを適切にステージングし、ワープをマエストロのようにスケジュールすることを意味する。

高水準言語はこれを隠蔽する。CuteDSLは——CUTLASSのように——隠さない。手作業で最適化されたテンプレートから始め、形状に合わせてパラメータを調整する。ゼロからの生成はしない。それはマゾヒストのためだ。

Tritonは残りを担当する。要素ごとの演算、活性化、削減——メモリバウンドで、ベクトル化された至福。どちらのDSLも、例えばGB200スケールでのソフトマックスでは帯域幅の限界に達する。そこにCuteDSLの低レベルな手間をかける意味はない。

CuteDSLは汗をかかずにCUTLASSをどう凌駕するのか?

CUTLASS C++は期待に応える。FP8 GEMM、エピローグのタイトな融合。しかし、各バリアントごとに? 完全なnvccコンパイル。オートチューニングは量に窒息し、融合ベンチマークは? 諦めろ。

CuteDSLはスクリプトを反転させる。PythonからMLIRコンパイラへ、電光石火の速さだ。CUTLASSと同じタイル代数、メモリプリミティブ、融合モデル。それにもかかわらず、TorchInductorはTritonのように扱う:完全なオートチューン・フューリー。

NVIDIAのハードウェア進化——Hopperのクラスタ、Blackwellの分散SM——は、CuteDSLのプリミティブにぴったり合う。オープンソースの勢いが加速:Tri DaoのQuack、ColfaxのJay Shah。星が並んだ。

そして、ユニークな角度は? これはCUDA自身の進化を反映している。PTXを覚えているか? ツールには十分な高水準でありながら、ISAの微調整には十分な低水準。CuteDSLはGEMMにとってそれだ——PyTorchのPTXモーメントであり、DSLにコンパイラの複雑さを任せ、NVIDIAが金属を調整する。大胆な予測:Hopperの終盤までには、CUTLASS C++は衰退し、CuteDSLがその役割を担い、コードベースはスリム化し、PyTorchは加速する。

懐疑的か? それはもっともだ。企業の宣伝文句は「戦略的投資」と叫ぶ。しかし、指標は嘘をつかない。コンパイルの同等性は証明され、パフォーマンスはSOTAレベルだ。メンテナンスはNVIDIAにオフロードされる。むしろ、PyTorchは安全策を取っている——CuteDSLがフィールドを周回するまでは。

さらに深く:このバックエンドの入れ替えは、PyTorchのGEMMへの野心を示している。cuBLASラッパーに満足せず、今やDSLネイティブだ。NVIDIAスタックでLLMをチューニングする開発者は、ピークにさらに密着する融合カーネル、短縮されたランタイムを期待できる。

GEMM以外については? Tritonが保持する。実験が確認:両DSLからのソフトマックスカーネルは、サイズが大きくなるにつれてGB200帯域幅を飽和させる。後退なし、ゲインを追い求める複雑さもなし。

CuteDSLはPyTorch GEMMオートチューニングの未来か?

はい、ハードウェアが進化し続けるならば。B200のスレッドブロッククラスタ? CuteDSLプリミティブがネイティブに同期する。将来の世代? 同じ抽象化がスケールする。CUTLASS C++はnvccの下で軋む;Pythonは流れる。

PyTorchの基準は恣意的ではなかった。ベンダーコミットメント(チェック)、時間中立性(チェック)、ワークロードでの勝利(チェック)。結果:オンザフライで生成されるSOTA GEMM。

PRの光沢を批判するか? それはある——「長期戦略的投資」は役員室の匂いがする。しかし、実質がそれを裏付ける:より高速なコンパイルがオートチューニングの約束を解き放ち、融合決定がリアルタイムになる。トランスフォーマーが勝利する。

歴史的な並列:GCCの台頭は、速度とポータビリティでランチを奪うことで、プロプライエタリCコンパイラを壊滅させた。CuteDSLもGEMMバックエンドにとってそれを行うことができる——PythonのアクセシビリティがNVIDIAの低レベルな優位性を民主化する。

CuteDSLがLLMトレーニングにとって重要なのはなぜか?

GEMMで節約されたサイクルが連鎖する。フォワードパスがタイトになり、バックワードも同様に。ファインチューニングは数時間から…より短く。GB200クラスタでは、それはクラスタ相当のスループットになる。

開発者はテンプレートを取得し、形状を調整し、TorchInductorに勝者を選ばせる。これ以上C++カーネルハックは不要だ。


🧬 関連インサイト

よくある質問

TorchInductor CuteDSLバックエンドとは?

PyTorchのTorchInductorに統合されたNVIDIAのPython DSLであり、高性能GEMMカーネルを生成し、CUTLASSの制御力とTriton並みのコンパイル速度を両立させる。

CuteDSLはPyTorchでCUTLASSを置き換えるのか?

Pythonコンパイルの高速化と共通の抽象化により、新しいNVIDIAハードウェアでは最終的に置き換えられる位置づけであり、長期的にはメンテナンスが簡素化される。

CuteDSLはLLM推論速度を向上させられるか?

可能性はある。特にH100/B200 GPUでのエピローグ融合において、トランスフォーマー層でのより良いオートチューニングされたGEMMを可能にすることで。

Written by
Open Source Beat Editorial Team

Curated insights, explainers, and analysis from the editorial team.

Worth sharing?

Get the best Open Source stories of the week in your inbox — no noise, no spam.

Originally reported by PyTorch Blog