HGEMM、FP8/FP4 GEMM、Flash-Attentionを網羅する200以上のカーネルを収録した、最新のCUDA学習ノートとコードのオープンソース書籍。
NVIDIA/cutlass
NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。
- スター
- 10,623
- フォーク
- 2,133
- 未解決の Issue
- 785
- 最終コミット
- 昨日
これは何?
CUTLASSは、CUDA上で高性能な行列積(GEMM)や関連演算を実装するための抽象化を集めたライブラリです。処理をスレッド、warp、threadblockの各レベルに分けた再利用可能な階層型コンポーネントで構成し、タイルサイズ、データ型、アルゴリズムポリシーを調整できます。これらのコンポーネントはカスタムカーネルを構築するための部品として利用できます。
C++ライブラリは、FP64、FP32、TF32、FP16、BF16、FP8、ブロックスケーリング形式のFP4およびFP6、狭幅整数など、幅広い数値型に対応し、NVIDIA VoltaからBlackwell、Rubinまでのアーキテクチャで利用できます。中核となるレイアウトおよびテンソルライブラリのCuTeは、GEMMの階層全体で使用されています。
CUTLASS 4では、CUTLASSとCuTeの概念に基づくCUDAカーネルをPythonで記述できるネイティブインターフェース、CuTe DSLが追加されました。現在はパブリックベータです。また、GEMMや畳み込みカーネルの実行と比較に使えるサンプル、ユニットテスト、コマンドラインプロファイラも含まれています。
主な機能
- 01GEMMや畳み込みカーネル向けの、階層型で再利用可能なC++テンプレート
- 02スレッドやデータを記述するためのCuTeレイアウトおよびテンソル抽象化
- 03FP64からFP8、ブロックスケーリング形式のFP4/FP6、狭幅整数型まで対応
- 04PythonでCUDAカーネルを記述するためのCuTe DSL
- 05GEMMや畳み込みカーネルをcuBLASと比較してベンチマークするコマンドラインプロファイラ
ユースケース
- NVIDIA GPU上のディープラーニング処理向けに、高性能なカスタムGEMMや融合カーネルを構築する
- Tensor Coreを使ったGEMMカーネルの構造やチューニング方法を学ぶ
- CuTe DSLを使ってPythonでカーネル設計を試作し、本番環境へ展開する
- 問題サイズに応じたGEMMまたは畳み込みカーネルの構成をプロファイリングして選定する
クイックスタート
- 1
CUTLASS C++ クイックスタートガイドを読む
- 2
Python インターフェース向けの CuTe DSL クイックスタートガイドを読む
使う前に知っておきたいこと
- CuTe DSL はパブリックベータ版で、まだ正式リリースに至っていません。
- Rubin(sm107)GPU では、一部のパック命令に既知のコード生成バグがあります。
- NVIDIA GPU と CUDA ツールチェーンが必要です。
- メタデータからライセンスを明確に判別できないため、使用前にライセンス条件を確認してください。
トピック
よくある質問
- cutlass とは?
- NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。 CUTLASSは、CUDA上で高性能な行列積(GEMM)や関連演算を実装するための抽象化を集めたライブラリです。処理をスレッド、warp、threadblockの各レベルに分けた再利用可能な階層型コンポーネントで構成し、タイルサイズ、データ型、アルゴリズムポリシーを調整できます。これらのコンポーネントはカスタムカーネルを構築するための部品として利用できます。
- cutlass は無料で使えますか?ライセンスは?
- cutlass は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- cutlass は今もメンテナンスされていますか?
- 活発にメンテナンス中。cutlass の最終コミットは 2026年10月20日 です。
- cutlass は何に使えますか?
- NVIDIA GPU上のディープラーニング処理向けに、高性能なカスタムGEMMや融合カーネルを構築する Tensor Coreを使ったGEMMカーネルの構造やチューニング方法を学ぶ CuTe DSLを使ってPythonでカーネル設計を試作し、本番環境へ展開する 問題サイズに応じたGEMMまたは畳み込みカーネルの構成をプロファイリングして選定する
- cutlass のインストール方法は?
- CUTLASS C++ クイックスタートガイドを読む Python インターフェース向けの CuTe DSL クイックスタートガイドを読む
- cutlass はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/NVIDIA/cutlass
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
機械学習モデルの構築からデプロイまでを支える、Python APIとC++ APIを備えたオープンソースのエンドツーエンドプラットフォーム。
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
OpenCVは、複数の言語向けバインディングを備えた、画像処理とコンピュータビジョンのアルゴリズムを提供するオープンソースのC++ライブラリです。
大規模AIモデル向けのPyTorchベースの分散学習・推論システムで、並列化、メモリ最適化、異種ハードウェアでの学習を実現します。
Mambaは、選択的状態空間モデルを基盤とするPyTorchのシーケンスモデリングアーキテクチャで、言語などのシーケンス処理においてTransformerに代わる線形時間の手法を提供します。