NVIDIA/cuda-tile

CUDA Tile IR is an MLIR-based intermediate representation and compiler infrastructure for CUDA kernel optimization, focusing on tile-based computation patterns and optimizations targeting NVIDIA tensor core units.

何を解決するか

CUDA Tile IR は、高パフォーマンスな CUDA カーネルの開発を簡素化するために、専用の中間表現(IR)とコンパイラインフラを提供します。特にタイルベースの計算パターンの最適化と NVIDIA のテンソルコアユニットの活用をターゲットとし、メモリ階層の管理や GPU 特有の最適化を手動で行う複雑さを軽減します。

動作方法

MLIR(Multi-Level Intermediate Representation)フレームワークに基づいて構築されており、タイル計算を表現するドメイン固有の方言を提供します。Python バインディングによりプログラムによる IR の構築が可能で、効率的なシリアル化のためのバイトコード形式も含まれます。プログラムは MLIR からバイトコードにコンパイルされ、CUDA ドライバ API を通じた JIT コンパイルまたは tileiras ツールを使用した事前コンパイル(AoT)により cubin ファイルに変換できます。

対象ユーザー

タイリングやテンソルコア最適化の高レベルな抽象化を使いたい、高パフォーマンスな GPU カーネルを開発する開発者向けに設計されています。Raw CUDA コードを書くのではなく、より抽象的なアプローチを希望する方々に適しています。

主な特徴

  • MLIR ベースの方言: タイルベースの計算に特化した第一級の操作と型を提供します。
  • Python API: IR のプログラム的扱いや変換を可能にします。
  • 柔軟なコンパイル: Just-In-Time(JIT)および Ahead-of-Time(AoT)の両方のコンパイルパスをサポートします。
  • テンソルコア最適化: NVIDIA のテンソルコアユニットを最大限に活用するように特別に設計されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト