Repolode
xlite-dev

xlite-dev/LeetCUDA

开源 CUDA 学习笔记与代码合集,包含 200 多个内核,涵盖 HGEMM、FP8/FP4 GEMM 与 Flash-Attention。

Star
12,104
Fork
1,277
未关闭 Issue
3
最近提交
15小时前

这是什么?

LeetCUDA 是一本开源的 CUDA 编程学习材料,配套代码仓库,以书籍形式组织内容。从逐元素运算、归约等基础内核开始,逐步讲到矩阵乘法和注意力机制,每个主题都包含 CUDA 内核实现、PyTorch Python 绑定和测试。

内容涵盖基于 WMMA、MMA PTX 和 CuTe 的 Tensor Core 编程。项目给出的 HGEMM 基准在 NVIDIA L20、RTX 4090 和 RTX 3080 Laptop 上达到 cuBLAS TFLOPS 的 98%~100%。此外还包含多个使用纯 MMA PTX 指令实现的 FlashAttention-2 版本,以及 BF16、FP8、FP4 精度的内核,并附带 Triton 和 CUTLASS 示例。

仓库提供基于构建脚本的基准测试入口,并提供可安装到 Claude Code、GitHub Copilot 等编码助手中的技能包。

核心功能

  • 01超过 200 个 CUDA 内核,从逐元素运算到高难度注意力实现
  • 02基于 WMMA、MMA PTX 和 CuTe 的 HGEMM 实现,附带与 cuBLAS 的对比基准
  • 03基于 Tensor Core 与纯 MMA PTX 指令的 FlashAttention-2 变体
  • 04覆盖 BF16、FP8、FP4 等数据类型的内核
  • 05提供 Triton 与 CUTLASS/CuTe 示例
  • 06每个内核配有 PyTorch Python 绑定和测试

适用场景

  • 从基础到进阶逐步学习 CUDA 内核编程
  • 研究 Tensor Core 矩阵乘法与 FlashAttention 的实现方式
  • 将自定义 GEMM 或注意力内核与 cuBLAS、SDPA 做性能对比
  • 通过附带的技能包为编码助手提供 CUDA 参考示例

快速上手

  1. 1

    克隆仓库并初始化子模块

    git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA
  2. 2

    更新子模块并进入 interview 内核目录

    git submodule update --init --recursive --force && cd kernels/interview
  3. 3

    安装用于基准测试的最新 cuBLAS 和 cuDNN(按 README 替换旧版本)

    apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache
  4. 4

    为 Blackwell 显卡构建并运行基准测试

    ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench

使用前须知

  • 需要 NVIDIA GPU 以及 CUDA 工具包,基准测试还需要较新的 cuBLAS/cuDNN。
  • 快速开始示例针对 Blackwell(sm_120a)构建,其他架构需要不同的编译参数。

标签

常见问题

LeetCUDA 是什么?
开源 CUDA 学习笔记与代码合集,包含 200 多个内核,涵盖 HGEMM、FP8/FP4 GEMM 与 Flash-Attention。 LeetCUDA 是一本开源的 CUDA 编程学习材料,配套代码仓库,以书籍形式组织内容。从逐元素运算、归约等基础内核开始,逐步讲到矩阵乘法和注意力机制,每个主题都包含 CUDA 内核实现、PyTorch Python 绑定和测试。
LeetCUDA 可以免费使用吗?用的什么许可证?
LeetCUDA 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
LeetCUDA 还在维护吗?
活跃维护中。LeetCUDA 最近一次提交是在 2026年10月20日。
LeetCUDA 适合用来做什么?
从基础到进阶逐步学习 CUDA 内核编程 研究 Tensor Core 矩阵乘法与 FlashAttention 的实现方式 将自定义 GEMM 或注意力内核与 cuBLAS、SDPA 做性能对比 通过附带的技能包为编码助手提供 CUDA 参考示例
LeetCUDA 怎么安装和运行?
克隆仓库并初始化子模块: git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA 更新子模块并进入 interview 内核目录: git submodule update --init --recursive --force && cd kernels/interview 安装用于基准测试的最新 cuBLAS 和 cuDNN(按 README 替换旧版本): apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache 为 Blackwell 显卡构建并运行基准测试: ./build.sh --arch sm_120a && ./bin/leetcuda_bench_sm120a.bin --bench
在哪里获取 LeetCUDA?
源代码和安装说明在 GitHub 上:https://github.com/xlite-dev/LeetCUDA

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目