01
缓存基础与存储层次
SRAM、DRAM到主存的延迟差异,局部性原理(时间局部性与空间局部性)。
存储层次局部性
02
缓存映射方式详解
直接映射、组相联映射、全相联映射的硬件实现与优缺点对比。
映射硬件
03
缓存替换策略
LRU、FIFO、随机替换、伪LRU(Tree-PLRU)的原理与硬件开销。
替换策略LRU
04
写策略与一致性
写直达(Write-Through)与写回(Write-Back),写分配与写不分配。
写策略一致性
05
缓存性能模型
命中率、缺失率、平均访存时间(AMAT)的计算公式与影响因素。
AMAT性能模型
06
算子映射问题定义
算子到计算单元的映射、数据流调度与访存模式的关系。
算子映射数据流
07
数据复用与缓存命中
输入特征图、权重、输出特征图在卷积算子中的复用模式分析。
数据复用卷积
08
循环分块(Tiling)技术
分块大小对缓存命中率的影响,分块维度的选择策略。
Tiling循环分块
09
数据布局变换
NHWC vs NCHW,Im2Col + GEMM 对缓存行为的影响。
布局Im2Col
10
算子融合(Fusion)与缓存
Conv+BN+ReLU融合如何减少中间结果的写回与读取。
算子融合Conv+BN+ReLU
11
计算与访存重叠
双缓冲(Double Buffering)与流水线调度,隐藏访存延迟。
双缓冲流水线
12
硬件预取机制
硬件预取器的工作原理,预取度与预取距离的调优。
预取硬件
13
软件预取技术
编译器插入预取指令,循环展开与预取结合。
软件预取编译器
14
缓存抖动(Thrashing)分析
当工作集超过缓存容量时,如何识别与缓解抖动。
抖动工作集
15
缓存感知的算子调度
多核/多处理器系统中,分配算子到不同核心以最大化共享缓存利用率。
多核调度
16
非规则访存优化
稀疏算子(如SpMM、Gather)的缓存优化策略,坐标压缩与分块。
稀疏SpMM
17
矩阵乘法(GEMM)的缓存优化
分块矩阵乘法,利用向量寄存器与缓存层次。
GEMM分块
18
卷积算子的内存布局优化
Winograd、FFT卷积的内存访问模式与缓存友好性。
WinogradFFT
19
Transformer算子优化
Self-Attention中的QKV矩阵乘法与Softmax的缓存行为优化。
TransformerSelf-Attention
20
图神经网络(GNN)算子优化
邻居聚合操作的缓存局部性提升方法。
GNN邻居聚合
21
编译器缓存优化Pass
MLIR/TVM/XLA中的循环变换Pass (Loop Fusion, Distribution, Permutation)。
编译器MLIR
22
自动调优与缓存建模
OpenTuner、Ansor等工具如何通过代价模型搜索最优分块大小。
自动调优Ansor
23
Roofline模型与缓存瓶颈
计算密集 vs 访存密集算子的判定,如何通过Roofline图定位缓存瓶颈。
Roofline瓶颈
24
缓存命中率分析工具
Perf、Valgrind (Cachegrind)、Intel VTune的使用与结果解读。
PerfVTune
25
模拟器与建模
Gem5、Sniper模拟器中的缓存层次建模,如何验证优化效果。
Gem5Sniper
26
多级缓存一致性协议
MESI、MOESI协议在异构计算(CPU+GPU/NPU)中的影响。
MESI一致性
27
NPU/TPU中的缓存架构
脉动阵列(Systolic Array)与本地存储(Scratchpad)的缓存设计差异。
NPU脉动阵列
28
GPU缓存层次与优化
Shared Memory、L1/L2 Cache在CUDA算子中的手动管理。
GPUShared Memory
29
边缘设备缓存优化
资源受限场景下的缓存优化策略,Flash Cache与SRAM的协同。
边缘Flash Cache
30
综合案例:ResNet-50到BERT
完整分析算子映射中的缓存优化流程与性能收益。
ResNet-50BERT