这门课的名字叫「CUDA 编程指南」,但如果你冲着「学完就能做 RAG」「学完就能写 AI 应用」来,大概会失望——它讲的不是怎么调大模型接口,而是大模型底下那块卡到底怎么被程序驱动起来的。反过来说,如果你写过 PyTorch,却说不清 torch.cuda 背后发生了什么,或者调 batch size 时只是凭感觉试,这门课正好补上这块。
先确认你在不在目标人群里
这门课更适合三类人:一是写 Python 训练脚本、但没碰过 device 代码的人,遇到「CUDA out of memory」只能靠减小 batch 硬扛;二是做推理部署,发现同样的模型别人吞吐是自己好几倍,却不知道瓶颈在 kernel 还是在显存拷贝;三是准备转岗到算子、推理框架、训练框架方向,面试被问到 thread、block、grid、shared memory 时答不上来。
如果你只是想快速搭一个调用大模型 API 的应用,这门课不是最短路径。它解决的是「往下看一层」的问题。
它会逼你面对的几个具体问题
- 为什么 GPU 适合做矩阵乘法,而 CPU 不适合?这个问题的答案不在「核多」,而在访存和并行粒度。
- 一个 kernel 启动时,线程是怎么被组织成 block、又被映射到 SM 上的?block 大小选 128 和选 1024,差的到底是什么。
- global memory、shared memory、寄存器,访问延迟差几个数量级,代码该怎么改才能吃到 shared memory 的好处。
- 什么是 warp divergence,为什么一个 if 分支就能让性能掉一半。
- host 和 device 之间的拷贝为什么常常是真正的瓶颈,什么情况下该用 pinned memory、什么情况下该用 stream 重叠。
这些问题不是靠背概念能答的,得自己写几行 kernel、跑一遍、看时间,才会有感觉。
怎么用这份资料
别一上来就通读。建议先挑「线程组织」和「内存层次」两块,把里面的示例自己敲一遍,改改 block 尺寸、改改数据量,观察耗时变化。等你对「为什么这么写更快」有了直觉,再去碰后面的优化和实战部分,否则很容易变成抄代码。
配套的章节笔记适合在两个时间点看:一是每写完一段代码、跑出结果之后,拿笔记对照自己有没有理解偏;二是面试前,用它快速过一遍关键术语和结论。但注意,笔记是压缩过的结论,直接背结论而不写代码,遇到追问还是会露馅。
看完应该能回答的问题
- 给定一个矩阵乘法的尺寸,你能大致估算需要多少线程、多少 block,以及显存占用大概是多少吗?
- 如果一段 kernel 比预期慢,你会按什么顺序排查:访存、分支、占用率,还是拷贝?
- 你能解释清楚「占用率不是越高越好」这句话在什么场景下成立吗?
- 当有人跟你说「这个模型推理慢是因为 kernel launch 太频繁」,你知道他在说什么吗?
如果这几个问题你现在答不上来,学完再回头看一遍,感受会很不一样。这门课的价值不在于多一个项目写在简历上,而在于你以后再看到 GPU 相关的报错和性能数字时,不再是黑箱。
QQ_1762159623444.webp 下载附件 保存到相册 2025-11-3 16:47 上传
课程推荐
《深入理解 GPU 计算: CUDA 编程指南》QQ_1762159623444.webp 下载附件 保存到相册 2025-11-3 16:47 上传【技能收获】学完可掌握:Embedding 向量检索。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:AI 应用工程师、RAG 系统开发、Java 后端 + 大模型落地、企业知识库架构师。大模型应用岗需求持续走高,具备「后端 + RAG 落地」复合能力的人才在招聘市场更稀缺,简历中可突出完整项目链路而非仅会使用 API。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。
视频目录(99 节)
* 1 课程介绍.mp4
* 2 什么是 GPU 计算.mp4
* 3 GPU 硬件架构综述.mp4
* 4 处理器空间.mp4
* 5 内存空间.mp4
* 6 GPU 计算能力.mp4
* 7 如何编写 CUDA 程序.mp4
* 8 如何编译 CUDA 程序.mp4
* 9 函数修饰符.mp4
* 10 内存修饰符.mp4
* 11 内建-内置向量.mp4
* 12 内建变量.mp4
* 13 CUDA 编程模型.mp4
* 14 CUDA 程序执行与硬件映射.mp4
* 15 程序解析- 向量加法.mp4
* 16 主机函数- __host__.mp4
* 17 设备函数- __device__.mp4
* 18 核函数- __global__.mp4
* 19 网格.mp4
* 20 线程块.mp4
* 21 网格维度- gridDim.mp4
* 22 线程块维度- blockDim.mp4
* 23 线程块 ID- blockIdx.mp4
* 24 线程 ID- threadIdx.mp4
* 25 线程调度.mp4
* 26 线程块与线程映射.mp4
* 27 例子- 向量加法.mp4
* 28 如何启动核函数.mp4
* 29 线程执行顺序.mp4
* 30 GPU 内存介绍.mp4
* 31 CPU 内存介绍.mp4
* 32 页锁定内存.mp4
* 33 GPU 内存如何管理.mp4
* 34 CPU 内存管理.mp4
* 35 页锁定内存管理.mp4
* 36 全局内存管理.mp4
* 37 例子- 全局内存.mp4
* 38 什么是共享内存.mp4
* 39 共享内存冲突.mp4
* 40 共享内存 Bank.mp4
* 41 共享内存 bank 冲突- 计算能力 1.x.mp4
* 42 共享内存 bank 冲突- 计算能力 2.0 及以上.mp4
* 43 共享内存应用- 加**约.mp4
* 44 内存拷贝- cudaMemcpy.mp4
* 45 例子- 内存管理.mp4
* 46 内存空间类型查询 (Address Space).mp4
* 47 向量操作.mp4
* 48 稀疏矩阵存储格式.mp4
* 49 稀疏矩阵向量乘法 (SpMV).mp4
* 50 什么是同步.mp4
* 51 核函数同步.mp4
* 52 线程块同步.mp4
* 53 Warp 同步.mp4
* 54 Warp 同步概述.mp4
* 55 什么是规约算法- 如何并行.mp4
* 56 并行规约算法-1- 二叉树算法.mp4
* 57 并行规约算法-2- 改进 warp divergence.mp4
* 58 并行规约算法-3- 改进共享内存访问 消除冲突.mp4
* 59 并行规约算法-4- 改进全局内存访问.mp4
* 60 并行规约算法-5- warp 内循环展开.mp4
* 61 并行规约算法-6- 完全循环展开.mp4
* 62 并行规约算法:成功优化的关键.mp4
* 63 完整并行规约算法: 三阶段算法与完整代码.mp4
* 64 并行规约算法应用- 内积.mp4
* 65 线程调度概述.mp4
* 66 Warp 投票函数.mp4
* 67 Warp 匹配函数.mp4
* 68 Warp 规约操作.mp4
* 69 Warp 内通信- 交换数据.mp4
* 70 例子- __activemask.mp4
* 71 例子- __ballot_sync.mp4
* 72 例子- __shfl_down_sync.mp4
* 73 例子- warp 内广播.mp4
* 74 例子- warp 内 scan 操作 (扫描).mp4
* 75 例子- warp 内规约操作.mp4
* 76 Cooperative Groups (合作组).mp4
* 77 隐式组类型 (内建组类型- 内置组类型).mp4
* 78 例子- 向量加法-1645693606.mp4
* 79 显式棋盘组划分 (Tiled Partition).mp4
* 80 合并组 (Coalesced Groups).mp4
* 81 例子- 合并组.mp4
* 82 例子- warp 内广播-1645693728.mp4
* 83 例子- warp 内广播 2.mp4
* 84 组划分 (tiled_partition).mp4
* 85 组划分- labeled_partition.mp4
* 86 例子- 合并组标记划分.mp4
* 87 组划分- binary_partition.mp4
* 88 例子- 合并组二分划分.mp4
* 89 组同步.mp4
* 90 网格组同步.mp4
* 91 规约操作 (Reduce).mp4
* 92 例子- 规约算法 1.mp4
* 93 例子- 规约算法 2.mp4
* 94 例子- 规约算法 3.mp4
* 95 例子- 规约算法 4.mp4
* 96 CUDA 程序概述.mp4
* 97 CUDA 程序优化- 探索并行化.mp4
* 98 CUDA 程序优化- GPU 内存优化策略.mp4
* 99 CUDA 程序优化- 指令优化.mp4





