一、存储墙与AI芯片:大模型对存储系统的挑战
大家好,我是你们这堂课的主讲人。今天咱们聊一个让所有AI芯片设计师都头疼的问题——存储墙。
先问大家一个问题:你想想看,为什么现在的大模型动辄千亿参数,跑一次推理要等半天?是计算单元不够快吗?其实不是。GPU的计算能力这些年翻了上千倍,但内存带宽只涨了几十倍。这中间的鸿沟,就是我们常说的“存储墙”。
1.1 冯·诺依曼瓶颈:老问题的新挑战
冯·诺依曼架构,说白了就是“计算”和“存储”分开。CPU只管算,内存只管存,中间靠总线传数据。这个设计在1945年很合理,但现在成了大模型的噩梦。
为什么会这样?因为大模型需要频繁地把权重、激活值从内存搬到计算单元。每次搬运都有延迟,都有功耗。我做过一个统计:在典型的Transformer推理中,数据搬运消耗的能量是计算本身的100倍以上。嗯,你没看错,100倍。
核心矛盾:计算能力每年增长60%,内存带宽每年只增长15%。这个剪刀差,就是存储墙的本质。
我在项目中遇到过这样一个案例:某款AI芯片,理论算力达到1000TOPS,但实际跑大模型时,利用率只有15%。为什么?因为数据喂不进去。计算单元大部分时间在等数据,就像一条高速公路,收费站堵死了,车道再多也没用。
1.2 存储墙概念:到底“墙”在哪里?
存储墙不是一面墙,而是三堵墙叠在一起:
- 带宽墙:内存带宽跟不上计算需求。比如HBM2e的带宽约1.6TB/s,但大模型推理时,权重加载就需要2-3TB/s。
- 容量墙:大模型参数动辄几百GB,而片上SRAM只有几十MB。放不下,就得频繁去DRAM搬数据。
- 功耗墙:数据搬运消耗的能量远高于计算。一次DRAM访问的能耗,是SRAM访问的100倍,是计算操作的1000倍。
避坑指南:我曾经在设计一款7nm芯片时,过于追求算力指标,忽略了存储带宽设计。结果流片回来后,跑ResNet-50还行,一上BERT就卡死。后来花了三个月改存储架构,教训深刻。
1.3 AI芯片存储层次概览
要打破存储墙,就得在存储层次上做文章。现代AI芯片的存储系统,就像一个金字塔:
这个金字塔告诉我们一个道理:没有完美的存储介质。你要快,就得用小容量的SRAM;你要大容量,就得忍受DRAM的慢速。AI芯片设计的核心,就是在不同层级间做好数据调度。
1.4 大模型带来的具体挑战
大模型对存储系统提出了三个“不可能三角”:
| 挑战维度 | 具体表现 | 典型数据 |
|---|---|---|
| 参数规模 | 模型参数从1B增长到1T+,存储容量需求暴增 | GPT-3 175B参数,FP16存储需350GB |
| 带宽需求 | 推理时需快速加载权重,训练时需频繁读写梯度 | LLaMA-65B推理,带宽需求>2TB/s |
| 数据复用 | Transformer结构导致数据复用率低,缓存命中率差 | Self-Attention中,Q/K/V矩阵复用率仅1-2次 |
个人经验:我建议在做芯片架构设计时,先算一笔账:你的模型需要多少带宽?你的存储系统能提供多少?如果差距超过3倍,就得考虑稀疏计算、模型压缩或者存算一体方案了。
1.5 破解存储墙的几种思路
面对存储墙,业界主要有这几条路:
- 增加片上存储:把SRAM做大,比如Cerebras的晶圆级芯片,片上SRAM做到40GB。但成本极高,良率堪忧。
- 优化数据流:通过数据复用、计算调度,减少对DRAM的访问。比如NVIDIA的Tensor Core,就是靠局部性原理。
- 存算一体:把计算做到存储里面去,减少数据搬运。这个方向很热,但工艺成熟度还不够。
- 模型压缩:量化、剪枝、蒸馏,让模型变小,自然就减轻了存储压力。
我个人比较看好第三条路——存算一体。虽然现在还有不少坑,但方向是对的。你想想看,如果能在存储单元里直接做矩阵乘法,那带宽墙就不存在了。
注意:存算一体不是万能的。我见过一些方案,为了做存算一体,牺牲了精度和灵活性。做AI芯片,一定要想清楚你的目标场景是什么。通用和专用,永远是个trade-off。
1.6 本章小结
存储墙是AI芯片设计的第一道坎。理解它,你才能知道为什么芯片利用率上不去,为什么功耗降不下来。后面的章节,我会带大家深入每个存储层次,看看具体怎么设计、怎么优化。
记住一句话:AI芯片的竞争,本质上是存储系统的竞争。谁能在有限功耗下,把数据更快地喂给计算单元,谁就赢了。
公众号:蓝海资料掘金营,微信deep3321