面向 NVIDIA GPU 的 CUDA C++ 模板库与 Python DSL,用于编写高性能矩阵乘法等线性代数内核。
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
克隆仓库并初始化子模块
git clone https://github.com/xlite-dev/LeetCUDA.git && cd LeetCUDA - 2
更新子模块并进入 interview 内核目录
git submodule update --init --recursive --force && cd kernels/interview - 3
安装用于基准测试的最新 cuBLAS 和 cuDNN(按 README 替换旧版本)
apt install -y cublas-cuda-13 cudnn9-cuda-13 && apt install -y ccache - 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 数据每日更新。
相关项目
一个高吞吐、低显存占用的大语言模型推理与服务引擎,提供兼容 OpenAI 的 API。
SGLang 是一个开源推理框架,用于在多种 GPU、TPU、CPU 等硬件上部署大语言模型、视觉语言模型和扩散模型。
FlashAttention 官方实现,一种节省显存的精确注意力计算内核,用于 GPU 上 Transformer 模型的训练与推理。
面向 LLM 推理的 KV 缓存管理层,可跨推理引擎存储、共享和复用缓存,降低首 token 延迟。
面向 MoE 专家并行的 GPU 通信库,提供 dispatch 与 combine 所需的高吞吐、低延迟 all-to-all 内核。