xlite-dev/LeetCUDA
Modern CUDA Learn Notes with PyTorch for Beginners, 200+ CUDA Kernels, Tensor Cores, HGEMM, FA-2 MMA.
解决的问题
LeetCUDA 为初学者提供了掌握现代 CUDA 编程的全面、结构化的学习路径,专门针对 AI 工作负载的内核优化。它弥补了基础 CUDA 知识与关键 AI 算子(如矩阵乘法 (GEMM) 和注意力机制)的高性能实现之间的鸿沟。
工作原理
该项目通过从“Easy”到“Hard++”难度的 200 多个 CUDA 内核的进阶过程来组织学习。每个主题都遵循一致的工作流程:实现自定义 CUDA 内核、创建 PyTorch Python 绑定并运行测试。它特别强调使用 Tensor Cores(通过 WMMA、MMA 和 CuTe),并支持包括 FP32、FP16、BF16 和 FP8 在内的各种数据类型。该仓库包含 HGEMM 和 FlashAttention-2 的高性能实现,展示了诸如 block swizzling、multi-staging 和 fine-grained tiling 等高级技术。
适用对象
专为想要学习如何为深度学习编写高性能 CUDA 内核的初学者和开发人员,以及准备参加 AI 基础设施领域技术面试的人士设计。
亮点
- 广泛的内核库:涵盖逐元素操作、归约和复杂 AI 算子的 200 多个内核。
- 高性能基准测试:包括实现达到 cuBLAS 性能 98-100% 的 HGEMM 实现。
- 高级注意力实现:采用纯 MMA PTX 指令并具有 Split-Q 和 shared QKV SMEM 等优化的 FlashAttention-2。
- 现代硬件支持:构建脚本针对 Ada Lovelace (sm_89)、Hopper (sm_90a) 和 Blackwell (sm_120a) 架构。
- PyTorch 集成:所有内核都设计为可与 PyTorch 绑定一起使用,以便于测试和集成。
相关
- 项目
- Dispatch
- 项目
- 项目
- 项目