01
算子库是什么
从数学算子到芯片指令的映射,为什么说算子库是芯片的“软件灵魂”。
映射灵魂
02
硬件与软件的桥梁
算子库如何将上层AI框架(PyTorch/TensorFlow)的算子调用翻译成芯片底层指令。
桥梁翻译
03
性能的起点
算子实现方式(naive实现 vs 优化实现)对芯片利用率的影响,以矩阵乘法为例。
利用率矩阵乘
04
内存访问模式
数据搬运的代价,连续内存访问 vs 随机访问,以及如何通过算子库优化访存。
访存连续
05
计算核心利用
如何通过算子库设计让芯片的ALU/FMA单元满负荷运转,避免“计算饥渴”。
FMA吞吐
06
算子融合技术
将多个小算子合并为一个大算子,减少中间结果写回内存的开销,以Conv+BN+ReLU融合为例。
融合Conv+BN+ReLU
07
算子调度策略
静态调度 vs 动态调度,以及如何根据芯片拓扑结构(如GPU的SM数量)进行任务分配。
调度SM
08
数据精度与性能
FP32、FP16、INT8等不同精度算子的实现差异,以及混合精度训练中的算子选择。
精度混合精度
09
卷积算子的优化
Im2Col+GEMM、Winograd、FFT等不同卷积实现方式的性能对比与适用场景。
卷积Winograd
10
矩阵乘法的极致优化
分块(Tiling)、向量化(SIMD)、软件流水线(Software Pipelining)等技巧。
TilingSIMD
11
Reduce算子的挑战
跨线程/跨SM的数据归约,如何避免同步开销与负载不均。
归约同步
12
稀疏算子的机遇
利用权重稀疏性跳过无效计算,CSR/CSC格式在算子库中的实现与性能收益。
稀疏CSR
13
Transformer算子的特殊性
Self-Attention、Softmax、LayerNorm等算子的高效实现。
AttentionLayerNorm
14
FlashAttention
通过分块和重计算减少HBM访问,算子库级别的注意力机制优化。
FlashHBM
15
算子库的自动调优
AutoTVM、Ansor等工具如何自动搜索最优算子实现参数。
自动调优Ansor
16
JIT编译与算子生成
Just-In-Time编译如何根据输入形状动态生成专用算子。
JIT动态生成
17
算子库的硬件适配层
如何通过抽象层支持不同厂商的芯片(NVIDIA GPU、AMD GPU、华为昇腾等)。
适配昇腾
18
算子库的测试与验证
数值正确性验证、性能基准测试、回归测试体系。
测试回归
19
算子库的部署与集成
如何将算子库集成到推理引擎(TensorRT、ONNX Runtime)中。
部署TensorRT
20
算子库的开源生态
cuDNN、MIOpen、OneDNN、Triton等主流算子库的架构对比。
cuDNNTriton
21
算子库与编译器
TVM、MLIR等编译器框架如何与算子库协同工作。
TVMMLIR
22
算子库的Profiling工具
NVIDIA Nsight、AMD ROCProfiler等工具如何分析算子性能瓶颈。
ProfilingNsight
23
算子库的显存管理
内存池、显存复用、显存碎片整理等策略。
显存碎片
24
算子库的异步执行
CUDA Stream、Event同步机制,以及如何通过算子库实现计算与数据传输重叠。
异步Stream
25
算子库的量化支持
对称量化、非对称量化、量化感知训练中的算子实现。
量化QAT
26
算子库的图优化
常量折叠、死代码消除、算子重排等编译优化在算子库层面的实现。
图优化折叠
27
算子库的分布式支持
AllReduce、AllGather等集合通信算子的实现与优化。
分布式AllReduce
28
算子库的功耗优化
通过算子调度降低芯片功耗,DVFS(动态电压频率调整)与算子库的交互。
功耗DVFS
29
算子库的未来趋势
可微分算子、可重构算子、光子计算算子等前沿方向。
可微分光子
30
综合案例:从零设计矩阵乘算子库
为一个AI芯片设计高性能矩阵乘法算子库,涵盖设计、实现、调优全流程。
实战全流程