第01章
CUDA入门
GPU架构演进 · CUDA编程模型 · 开发环境搭建 (Toolkit/驱动/Nsight)
入门环境
第02章
第一个CUDA程序
Hello World内核 · 主机/设备代码分离 · nvcc编译 · 运行时与驱动API
基础编译
第03章
线程层次结构
Grid/Block/Thread · 一/二/三维索引 · 线程束Warp与SIMT
线程Warp
第04章
内存层次结构
全局/共享/寄存器/本地/常量/纹理内存 · 物理位置与速度对比
内存层次
第05章
全局内存访问
合并访问(Coalesced) · 对齐与跨步 · 内存事务与带宽利用率
带宽优化
第06章
共享内存基础
声明与生命周期 · Bank Conflict原理 · 无冲突访问模式
共享内存Bank
第07章
共享内存进阶
Padding避免Bank Conflict · 动态分配 · 与全局内存协同优化
优化Padding
第08章
常量内存与纹理内存
__constant__使用 · 纹理缓存特性 · 一/二维绑定与采样
常量纹理
第09章
寄存器与本地内存
寄存器溢出检测 · launch_bounds_优化 · 本地内存延迟陷阱
寄存器溢出
第10章
统一内存 (Unified Memory)
UM编程模型 · 按需分页迁移 · cudaMallocManaged · Prefetch调优
UM迁移
第11章
流与并发执行
CUDA流概念 · 默认流/多流 · 流同步 · 异步传输与内核重叠
并发流
第12章
事件与计时
cudaEvent创建/销毁 · 事件同步 · 精确测量内核时间 · 流间依赖
性能计时
第13章
CUDA内存分配器
cudaMalloc/Free性能 · cudaMallocAsync · 内存池(MemPool)管理
分配器池
第14章
固定内存 (Pinned Memory)
页锁定内存原理 · cudaHostAlloc · 零拷贝内存与映射
Pinned零拷贝
第15章
内存带宽测试
带宽计算公式 · cudaMemcpy吞吐测试 · 带宽/计算受限识别
带宽分析
第16章
内存优化策略
数据复用最大化 · 循环分块(Tiling) · 寄存器缓存 · 减少全局访问
优化Tiling
第17章
内核启动配置
Grid/Block大小选择 · 占用率(Occupancy)计算 · Occupancy API
占用率配置
第18章
原子操作与互斥
全局/共享内存原子操作 · 原子锁 · 自定义归约
原子同步
第19章
动态并行 (Dynamic Parallelism)
子内核启动 · 嵌套并行限制 · 显存与同步管理
动态嵌套
第20章
CUDA Graphs
图捕获与实例化 · 图执行/重放 · 动态图 · 图与流对比
Graph捕获
第21章
MPS (多进程服务)
MPS原理 · 显存共享与隔离 · 配置与性能收益
MPS多进程
第22章
多GPU编程
cudaSetDevice · P2P通信 · 多流多GPU并行 · 显存分配策略
多GPUP2P
第23章
显存泄漏检测
cuda-memcheck · compute-sanitizer · 常见泄漏模式与修复
调试泄漏
第24章
显存碎片化
碎片产生原因 · cudaMemGetInfo监控 · 内存池合并 · 避免最佳实践
碎片内存池
第25章
显存超额订阅
Out-of-Memory处理 · 统一内存作为溢出方案 · 梯度检查点与换出
OOM换出
第26章
CUDA与C++内存管理
RAII封装CUDA资源 · 智能指针+自定义删除器 · 异常安全分配
RAIIC++
第27章
CUDA与Python (PyCUDA/Numba)
PyCUDA内存对象 · Numba CUDA数组 · 显存与Python GC交互
PythonPyCUDA
第28章
性能分析工具
Nsight Systems时间线 · Nsight Compute内核分析 · 带宽/延迟热点
Nsight分析
第29章
实际案例:矩阵乘法与归约
矩阵乘法优化(朴素→共享内存分块) · 归约优化 · 向量加法带宽测试
案例矩阵乘法
第30章
综合项目:图像处理流水线
端到端流水线(读取→预处理→GPU→回传→显示) · 流并发 · 性能调优
项目流水线