🚀 缓存命中率优化实战
30章 · 嵌入式推理
01
缓存基础与原理
L1/L2/L3
缓存行
LRU/LFU
MESI
02
推理模型的内存访问模式
卷积层
全连接
激活/池化
张量形状
03
数据布局优化
NHWC vs NCHW
通道优先/最后
数据对齐
SoA/AoS
04
循环分块 (Loop Tiling)
分块大小
时间局部性
空间局部性
多级缓存
05
循环重排
循环交换
循环融合
循环分裂
循环展开
06
预取技术 (Prefetching)
硬件/软件预取
预取距离
ARM预取指令
计算重叠
07
内存池与缓存对齐
自定义分配器
aligned_alloc
伪共享
伙伴系统
08
量化推理的缓存优化
INT8/INT4
量化表
混合精度
量化感知训练
09
稀疏推理的缓存优化
结构化稀疏
CSR/CSC/COO
稀疏卷积
剪枝缓存
10
Winograd卷积的缓存优化
内存开销
变换缓存友好
F(2x2,3x3)
F(4x4,3x3)
11
Im2Col + GEMM 缓存优化
内存膨胀
缓存友好Im2Col
GotoBLAS风格
Packing策略
12
直接卷积的缓存优化
滑动窗口
M,N,K顺序
输出/输入驻留
微内核
13
深度可分离卷积缓存优化
Depthwise
Pointwise
MobileNet
ShuffleNet
14
Transformer推理缓存优化
Self-Attention
KV-Cache
多头注意力
FFN层
15
LSTM/GRU推理缓存优化
时间步访存
门控单元
序列长度
双向RNN
16
多线程推理缓存优化
线程亲和性
数据分片
OpenMP调度
NUMA感知
17
SIMD指令与缓存优化
NEON/SVE
向量化加载
数据对齐
循环向量化
18
编译优化与缓存
自动向量化
-O2/-O3
PGO
LTO
19
运行时缓存分析工具
perf事件
Cachegrind
ftrace
Streamline
20
静态缓存分析模型
CME
Polyhedral
Roofline
Dinero IV
21
模型结构搜索与缓存
NAS感知
网络结构
通道对齐
核大小
22
推理引擎的缓存优化
TensorRT
ONNX Runtime
TFLite
NCNN
23
边缘设备的缓存优化
Cortex-A
RISC-V
Mali/Adreno
NPU SRAM
24
实时推理的缓存优化
缓存锁定
缓存分区
WCET
抢占污染
25
缓存友好的算子融合
Conv+BN+ReLU
Conv+Add+ReLU
LayerNorm
Softmax
26
内存带宽与缓存的权衡
计算/访存密集
带宽受限
L2/L3 vs DRAM
DDR带宽
27
多模型推理的缓存优化
模型切换污染
模型并行
流水线并行
缓存隔离
28
缓存预热与冷启动优化
预热策略
权重预加载
缓存填充
冷启动延迟
29
缓存感知的量化校准
校准数据集
量化参数
激活分布
KL散度
30
综合案例:MobileNetV3 ARM优化
逐层缓存
数据布局
分块重排
预取SIMD