Skip to content

psmarter/CUDA-Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA-Practice

CUDA C++ License: MIT Blog

从零开始的 CUDA 编程学习与实践仓库:从基础算子实现到工业级优化(GEMM、Flash Attention、KV Cache 等),提供可运行代码与实机性能记录。配套技术博客见 Smarter's Blog — https://smarter.xin/,系列文章与仓库章节一一对应,便于系统学习。


项目结构

目录 内容 难度
01_Basics 向量加法、朴素/分块矩阵乘法
02_Reduction 归约(朴素/收敛/共享内存/粗化)、点积 ⭐⭐
03_Scan 前缀和、分段扫描 ⭐⭐
04_GEMM_Optimization 分块 / 向量化 / 双缓冲 / 寄存器分块 GEMM ⭐⭐⭐
05_LLM_Ops Softmax、LayerNorm、Flash Attention、RoPE、RMSNorm ⭐⭐⭐⭐
06_Warp_Primitives Warp Shuffle、Reduce、Scan ⭐⭐
07_Quantization FP16/INT8 GEMM、量化与反量化 ⭐⭐⭐
08_Advanced CUDA Graphs、多流、PyTorch C++ 扩展 ⭐⭐⭐
09_Tensor_Core WMMA GEMM、混合精度 ⭐⭐⭐
10_Memory_Optimization 合并访存、Bank Conflict、异步拷贝 ⭐⭐⭐
11_Inference_Optimization KV Cache + PagedAttention、Kernel 融合、动态批处理 ⭐⭐⭐⭐
12_Standard_Libraries cuBLAS、cuFFT、Thrust ⭐⭐
13_Performance_Analysis 占用率、Roofline、Nsight 剖析 ⭐⭐⭐
14_CUTLASS CUTLASS GEMM、Tensor Core、CuTe 基础 ⭐⭐⭐
15_Multi_GPU NCCL AllReduce 多卡通信 ⭐⭐⭐⭐
  • 代码:各章子目录内为独立可编译的 CUDA 工程(见各章 README.md)。
  • 博客Blogs/ 下为与章节对应的深度文章(数学推导、硬件原理、实现与调优);在线版与更多笔记见 https://smarter.xin/
  • 性能结果Results/ 下为真机基准测试报告(环境:2× RTX 4090,详见 Results/README.md)。

技术路线概览

  • L1 基础与访存:执行模型、合并访存、Bank Conflict、双缓冲。
  • L2 经典算子:Warp 原语、归约、前缀和。
  • L3 大模型算子:Flash Attention、RMSNorm、RoPE 等。
  • L4 系统与微架构:Tensor Core、CUTLASS/CuTe、CUDA Graphs、KV Cache、NCCL。

编译与运行

环境要求

  • CUDA Toolkit ≥ 11.0
  • CMake ≥ 3.18
  • C++17
  • 推荐:NVIDIA GPU(如 Ampere 及以上)
  • 14_CUTLASS 需设置 CUTLASS_DIR15_Multi_GPU 需 NCCL 与多卡,Windows/无 NCCL 时可能无法全量编译。

编译

mkdir build && cd build
cmake ..
cmake --build . --parallel 8

运行

请在 build 目录下执行(即先 cd build 再运行):

# 示例:运行基础向量加与 Flash Attention
./01_Basics/01_vector_add/vector_add
./05_LLM_Ops/03_flash_attention/flash_attention

更多用例与子目录说明见各章 README.md;复现与性能采集方法见 Results/README.md


技术栈与统计

  • 语言 / 构建:CUDA C++(C++17)、CMake
  • 依赖:cuBLAS、cuFFT、Thrust、WMMA、CUTLASS、NCCL(多卡)
  • 平台:Linux / Windows (MSVC)
  • 规模:40+ 个 .cu 文件,约 9,500+ 行,带中文注释

参考资料


License

MIT License

About

CUDA编程练习项目-Hands-on CUDA kernels and performance optimization, covering GEMM, FlashAttention, Tensor Cores, CUTLASS, quantization, KV cache, NCCL, and profiling.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors