gau-nernst/learn-cuda
Learn CUDA with PyTorch
何を解決するか
このリポジトリは、PyTorchを使用するユーザー向けに、高性能CUDAカーネルを書くための構造的な学習パスを提供します。高レベルのPyTorchコードと低レベルのGPUハードウェア加速の間のギャップを埋め、AI関連の一般的な演算の実用的な例を提供します。
仕組み
このプロジェクトは、01から09までの段階的な例から構成されており、基本的なGPU演算を実装しています。単純なベクトル加算から、特定のGPUアーキテクチャ(SM80、SM100、SM120)向けに最適化されたFlash Attentionや行列乗算まで、さまざまな演算をカバーしています。また、ncuやcompute-sanitizerを用いたデバッグとパフォーマンスチューニングのための実用的な手順も含まれています。
対象読者
PyTorchモデルの最適化のためにカスタムCUDAカーネルを書く方法を学びたい開発者や研究者、およびNVIDIA GPUの下位レベルのハードウェアアーキテクチャに興味がある人。
主な特徴
- アーキテクチャ固有の最適化: さまざまなSMバージョンおよびCDNA3向けの行列乗算の例。
- AI向けプリミティブ: Softmax、Flash Attention、行/ブロックスケーリング行列乗算の実装。
- ハードウェアの詳細解説: GPUメモリ階層(グローバル、L2、共有、レジスタ)とSIMT実行の詳細な説明。
- プロファイリングツールキット:
ncuとcompute-sanitizerの実用的な使い方に関する手順。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト