跳到主要内容
门径 进阶约 3 个月

AI Infra 学习路线

介绍 AI Infra 的学习路线,包括数学基础、深度学习理论、异构加速以及推理优化。

写在前面

CUDA 的学习曲线陡在心智模型:你得先接受「几千个线程同时在跑」这件事, 再谈优化。所以这条路线的第一阶段只做一件事——把执行模型刻进脑子里。

第一阶段:执行模型(2 周)

  • 搞清楚 grid / block / thread / warp 四层结构,以及 threadIdx 那套索引怎么算
  • 写三个练习:向量加法、矩阵转置、共享内存版矩阵乘法
  • 理解 warp 是调度的最小单位,32 个线程同生共死

检验标准:能凭记忆写出带边界检查的二维索引公式,不出错。

第二阶段:性能分析(3 周)

  • 学会用 nsight compute / nsys,先会看再谈优化
  • 三个必懂指标:占用率、访存效率、分支发散
  • 合并访存(coalescing)是性价比最高的一课,务必吃透

检验标准:拿到一个陌生核函数,能说出它慢在哪。

第三阶段:进阶模式(4 周)

  • 共享内存与 bank conflict
  • 线程束原语(shuffle)、异步拷贝(cp.async)
  • 用 __restrict__ / const 帮助编译器,理解为什么有用

第四阶段:读真实的核

这一阶段不再写玩具:

  • 读 CUTLASS 的一个 GEMM 实现,看工业级分块怎么做
  • 读 FlashAttention 的 kernel,重点看它如何用 shared memory 换掉 HBM 往返
  • 试着复现一个简化版,哪怕性能只有原版的十分之一

参考资源

  • 《CUDA C++ Programming Guide》——当字典查,不要通读
  • 《CUDA C++ Best Practices Guide》——第二阶段开始看最合适
  • 本站丛编里的 GPU 架构笔记(施工中)

几条经验

  1. 先跑通再优化,过早优化会让你看不懂性能瓶颈在哪。
  2. 每次只改一个变量,然后测——CUDA 的性能变化经常反直觉。
  3. GPU 上的性能是访存喂出来的,不是算出来的。

评论