01
CUDA编程模型回顾
Grid-Block-Thread层级结构 · 内存层次 · Warp执行与SIMT
基础核心
02
性能分析工具入门
Nsight Systems & Compute · 瓶颈识别
工具分析
03
内存访问模式优化
合并访问 · 对齐与跨步访问
内存带宽
04
共享内存优化
Bank Conflict消除 · Padding · 动态分配
共享内存冲突
05
寄存器优化
寄存器压力与Spilling · __launch_bounds__
寄存器占用
06
Warp级优化
Divergence避免 · Shuffle指令 · 聚合算法
WarpSIMT
07
原子操作优化
性能开销 · 冲突缓解 · Warp级原子操作
原子并发
08
流与并发执行
Stream · cudaMemcpyAsync · 多流Kernel
异步流水线
09
事件与同步
Event · Stream同步 · 跨设备同步
同步计时
10
CUDA Graphs
Graph创建/捕获/重放 · 动态更新
图启动开销
11
统一内存优化
UM工作原理 · 页面迁移与预取
UM迁移
12
纹理内存与表面内存
纹理缓存特性 · 加速特定访问模式
纹理缓存
13
常量内存优化
缓存机制 · 使用场景与限制
常量只读
14
CUDA数学库与内置函数
cuMath · __sinf/__expf · 精度权衡
数学内建
15
CUDA Tensor Core编程
Tensor Core概念 · WMMA API · 混合精度
Tensor CoreWMMA
16
CUDA动态并行
子Kernel启动 · 限制与性能考量
动态递归
17
CUDA MPS
MPS配置 · 多进程性能影响
MPS多进程
18
CUDA IPC
进程间共享资源 · IPC句柄传递
IPC通信
19
CUDA与多GPU编程
多GPU发现 · P2P通信 · 协同计算
多GPUP2P
20
CUDA与MPI混合编程
CUDA-Aware MPI · GPU Direct RDMA
MPIRDMA
21
CUDA与OpenMP混合编程
OpenMP offloading · 任务分配
OpenMP异构
22
CUDA与Python (PyCUDA/Numba)
PyCUDA · Numba JIT · 优化技巧
PythonNumba
23
Kernel Launch配置优化
Grid/Block大小 · Occupancy · Launch Bounds
配置占用
24
指令级优化
ILP利用 · 减少分支 · Intrinsics
ILP指令
25
循环优化
循环展开 · 合并拆分 · 不变量外提
循环展开
26
数据布局优化
AoS ↔ SoA · 对齐与填充
布局SoA
27
CUDA库的集成与优化
cuBLAS/cuFFT/cuSPARSE · 混合使用
库cuBLAS
28
CUDA调试与错误处理
cudaError_t · cuda-gdb · compute-sanitizer
调试检查
29
性能建模与Roofline模型
Roofline分析 · 计算/带宽权衡
建模Roofline
30
实际案例:矩阵乘法/N-Body/图像
极致优化 · N-Body · 卷积/滤波加速
案例实战