01
算子优化概述
什么是算子、为什么需要优化、优化的核心目标(计算效率、内存带宽、延迟)。
概念目标
02
硬件基础与计算模型
CPU、GPU、NPU架构差异,SIMD/SIMT模型,内存层次结构。
硬件SIMD
03
性能分析工具
Profiling工具(nvprof、nsys、perf)、性能计数器、瓶颈定位方法。
工具调优
04
循环优化基础
循环展开、循环分块、循环交换、循环融合与分裂。
循环分块
05
内存访问优化
缓存友好性、数据对齐、预取、合并访问(Coalescing)。
内存缓存
06
向量化与SIMD
自动向量化、手写SIMD intrinsic、数据布局对向量化的影响。
SIMD向量化
07
并行计算基础
OpenMP多线程、任务并行与数据并行、负载均衡。
OpenMP并行
08
GPU编程基础
CUDA编程模型、线程层次结构、内存模型(全局、共享、本地、常量、纹理)。
CUDAGPU
09
GPU算子优化
Warp调度、Bank Conflict、Occupancy优化、Shared Memory使用。
WarpShared
10
卷积算子优化
im2col、Winograd、FFT、直接卷积的内存布局与计算策略。
卷积Winograd
11
矩阵乘法优化
Naive实现、分块矩阵乘、GotoBLAS/OpenBLAS策略、cuBLAS原理。
GEMMBLAS
12
归一化算子优化
BatchNorm、LayerNorm的融合与内存优化。
归一化融合
13
激活函数优化
ReLU、Sigmoid、Tanh、GELU的快速近似与融合。
激活近似
14
Reduce算子优化
树形归约、Warp Shuffle、分段归约。
归约Shuffle
15
Softmax算子优化
数值稳定性、Online Softmax、融合实现。
Softmax稳定
16
Attention算子优化
FlashAttention原理、分块策略、IO感知优化。
AttentionFlash
17
算子融合技术
Horizontal Fusion、Vertical Fusion、Kernel合并策略。
融合Kernel
18
自动调优(Auto-tuning)
TVM/Ansor/Triton原理、代价模型、搜索空间设计。
AutoTVM搜索
19
编译器优化基础
LLVM IR、Pass Pipeline、内联、常量传播、死代码消除。
LLVM编译
20
领域特定语言(DSL)
Halide、TVM、Triton的调度与表达式分离思想。
DSL调度
21
量化算子优化
INT8/INT4量化、量化感知训练、混合精度推理。
量化INT8
22
稀疏算子优化
稀疏矩阵存储格式(CSR/CSC/COO)、稀疏矩阵乘、结构化稀疏。
稀疏CSR
23
动态形状优化
动态shape处理、Padding策略、JIT编译。
动态JIT
24
内存管理与复用
内存池、Double Buffer、In-place操作。
内存池复用
25
通信算子优化
AllReduce、AllGather、Ring拓扑、NCCL原理。
通信NCCL
26
算子性能基准测试
Benchmark设计原则、微基准测试、端到端测试。
Benchmark测试
27
调试与正确性验证
数值精度检查、NaN/Inf检测、单元测试框架。
调试验证
28
实战案例一:LayerNorm
优化一个自定义LayerNorm算子(从Naive到高效)。
实战LayerNorm
29
实战案例二:3x3卷积
优化一个3x3卷积算子(CPU与GPU版本)。
实战卷积
30
总结与展望
算子优化的未来趋势(AI编译器、可微分编程、硬件协同设计)。
趋势展望