1. 存算一体概述:冯·诺依曼瓶颈、基本概念与发展历程
大家好,我是你们的老朋友。今天咱们聊聊存算一体架构。说实话,这个领域我摸爬滚打了好几年,踩过不少坑,也收获了不少经验。开篇第一章,咱们先把基础打牢。
1.1 冯·诺依曼瓶颈:到底卡在哪?
先问大家一个问题:为什么现在的AI芯片越做越大,但性能提升却越来越慢?
答案就藏在冯·诺依曼架构里。这个架构从1945年提出到现在,基本没变过——计算单元和存储单元是分开的。CPU负责算,内存负责存,中间靠总线传数据。
问题就出在这条总线上。我打个比方:你让一个快递员(总线)在仓库(内存)和工厂(计算单元)之间来回跑。工厂要处理一个数据,快递员得先去仓库取,再送到工厂。工厂算完了,快递员还得把结果存回仓库。
这个来回跑的过程,就是著名的「冯·诺依曼瓶颈」。说白了,数据搬运的速度,远远跟不上计算的速度。
核心矛盾:处理器越来越快,但内存带宽的增长速度慢得多。结果就是处理器经常「饿着肚子」等数据。
我在做第一代AI加速器时,就吃过这个亏。当时把算力堆得很高,结果一跑实际模型,性能只有理论峰值的30%。为什么?数据搬不过来啊!
来看一组数据,你就明白了:
| 指标 | 处理器性能增长 | 内存带宽增长 | 差距倍数 |
|---|---|---|---|
| 过去20年 | 约1000倍 | 约20倍 | 50倍 |
| 当前典型值 | ~10 TFLOPS | ~100 GB/s | ~100倍 |
这个差距还在拉大。你想想看,一个神经网络模型,权重参数动不动几百MB甚至GB级别。每次计算都要从DDR里搬数据,功耗和延迟都花在路上了。
1.2 存算一体:换个思路解决问题
既然瓶颈在数据搬运,那干脆别搬了——让存储单元直接参与计算。这就是存算一体的核心思想。
我个人的理解是:存算一体不是某个具体技术,而是一种设计哲学。它试图打破「存」和「算」的物理界限。
具体来说,存算一体有两种主流实现方式:
- 近存计算(Near-Memory Computing):把计算单元搬到存储单元旁边,缩短搬运距离。比如HBM(高带宽内存)加上逻辑die。
- 存内计算(In-Memory Computing):直接在存储单元内部完成计算。比如用ReRAM(阻变存储器)阵列做矩阵乘法。
我的经验:近存计算相对成熟,工业界已经有不少产品。存内计算还在学术探索阶段,但潜力巨大。如果你刚入门,建议先从近存计算入手。
这里我画了一张图,帮你理清存算一体的知识体系:
1.3 发展历程:从概念到落地
存算一体不是突然冒出来的。我梳理了一下,大概经历了四个阶段:
第一阶段:概念萌芽期(1960s-1990s)
最早可以追溯到1960年代的「智能存储」概念。当时有人提出,能不能让内存自己做一些简单的逻辑操作?但受限于工艺和需求,一直停留在纸面上。
第二阶段:学术探索期(2000s-2010s)
随着非易失性存储器(如Flash、RRAM)的发展,学术界开始认真研究存内计算。我记得2008年有一篇ISSCC论文,首次展示了用忆阻器做逻辑运算,当时觉得太酷了。
第三阶段:产业萌芽期(2015-2020)
AI爆发了。神经网络需要大量的矩阵乘法,而矩阵乘法恰好可以用存储阵列高效实现。三星、台积电等巨头开始投入。我2017年参与的一个项目,就是用SRAM阵列做卷积运算,虽然功耗降了10倍,但精度损失问题折腾了我们半年。
第四阶段:快速发展期(2020-至今)
现在存算一体已经成了热门赛道。国内外初创公司如雨后春笋,大厂也在布局。但说实话,离大规模商用还有距离。
避坑指南:我曾经在一个项目里,过于乐观地估计了存内计算的精度。结果流片回来,8bit量化后的模型精度掉了5个点。后来花了3个月才调回来。所以,精度和功耗的trade-off一定要提前评估。
1.4 驱动力:为什么是现在?
三个字:逼出来的。
- AI算力需求爆发:GPT-3有1750亿参数,一次推理需要做10^15次乘加运算。传统架构根本扛不住。
- 摩尔定律放缓:7nm之后,每代工艺提升越来越小,成本却翻倍。靠工艺红利已经走不通了。
- 功耗墙:我测过一个数据,在传统AI芯片里,数据搬运功耗占总功耗的60%-80%。你想想,大部分电都浪费在「跑路」上了。
这三个因素叠加,让存算一体从「可选」变成了「必选」。
1.5 小结
嗯,第一章就聊这么多。核心就三句话:
- 冯·诺依曼瓶颈是数据搬运太慢
- 存算一体让存储直接参与计算
- AI需求、摩尔定律放缓、功耗墙是三大驱动力
下一章咱们深入技术细节,聊聊存算一体的具体实现方式。到时候我会分享一些实际项目的设计经验和踩坑记录。
课后思考:你目前遇到的项目中,数据搬运的瓶颈占了多少?不妨算算你的系统里,有多少功耗是花在「搬数据」上的。
想要更多资料,联系可可