第1章
算子优化全景图
为什么算子优化能让训练快一倍?核心概念与优化目标。
概览目标
第2章
性能分析工具
使用PyTorch Profiler、Nsight Systems定位性能瓶颈。
ProfilerNsight
第3章
内存布局优化
理解NCHW vs NHWC,数据排布对访存效率的影响。
NCHWNHWC
第4章
算子融合 (Kernel Fusion)
将多个小算子合并为一个,减少Kernel Launch开销。
融合Launch
第5章
循环分块 (Tiling)
利用局部性原理,优化Cache命中率。
TilingCache
第6章
向量化 (Vectorization)
利用SIMD指令集(如AVX、NEON)加速计算。
SIMDAVX
第7章
并行化 (Parallelization)
多线程与多核CPU上的算子并行策略。
多线程CPU
第8章
CUDA基础
GPU架构概览、线程层次(Grid/Block/Thread)、内存层次。
GPU线程
第9章
CUDA Kernel优化
共享内存(Shared Memory)的使用与Bank Conflict避免。
共享内存Bank
第10章
CUDA归约 (Reduction) 优化
Warp Shuffle、原子操作与并行归约。
Warp原子操作
第11章
矩阵乘法 (GEMM) 优化
从Naive到Tiled,再到使用Tensor Core。
GEMMTensor Core
第12章
卷积 (Convolution) 优化
Im2Col、Winograd、FFT算法对比与实现。
Im2ColWinograd
第13章
Batch Normalization融合
将BN融合进Conv或FC层,减少访存。
BN融合访存
第14章
Layer Normalization优化
针对Transformer的LayerNorm高效实现。
LayerNormTransformer
第15章
Softmax优化
Online Softmax与Safe Softmax技巧。
OnlineSafe
第16章
Attention机制优化
Flash Attention原理与实现(分块计算)。
Flash分块
第17章
GELU与激活函数优化
近似计算与查表法。
GELU查表
第18章
Embedding优化
稀疏矩阵乘法与哈希技巧。
稀疏哈希
第19章
混合精度训练 (AMP)
FP16/BF16的原理、优势与陷阱。
FP16BF16
第20章
Tensor Core编程
使用cuBLAS、CUTLASS或手写WMMA API。
cuBLASCUTLASS
第21章
算子自动调优 (Auto-tuning)
使用Ansor、AutoTVM进行搜索。
AnsorAutoTVM
第22章
TVM与Triton
使用领域特定语言(DSL)编写高性能算子。
TVMTriton
第23章
XLA与JIT编译
利用编译器优化计算图与算子。
XLAJIT
第24章
数据加载优化
使用DataLoader、内存映射(mmap)与预取。
DataLoadermmap
第25章
通信算子优化
AllReduce、AllGather在分布式训练中的优化。
AllReduce分布式
第26章
梯度累积与梯度压缩
减少通信频率与通信量。
梯度累积压缩
第27章
算子量化 (INT8/INT4)
量化感知训练与后训练量化。
INT8量化
第28章
稀疏化算子
利用稀疏矩阵乘法(SpMM)加速。
SpMM稀疏
第29章
模型剪枝与算子优化
结构化剪枝对算子的加速效果。
剪枝结构化
第30章
综合案例实战
端到端优化一个ResNet-50或BERT模型,实现训练速度翻倍。
ResNetBERT