1. AI芯片与缓存概述

1.1 AI芯片发展简史:从通用到专用

聊AI芯片,得先看看它怎么来的。我入行那会儿,大家还在用CPU跑神经网络。说实话,那体验真不怎么样——一个简单的图像分类任务,跑一整天是常事。

后来GPU进场了。NVIDIA的CUDA生态让并行计算变得顺手,但GPU毕竟是为图形渲染设计的。它擅长做矩阵乘法,可一旦遇到不规则的数据访问模式,效率就直线下降。

再后来,Google的TPU横空出世。它把脉动阵列(Systolic Array)用到了极致,专门为矩阵运算优化。我记得第一次看到TPU的架构图时,心里就一个想法:这才叫专用芯片。

现在呢?AI芯片百花齐放。华为的昇腾、寒武纪的思元、地平线的征程...每家都有自己的缓存策略和计算架构。但不管怎么变,核心问题只有一个:怎么让数据喂得够快。

1.2 存储墙:AI计算的核心瓶颈

你想想看,AI芯片的计算能力每年翻倍,但内存带宽的增长呢?大概每年只有10%。这中间的差距,就是所谓的存储墙。

为什么会这样?说白了,DRAM的访问速度跟不上计算单元的需求。我做过一个实验:在某个AI加速器上,单纯优化计算单元,性能提升了30%。但加上数据搬运的时间,实际收益不到5%。

存储墙带来的问题很直接:

  • 计算单元空等:数据没到,算力再强也没用
  • 功耗浪费:数据搬运消耗的能量,比计算本身高几个数量级
  • 延迟增加:每次内存访问,都是几十甚至上百个时钟周期

核心观点:AI芯片的性能瓶颈,不在计算,在数据搬运。

1.3 缓存的基本概念与层次结构

缓存是什么?简单说,就是离计算单元更近、速度更快、容量更小的存储器。它的存在,就是为了缓解存储墙问题。

典型的AI芯片缓存层次是这样的:

层级 容量 延迟 位置
寄存器 几十字节 1个周期 计算单元内部
L1缓存 几十KB 2-4个周期 每个计算核内
L2缓存 几百KB到几MB 10-20个周期 多个核共享
L3缓存 几十MB 30-50个周期 芯片全局共享
HBM/DRAM 几GB到几十GB 上百个周期 片外

嗯,这里要注意:AI芯片的缓存层次和CPU不太一样。CPU的缓存主要为了降低延迟,而AI芯片的缓存更关注带宽和吞吐量。

个人经验:我在设计某款NPU时,发现L1缓存命中率从90%提升到95%,整体性能提升了近20%。别小看这5%的差距,在AI芯片里,缓存命中率就是生命线。

1.4 缓存对AI性能的决定性影响

缓存到底有多重要?我给你算笔账。

假设一个卷积层,输入特征图是256x256x64,权重是3x3x64x128。如果不做缓存优化,每次计算都要从DRAM读数据。一次DRAM访问大概200个周期,而一次乘加运算只要1个周期。算下来,计算单元有99%的时间在等数据。

但如果把数据缓存到L1里呢?

  • 权重可以复用:每个权重被多个输出通道共享
  • 输入数据可以复用:每个输入像素被多个卷积核使用
  • 输出数据可以暂存:减少中间结果的写回次数

我见过一个极端的例子:某团队在优化Transformer模型时,通过调整缓存策略,把推理延迟从50ms降到了12ms。怎么做到的?就是把Self-Attention中的Q、K、V矩阵分块缓存,避免了大量的重复读取。

避坑指南:我曾经犯过一个错误——盲目增大缓存容量。结果芯片面积暴涨,功耗失控,性能反而下降了。缓存不是越大越好,关键是命中率和带宽的平衡。

1.5 知识体系总览

下面这张图,是我对本章知识点的梳理。你可以把它当作后续学习的路线图。

AI芯片缓存机制知识体系 AI芯片发展简史 存储墙问题 缓存层次结构 CPU时代 GPU时代 TPU/专用芯片 国产AI芯片 计算能力 vs 内存带宽 数据搬运功耗 延迟瓶颈 L1/L2/L3缓存 HBM/DRAM 寄存器文件 缓存对AI性能的决定性影响 命中率 · 带宽 · 延迟 · 功耗 卷积优化 Transformer优化 推理部署

这张图把本章的核心内容串起来了。从芯片演进到存储墙,再到缓存层次,最后落到性能优化。后面的章节,我们会逐一深入每个细节。

我的建议:学缓存机制,别死记硬背。最好的方法是动手——找个开源AI芯片的模拟器,改改缓存参数,看看性能怎么变。我当年就是这么入门的。

好了,第一章就到这里。记住一句话:AI芯片的竞争,本质上是缓存策略的竞争。后面我们会用大量实战案例,证明这个观点。