01
GPU架构基础
SM、Warp、Thread层级关系,内存层次结构(Global、Shared、Local、Register)
架构内存
02
核函数启动配置
Grid/Block/Thread维度设计,Occupancy计算与优化
启动配置Occupancy
03
全局内存访问模式
合并访问原理与对齐要求,Stride访问优化策略
合并访问对齐
04
共享内存优化
Bank Conflict产生原因与解决,Padding与Swizzle技术
Bank ConflictSwizzle
05
寄存器优化
寄存器压力与Spilling,__launch_bounds__控制寄存器使用
寄存器Spilling
06
Warp级别原语
Warp Shuffle、Reduce、Vote使用场景与性能优势
ShuffleWarp
07
原子操作与锁
Global/Shared原子操作,Lock-Free编程思想在GPU应用
原子操作Lock-Free
08
流与并发执行
CUDA Stream创建与同步,Kernel与数据传输Overlap
Stream并发
09
异步数据传输
Pinned/Zero-Copy/Mapped Memory使用与性能权衡
PinnedZero-Copy
10
统一内存 (UM)
Managed Memory Page Fault机制,Prefetch与Advise优化
UMPrefetch
11
内存池管理
CUDA Memory Pool创建配置,避免频繁cudaMalloc/cudaFree
内存池开销
12
纹理内存与表面内存
纹理缓存局部性优势,图像处理与随机访问场景
纹理缓存
13
常量内存
常量缓存工作原理,广播场景优化技巧
常量广播
14
L1/L2缓存策略
编译选项控制缓存行为,Persistent L2 Cache使用
L1/L2Persistent
15
Kernel Launch Overhead
减少启动延迟:Persistent Kernel与MPS技术
启动开销MPS
16
动态并行
子Kernel启动与管理,递归计算实现
动态并行递归
17
CUDA Graph
图捕获与实例化,减少Kernel Launch开销
CUDA Graph捕获
18
NCCL与多GPU通信
Ring AllReduce与Tree AllReduce,带宽利用率优化
NCCLAllReduce
19
NVLink与NVSwitch
拓扑感知通信优化,跨节点带宽瓶颈分析
NVLink拓扑
20
显存带宽测试
bandwidthTest与自定义微基准,Roofline模型分析
带宽Roofline
21
Profiling工具
Nsight Systems与Nsight Compute,关键性能指标解读
ProfilingNsight
22
显存泄漏检测
cuda-memcheck与compute-sanitizer,常见泄漏模式
泄漏检测
23
显存碎片化
分配释放碎片问题,cudaMemGetInfo监控显存状态
碎片监控
24
显存压缩
Delta Compression与Lossless Compression,适用场景
压缩Delta
25
显存带宽与延迟权衡
Occupancy与指令级并行(ILP)隐藏延迟
ILP延迟隐藏
26
混合精度训练
FP16/BF16/INT8显存节省与加速,Loss Scaling策略
混合精度FP16
27
梯度检查点
以计算换显存,Checkpoint位置选择
检查点显存
28
显存卸载
中间结果卸载到CPU,异步加载与预取
卸载CPU
29
ZeRO优化器
ZeRO-1/2/3分片策略,通信与显存节省权衡
ZeRO分片
30
综合案例
从Profiling到优化:矩阵乘法、Transformer Layer显存与性能调优
案例Transformer