NVIDIA/cutlass
CUDA Templates and Python DSLs for High-Performance Linear Algebra
何を解決するか
CUTLASSは、NVIDIA GPU上で高性能な行列-行列乗算(GEMM)および関連する線形代数計算を実装するためのモジュール化された抽象化を提供します。高度に最適化されたCUDAカーネルを書く複雑さを解消するために、並列化の階層構造とデータ移動を再利用可能なソフトウェアコンポーネントに分解し、すべてをゼロから書かずに、理論上の最適なスループットに近い性能を達成できるようにします。
動作方法
CUTLASSはC++テンプレート抽象化と、CuTeと呼ばれるコアライブラリを使用して、スレッドとデータの階層的多次元レイアウトを管理します。カスタムタイリングサイズ、データ型、アルゴリズムポリシーを用いて、特殊化とチューニングが可能です。最近では、CuTe DSL(最初はCuTe DSL)を含むCUTLASS DSLの導入により、Pythonネイティブインターフェースを提供し、コンパイル時間の短縮とC++の深い知識の必要性を減らしつつ、パフォーマンスを維持しています。
対象ユーザー
低レベルのC++を使用するユーザーから、Pythonベースのプロトタイピングワークフローを好むユーザーまで、NVIDIA GPU上で最適化された線形代数演算を実装する必要があるパフォーマンスエンジニア、研究者、学生向けに設計されています。
主な特徴
- 広範なハードウェア対応: VoltaからBlackwell、RubinまでのNVIDIAアーキテクチャを対象としています。
- 豊富なデータ型サポート: FP64、FP32、TF32、FP16、BF16、FP8、FP4、および狭い整数型を含む、幅広い精度をサポートしています。
- CuTeライブラリ: スレッドとデータのテンソルをレイアウトとテンソルを介して記述・操作するための専用システムです。
- Python DSL: DLフレームワークと統合できる、CUDAカーネルを書くためのネイティブPythonインターフェースで、開発サイクルを高速化します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト