01
缓存基础:为什么CPU缓存这么重要?
从冯诺依曼瓶颈说起,理解缓存存在的意义。
🏛️ 体系结构🧠 核心概念
02
缓存层级:L1/L2/L3缓存结构
缓存行与局部性原理,数据如何在多级缓存流动。
📐 层次结构⚡ 局部性
03
缓存未命中:三种Cache Miss详解
强制、容量、冲突未命中,根源与优化方向。
❌ 未命中🔍 分析
04
算子与数据流:典型AI算子访问模式
Conv、GEMM、Element-wise 的数据搬运特征。
🤖 AI算子📊 数据流
05
融合动机:为什么融合能提升缓存命中率?
减少数据搬运,让数据待在该待的地方。
🚀 性能🧩 融合动机
06
水平融合:同类型算子的批量处理
多个Element-wise合并,减少内核启动开销。
➡️ 水平📦 批量
07
垂直融合:生产-消费模式的算子合并
Conv+ReLU 等经典融合,流水线式缓存友好。
⬆️ 垂直⛓️ 生产消费
08
融合策略:基于DAG图的算子融合搜索
代价模型驱动,自动寻找最优融合方案。
📈 DAG🤖 自动搜索
09
TVM框架:算子融合实现原理与Pass机制
TVM 如何通过 Relay Pass 融合算子。
📺 TVM⚙️ Pass
10
XLA框架:HLO融合与Layout优化
XLA 编译器的融合策略与数据布局调整。
⚛️ XLA🧬 HLO
11
手工融合:手写融合Conv+BN+ReLU Kernel
从零实现一个高性能融合算子。
✍️ 手工⚡ Kernel
12
内存布局:NHWC vs NCHW对缓存的影响
数据排布如何影响缓存行利用效率。
🧮 布局📐 NHWC/NCHW
13
Tiling技术:分块大小对L1/L2缓存的适配
通过分块让数据尽量停留在片上缓存。
🧩 Tiling📏 分块
14
Vectorization:SIMD与数据对齐对缓存的影响
向量化加载与缓存行边界对齐技巧。
🔢 SIMD📏 对齐
15
Prefetching:软件预取与硬件预取的配合
预取指令与硬件预取器协同隐藏访存延迟。
🔮 预取⏳ 延迟隐藏
16
多级缓存感知:针对L1/L2/L3分别优化
融合策略随缓存层级深度调整。
🏗️ 多级🎯 分层优化
17
计算密集型融合:GEMM+Bias+Activation
将激活函数融合到矩阵乘法中,减少带宽压力。
🧮 GEMM🔥 计算密集
18
访存密集型融合:Reduce+Element-wise
规约操作与逐元素融合,缓解内存瓶颈。
📉 Reduce💾 访存密集
19
动态形状:动态Batch Size下的融合挑战
可变维度对融合策略与缓存分配的影响。
🔄 动态📦 Batch
20
图优化:计算图层面的融合与重排
计算图优化:算子重排与融合联合优化。
📊 图优化🔄 重排
21
Profile工具:使用perf、rocprof分析缓存
用性能工具定位缓存未命中热点。
🔧 perf📈 rocprof
22
性能建模:Roofline模型指导融合决策
通过Roofline分析计算与访存瓶颈。
🏔️ Roofline📐 建模
23
编译器后端:LLVM中的循环融合与缓存优化
LLVM 循环优化与缓存感知编译。
⚙️ LLVM🔄 循环融合
24
GPU缓存:Shared Memory与L1 Cache协同
GPU 存储层次与算子融合的独特挑战。
🖥️ GPU🧠 Shared Memory
25
NPU缓存:AI芯片Local Memory融合策略
特定NPU架构下的本地存储融合方案。
🧠 NPU📦 Local Memory
26
量化融合:量化算子(Quantize/Dequantize)融合
量化与反量化融合,减少精度转换开销。
🔢 量化⚖️ 精度
27
注意力机制:FlashAttention中的分块与融合
FlashAttention 如何通过分块与融合加速。
👁️ 注意力⚡ Flash
28
大模型推理:KV Cache与算子融合协同
LLM推理中KV缓存与融合的联合优化。
🤖 大模型🗂️ KV Cache
29
端侧部署:移动端CPU缓存限制下的融合
在有限缓存下如何设计融合策略。
📱 端侧🔋 低功耗
30
未来趋势:近存计算与存内计算对融合的影响
存算一体架构下算子融合的新可能。
🔮 未来💾 近存计算