gau-nernst/learn-cuda

Learn CUDA with PyTorch

解決的問題

本倉儲為使用 PyTorch 的使用者提供了一條撰寫高效能 CUDA 內核的結構化學習路徑。透過提供常見 AI 相關運算的實用範例,彌補高階 PyTorch 程式碼與底層 GPU 硬體加速之間的差距。

工作原理

本專案由一系列逐步進階的範例(01 到 09)組成,實作基本的 GPU 運算。範例範圍從簡單的向量加法,到針對特定 GPU 架構(SM80、SM100、SM120)優化之複雜運算,如 Flash Attention 與矩陣乘法。同時也包含使用 Nsight Compute、PyTorch 分析器與 Perfetto 等效能分析工具,優化內核效能的指引。

適用對象

希望學習如何撰寫自訂 CUDA 內核以優化 PyTorch 模型的開發者與研究人員,以及對 NVIDIA GPU 底層硬體架構感興趣的人。

主要亮點

  • 架構特定優化:涵蓋不同 SM 版本與 CDNA3 的矩陣乘法範例。
  • 面向 AI 的基礎運算:實作 Softmax、Flash Attention 與行/區塊縮放矩陣乘法。
  • 硬體深度解析:詳細說明 GPU 記憶體層次結構(全域記憶體、L2、共享記憶體與暫存器)與 SIMT 執行模型。
  • 效能分析工具包:提供使用 ncucompute-sanitizer 進行除錯與效能調校的實用指引。

相關

  • 專案
  • 專案
  • 專案
  • 專案