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 執行模型。
- 效能分析工具包:提供使用
ncu與compute-sanitizer進行除錯與效能調校的實用指引。
相關
- 專案
- 專案
- 專案
- 專案