gau-nernst/learn-cuda

Learn CUDA with PyTorch

何を解決するか

このリポジトリは、PyTorchを使用するユーザー向けに、高性能CUDAカーネルを書くための構造的な学習パスを提供します。高レベルのPyTorchコードと低レベルのGPUハードウェア加速の間のギャップを埋め、AI関連の一般的な演算の実用的な例を提供します。

仕組み

このプロジェクトは、01から09までの段階的な例から構成されており、基本的なGPU演算を実装しています。単純なベクトル加算から、特定のGPUアーキテクチャ(SM80、SM100、SM120)向けに最適化されたFlash Attentionや行列乗算まで、さまざまな演算をカバーしています。また、ncucompute-sanitizerを用いたデバッグとパフォーマンスチューニングのための実用的な手順も含まれています。

対象読者

PyTorchモデルの最適化のためにカスタムCUDAカーネルを書く方法を学びたい開発者や研究者、およびNVIDIA GPUの下位レベルのハードウェアアーキテクチャに興味がある人。

主な特徴

  • アーキテクチャ固有の最適化: さまざまなSMバージョンおよびCDNA3向けの行列乗算の例。
  • AI向けプリミティブ: Softmax、Flash Attention、行/ブロックスケーリング行列乗算の実装。
  • ハードウェアの詳細解説: GPUメモリ階層(グローバル、L2、共有、レジスタ)とSIMT実行の詳細な説明。
  • プロファイリングツールキット: ncucompute-sanitizerの実用的な使い方に関する手順。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト