NVIDIA GPU向けの高性能GEMMや関連する線形代数カーネルを記述するための、CUDA C++テンプレートライブラリとPython DSL。
xlite-dev/LeetCUDA
HGEMM、FP8/FP4 GEMM、Flash-Attentionを網羅する200以上のカーネルを収録した、最新のCUDA学習ノートとコードのオープンソース書籍。
- スター
- 12,104
- フォーク
- 1,277
- 未解決の Issue
- 3
- 最終コミット
- 12 時間前
これは何?
LeetCUDAは、CUDAでGPUカーネルを書くための学習リソースです。コードリポジトリを併設したオープンソースの書籍として構成されています。単純な要素単位演算やリダクションから行列積、Attentionまで順を追って学べます。各トピックは、CUDAカーネルの実装、PyTorchのPythonバインディング、テストという共通の流れで解説されています。
WMMA、MMA PTX、CuTeを使ったTensor Coreプログラミングを扱い、NVIDIA L20、RTX 4090、RTX 3080 LaptopでのHGEMMベンチマークでは、cuBLASのTFLOPSに対して98%~100%の結果を報告しています。また、MMA PTX命令のみで記述した複数のFlashAttention-2実装に加え、BF16、FP8、FP4精度のカーネルも収録しています。TritonとCUTLASSの例も含まれています。
ビルドスクリプトでビルドできるbenchターゲットと、Claude CodeやGitHub Copilotなどのツールにインストールできるコーディングエージェント向けスキルも提供しています。
主な機能
- 01要素単位演算からHard++レベルのAttentionまで、200以上のCUDAカーネルを収録
- 02WMMA、MMA PTX、CuTeを使ったHGEMM実装とcuBLASとの比較ベンチマーク
- 03純粋なMMA PTXでTensor Coreを活用するFlashAttention-2の実装例
- 04BF16、FP8、FP4のデータ型に対応したカーネル
- 05生のCUDAコードに加え、TritonとCUTLASS/CuTeの例を収録
- 06各カーネルにPyTorchのPythonバインディングとテストを用意
ユースケース
- 基礎から応用まで、段階的にCUDAカーネルプログラミングを学ぶ
- Tensor Coreを使った行列積やFlashAttentionの実装を学ぶ
- 独自のGEMMカーネルやAttentionカーネルをcuBLASまたはSDPAと比較してベンチマークする
- 同梱のスキルを通じて、コーディングエージェントにCUDAの参考例を提供する
クイックスタート
- 1
リポジトリをクローンし、サブモジュールを初期化します
git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA - 2
サブモジュールを更新し、interview kernels ディレクトリに移動します
git submodule update --init --recursive --force && cd kernels/interview - 3
ベンチマーク用に最新の cuBLAS と cuDNN をインストールします(README に記載のとおり古いバージョンを置き換えてください)
apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache - 4
Blackwell GPU 向けにビルドしてベンチマークを実行します
./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
使う前に知っておきたいこと
- ベンチマークには、CUDA toolkit と新しい cuBLAS/cuDNN を備えた NVIDIA GPU が必要です。
- クイックスタートのビルド例は Blackwell(sm_120a)を対象としています。他のアーキテクチャでは異なるビルドフラグが必要です。
トピック
よくある質問
- LeetCUDA とは?
- HGEMM、FP8/FP4 GEMM、Flash-Attentionを網羅する200以上のカーネルを収録した、最新のCUDA学習ノートとコードのオープンソース書籍。 LeetCUDAは、CUDAでGPUカーネルを書くための学習リソースです。コードリポジトリを併設したオープンソースの書籍として構成されています。単純な要素単位演算やリダクションから行列積、Attentionまで順を追って学べます。各トピックは、CUDAカーネルの実装、PyTorchのPythonバインディング、テストという共通の流れで解説されています。
- LeetCUDA は無料で使えますか?ライセンスは?
- LeetCUDA は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- LeetCUDA は今もメンテナンスされていますか?
- 活発にメンテナンス中。LeetCUDA の最終コミットは 2026年10月20日 です。
- LeetCUDA は何に使えますか?
- 基礎から応用まで、段階的にCUDAカーネルプログラミングを学ぶ Tensor Coreを使った行列積やFlashAttentionの実装を学ぶ 独自のGEMMカーネルやAttentionカーネルをcuBLASまたはSDPAと比較してベンチマークする 同梱のスキルを通じて、コーディングエージェントにCUDAの参考例を提供する
- LeetCUDA のインストール方法は?
- リポジトリをクローンし、サブモジュールを初期化します: git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA サブモジュールを更新し、interview kernels ディレクトリに移動します: git submodule update --init --recursive --force && cd kernels/interview ベンチマーク用に最新の cuBLAS と cuDNN をインストールします(README に記載のとおり古いバージョンを置き換えてください): apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache Blackwell GPU 向けにビルドしてベンチマークを実行します: ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
- LeetCUDA はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/xlite-dev/LeetCUDA
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
OpenAI互換APIで大規模言語モデルを実行・提供する、高速でメモリ効率に優れたライブラリ兼サーバー。
SGLangは、多様なGPU、TPU、CPU環境で大規模言語モデル、ビジョン言語モデル、拡散モデルを提供するオープンソース推論フレームワークです。
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
LLM推論エンジン間でattentionのKVキャッシュを保存・共有・再利用し、time-to-first-tokenを短縮する管理レイヤー。
学習と推論に向けた、FP8 dispatchとNVLink/RDMAに対応するexpert-parallel MoE向けGPU通信ライブラリ。