跳到主要内容

README

🚀 GPU 编程读书会

🎯 目标

通过动手实践、小组讨论和具体实现,从基础概念出发,深入理解 GPU 编程,亲手编写 CUDA Kernel,掌握现代 AI 和科学计算背后的加速原理。

✅ 前置要求

为了更好地参与学习,你需要具备以下基础: 💻 Python & C++:熟悉基本语法及内存操作

📐 线性代数:了解向量和矩阵乘法(点积、行列变换等)

🧠 核心概念

我们将拆解 GPU 的执行模型,并理解其如何映射到实际计算任务中:

  • Kernels(核函数) – 你在 GPU 上运行的代码
  • Threads(线程) – 最小的执行单元
  • Blocks(线程块) – 线程的集合
  • Grids(网格) – 线程块的集合
  • Warps(线程束) – 32 个线程组成的调度单元,性能优化的关键

此外,我们还将学习不同类型的内存(全局、共享、局部)和 CPU 与 GPU 之间的数据传输模式。

📚 学习资料

CUDA 入门课程(第 1–5 章)

🛠️ 实践项目

在读书会期间,我们将一起阅读代码、动手实现并调试优化。计划中的项目包括: Hello CUDA World

编写并运行你的第一个 CUDA kernel

通过打印输出理解线程层级结构

向量加法(Vector Add)

利用多个线程并行计算

与 CPU 版本对比性能差异

矩阵乘法(Matrix Multiplication)

用全局内存实现基础的 dense matmul

逐步优化:引入 tiling 和共享内存

进阶:探索 warp-level 优化策略

✨ 学习成果

完成本读书会后,你将能够: 建立清晰的 GPU 编程心智模型

从零编写简单的 CUDA 核函数

学会优化内存访问和线程利用率

为进一步学习 Triton、Cutlass 等库做好准备,甚至可以为 PyTorch/JAX 等框架编写自定义算子

cuda-samples/Samples/0_Introduction/matrixMul/matrixMul.cu at master · NVIDIA/cuda-samples 我看 nv 官方的我也懵 https://github.com/NVIDIA/cuda-samples/blob/master/Samples/0_Introduction/matrixMul/matrixMul.cu

https://developer.nvidia.com/blog/using-shared-memory-cuda-cc/ 那我看这个。

nunchaku/src/kernels at main · mit-han-lab/nunchaku 我觉得 看懂这个 kernel 就直接专家了 https://github.com/mit-han-lab/nunchaku/tree/main/src/kernels https://hanlab.mit.edu/

想要预习的同学看这几个链接就好了

https://github.com/KevinCheung2259/CUDA-Lession2/tree/main/cuda-learning https://segmentfault.com/a/1190000007533157 https://leetgpu.com/challenges/monte-carlo-integration https://www.youtube.com/watch?v=oQT7IC0x254

https://segmentfault.com/a/1190000007533157

https://dev.to/drxven/megakernel-compiling-llms-for-low-latency-inference-130c https://github.com/mirage-project/mirage https://ericdarve.github.io/