getfromcode

深入理解 GPU 计算: CUDA 编程指南

AI
课程简介

《深入理解 GPU 计算: CUDA 编程指南》QQ_1762159623444.webp (419.74 KB, 下载次数: 67) 下载附件   保存到相册 2025-11-3 16:47 上传【技能收获】学完可掌握:Embedding 向量检索。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:AI 应用工程师、RAG 系统开发、Java 后端 +

已有 1 人浏览 发布 2026-09-14 更新 2026-09-14

这门课的主题很明确:把 CUDA 当作一门系统工程语言来学,而不是当成一堆 API 调用去背。它真正要解决的问题是——当你的模型或算子从 CPU 挪到 GPU 上时,为什么没有变快、为什么结果不对、为什么显存爆掉,以及这些现象背后的执行模型到底是什么。

技术栈与前置假设

资料围绕 CUDA C/C++ 展开,涉及 nvcc 编译流程、CUDA Runtime API、GPU 的线程层级(grid / block / warp / thread)、内存层级(global / shared / register / constant)以及同步原语。它默认读者已经能写基本 C/C++,能看懂指针和数组,并且对计算机体系结构有最粗的认知(比如缓存、带宽、延迟这几个概念)。如果你此前只在 Python 里调过 PyTorch,对 kernel 的写法没有任何概念,这门资料正好补上那一层,但它不会从「什么是变量」讲起。

与纯理论教材的差别在于,它把每一层抽象都对应到可测量的指标上:占用率、合并访存、bank conflict、warp divergence。这些词如果你只见过、没动手验证过,那么这份资料的价值就在于让你亲手把它们复现出来。

结构:从执行模型到性能调优

内容的推进方式是分层递进的。前半段处理执行模型:一个 kernel 如何被网格化、线程如何映射到数据、warp 如何被调度器分派。理解了这一层,你才能明白为什么「线程数写多写少」不是随便调参。

中间段集中讲内存。GPU 的性能瓶颈大多不在算力,而在数据搬运。资料会把全局内存的合并访问、共享内存的 bank 划分、寄存器溢出这几件事拆开讲,并且给出可以自行验证的对照写法。这部分是最值得反复读的,因为它直接决定你写的 kernel 是快十倍还是慢十倍。

后半段进入工程实践:如何用流和事件做并发、如何用统一内存简化管理、如何做多 GPU 的初步切分,以及如何借助 profiling 工具定位热点。这些内容在真实项目里比语法更常被用到。

可复用的模块与对照点

这份资料适合被拆成几个可复用的骨架:

  • kernel 启动模板:网格维度计算、边界判断、错误检查宏,这几行代码几乎每个 CUDA 项目都要重写一遍,可以直接抽成头文件。
  • 内存搬运模式:主机与设备之间的拷贝、pinned memory、异步拷贝的封装,是任何推理或训练脚本都要处理的部分。
  • 归约与扫描这两类经典模式:它们既是练手题,也是理解 shared memory 与同步的入口,写通一次之后可以迁移到很多算子实现里。
  • 性能测量框架:把计时、事件、多次迭代取平均做成一个小工具,后续所有优化都靠它来验证,而不是凭感觉。

建议边看边把这些抽出来放进自己的代码库。资料本身是参照物,真正留下来的应该是你改写后的版本。

自学路径建议

不建议按顺序一口气刷完。合理的做法是:先通读执行模型那一段,然后立刻动手写一个向量加法并用 profiling 工具看一遍数据;接着回到内存部分,把同一个 kernel 改成共享内存版本,比较两次的时间差异。这种「改一行、测一次」的节奏,比看完所有章节再动手有效得多。

过程中遇到 warp divergence、bank conflict 这类问题时,不要急着找现成答案,先自己构造一个最小复现,看指标怎么变。CUDA 的很多结论只有在你自己测过之后才会变成直觉。

最后一步是找一个你熟悉的算子——比如 softmax、均值池化或简单的矩阵乘——从零实现一遍,并把优化前后的数据记录下来。这份记录比任何笔记都更能说明你理解了 GPU 计算的什么部分。


QQ_1762159623444.webp (419.74 KB, 下载次数: 67) 下载附件   保存到相册 2025-11-3 16:47 上传

课程推荐

《深入理解 GPU 计算: CUDA 编程指南》QQ_1762159623444.webp (419.74 KB, 下载次数: 67) 下载附件   保存到相册 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

课程购买
课程价格
金币29.9
299金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。