ByteNoteByteNote
LeetCUDA:200 道实战题练出 cuBLAS 性能
字

字节笔记本

2026年10月5日 · 约 7 分钟读完

LeetCUDA:200 道实战题练出 cuBLAS 性能

API中转
¥120

学 CUDA 最痛苦的不是「不会写」,而是「写完跑不快」。入门教程只讲到 thread 和 block 的基本概念,进阶优化技巧却散落在论文和博客里,一条技巧一篇文章,很少有人系统地带你从「能写」走到「写得又快又稳」。GitHub 上的开源项目 LeetCUDA(xlite-dev/LeetCUDA,目前约 12k stars,GPL-3.0 协议)针对的就是这个断层:200 多道循序渐进的 CUDA Kernel 实战题,一套性能达到 cuBLAS 98% 到 100% 的 HGEMM 库,外加 100 多篇高性能计算技术博客。

LeetCUDA 项目总览:200+ 实战题、HGEMM 库与 100+ 博客

一、它是什么

LeetCUDA 是一份系统化的 CUDA 进阶教程,作者把它定位成「面向初学者的现代 CUDA 学习笔记开源书」。整个项目由三部分组成:

  • 200+ 道 Kernel 实战题:按 Easy 到 Hard++ 分级,从 elementwise(relu、gelu)、histogram 这类基础题,一直排到 FlashAttention-2 这类完整算子,另设 Triton 与 CUTLASS 专区;
  • 一套 HGEMM(半精度矩阵乘)库:覆盖 WMMA、MMA、CuTe 三条实现路径,在 L20、RTX 4090、RTX 3080 Laptop 上实测达到 cuBLAS TFLOPS 的 98% 到 100%;
  • 100+ 篇技术博客与一本 PDF 教材:博客覆盖 FlashAttention、vLLM、PTX 汇编、CuTe/CUTLASS 等主题,配套的 LeetCUDA.pdf 有 600 多页、40 多章。

它的定位不是教你 CUDA 语法,而是帮你跨过「能跑就行」这道坎,把代码写到生产级性能。

二、它解决什么问题

学 CUDA 有个常见的「天花板」现象:

text
入门阶段:能写 elementwise、reduce 这类基础 kernel,感觉学会了
进阶阶段:想优化 GEMM,才发现 tiling、shared memory、向量化访存、
         双缓冲、Tensor Core 一大堆技巧
         每个技巧都是单独一篇论文或博客
         不知道怎么系统组合,于是卡住

LeetCUDA 的解法是把优化技巧编排成 200 多道递进练习:每道题只引入一两个新概念,题目之间前后衔接,组合起来就是一条完整的 GEMM 优化路径。你不需要自己从几十篇资料里拼凑知识图谱,顺着题目做下去即可。

三、学习路径:六个阶段

仓库把题目按 Easy 到 Hard++ 分级,下面的六阶段是按内容递进做的归纳:

LeetCUDA 学习路径:从 elementwise 到 FlashAttention-2 的六个阶段

阶段代表题目练什么
一elementwise、histogram、矩阵转置熟悉 thread 组织与全局内存访问
二warp/block reduce、softmax、RoPE、layer norm掌握规约模式与数值稳定性
三dot product、sgemv、hgemv理解内存层次与带宽瓶颈
四sgemm/hgemm:tiling、sliced K、双缓冲、async copy、swizzle把带宽和流水线榨干
五WMMA、MMA、WGMMA、TMA、CuTe/CUTLASS用 Tensor Core 与异步搬运加速
六FlashAttention-2、FFPA组合全部技巧做完整注意力算子

每一级都建立在上一级的产出之上:到了第四阶段,前面练过的向量化访存、规约、双缓冲会全部汇入 sgemm/hgemm 的优化循环里。

四、核心成果:HGEMM 达到 cuBLAS 98% 到 100%

最有说服力的是项目最终实现的 HGEMM 性能:在 L20、RTX 4090、RTX 3080 Laptop 三块显卡上,半精度矩阵乘实测达到 NVIDIA cuBLAS TFLOPS 的 98% 到 100%。这意味着跟着做完这条路径,你手写的矩阵乘可以和官方库一样快。对一个教学向的开源项目来说,这个基准的价值在于每一步优化都有可验证的真实收益,而不是停留在演示代码的层面。

五、100 多篇博客补足理论

主题内容
CUDA 面试题高频考点与底层原理拆解
PTX 汇编从指令层面理解 kernel 行为
FlashAttention注意力算子优化逐步拆解
vLLM推理引擎里的 CUDA 实战
CuTe/CUTLASSNVIDIA 官方抽象与模板库用法
分布式系统高性能计算相关的分布式主题

实战题负责「练」,博客负责「懂」,二者对照着读,遇到跑不快的 kernel 时能定位到具体是访存、流水线还是 Tensor Core 利用率的问题。

六、谁适合学

  • 做 AI 或深度学习,需要写自定义 Kernel 加速模型;
  • 做 GPU 编程、HPC 或科学计算;
  • 学过 CUDA 基础,但卡在「写不快」;
  • 想弄清 cuBLAS、cuDNN 这类官方库底层是怎么优化的;
  • 准备 GPU 方向面试,仓库也明确这套题目可用于刷题;
  • 做 LLM 推理优化,FlashAttention、量化等环节都离不开 CUDA 功底。

七、小结

一句话:LeetCUDA 用 200 多道递进式实战题,把 CUDA 优化从入门一路带到 HGEMM 达 cuBLAS 98% 到 100% 的水平,再用 100 多篇博客和 600 多页 PDF 补足理论。如果你做 GPU 编程或 AI 基础设施,这是目前少见的把「系统性」和「性能上限」同时做高的开源教程。仓库地址:https://github.com/xlite-dev/LeetCUDA

本文基于 GitHub 开源仓库 xlite-dev/LeetCUDA 的公开 README 资料整理。

相关文章

分享: