Repolode
xlite-dev

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. 1

    リポジトリをクローンし、サブモジュールを初期化します

    git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA
  2. 2

    サブモジュールを更新し、interview kernels ディレクトリに移動します

    git submodule update --init --recursive --force && cd kernels/interview
  3. 3

    ベンチマーク用に最新の cuBLAS と cuDNN をインストールします(README に記載のとおり古いバージョンを置き換えてください)

    apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache
  4. 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 の数値は毎日更新されます。

関連プロジェクト