一、存算一体概述:什么是存算一体、冯·诺依曼瓶颈、发展历程与分类
各位同学,咱们今天聊点硬核的。存算一体,这个词最近几年火得不行。但说实话,我入行那会儿,这还是个冷门方向。记得2016年我第一次在论文里看到“Processing-in-Memory”这个词,第一反应是:这玩意儿能商用吗?
嗯,现在回头看,当时的疑虑早就被现实打破了。今天咱们就从根上把存算一体讲透。
1.1 什么是存算一体?
存算一体,说白了就是让计算和存储不再分家。传统架构里,CPU负责算,内存负责存,两者之间有条数据通道——也就是总线。数据得来回搬运。
你想想看,这像什么?像工厂和仓库分在两个城市。工人要干活,得先派车去仓库拉原料,干完活再把成品送回去。来回折腾,时间全花在路上了。
存算一体呢?直接把工厂建在仓库里。工人转身就能拿到原料,干完活就地存放。省去了来回搬运的时间,效率自然就上去了。
核心定义:存算一体(Processing-in-Memory, PIM)是一种将计算单元与存储单元在物理上融合或紧密耦合的架构设计,旨在消除数据搬运带来的开销。
我个人习惯把存算一体分成两个层次来看:
- 近存计算(Near-Memory Computing):计算单元离存储很近,但物理上还是分开的。比如HBM(高带宽内存)堆叠在GPU旁边。
- 存内计算(In-Memory Computing):计算直接在存储单元内部完成。这是真正的“一体”,也是业界追求的终极形态。
1.2 冯·诺依曼瓶颈——我们为什么要打破它?
说到存算一体,就绕不开冯·诺依曼架构。这个1945年提出的架构,统治了计算机行业七十多年。但它的核心问题,从诞生那天就埋下了。
冯·诺依曼架构把存储和计算分开,数据和指令都放在内存里,CPU通过总线去取。这就引出了著名的“冯·诺依曼瓶颈”——也叫“内存墙”。
为什么会这样?我给你算笔账:
| 指标 | CPU计算能力增长 | 内存访问速度增长 |
|---|---|---|
| 年均增速 | 约60%(摩尔定律) | 约7% |
| 差距 | 每10年扩大约10倍 | |
看到没?CPU越来越快,但内存跟不上。结果就是CPU大部分时间在“等数据”。我做过一个实测:在典型的深度学习训练中,GPU有超过60%的时间在等待数据从显存搬运到计算单元。这60%的时间,说白了就是浪费。
避坑指南:我曾经接手过一个项目,团队花了大半年优化模型结构,精度提了5%,但推理速度反而慢了。一查才发现,模型大了,显存搬运次数暴增,带宽成了瓶颈。这就是典型的“优化了计算,忽略了搬运”。
冯·诺依曼瓶颈带来的具体问题有三个:
- 带宽墙:总线带宽有限,数据搬不过来
- 功耗墙:数据搬运消耗的能量,远大于计算本身。有研究显示,一次64位浮点运算消耗的能量,如果用来搬运数据,只能搬20微米
- 延迟墙:内存访问延迟是纳秒级,但CPU计算是皮秒级,差了三个数量级
1.3 存算一体的发展历程
存算一体不是凭空冒出来的。它的发展,我大致分成三个阶段:
第一阶段:萌芽期(1960s-1990s)
早在1969年,斯坦福的Harold Stone就提出了“Logic-in-Memory”的概念。但那时候集成电路刚起步,工艺太粗糙,做不出像样的东西。这个想法沉睡了二十多年。
我记得读博士时翻到Stone的原始论文,那叫一个震撼——1969年啊,人家就在想怎么把逻辑和内存放一起了。可惜生不逢时。
第二阶段:探索期(1990s-2010s)
这二十年,学术界一直在尝试。代表性的工作包括:
- 计算RAM(CRAM):在DRAM阵列里嵌入简单的逻辑单元
- 智能内存(Intelligent Memory):在内存控制器附近集成协处理器
- 近存计算原型:比如IBM的Active Memory Cube
但这些方案都没能大规模商用。为什么?因为当时的数据量还没大到让“内存墙”成为致命问题。说白了,需求没到位。
第三阶段:爆发期(2010s至今)
深度学习来了。模型参数从百万级涨到千亿级,数据搬运成了不可承受之重。产业界开始认真对待存算一体。
标志性事件包括:
- 2015年:美光推出HMC(混合内存立方体),首次将逻辑层和存储层堆叠在一起
- 2018年:三星发布HBM2E,带宽突破1.6TB/s
- 2021年:台积电推出3D Fabric封装技术,为存算一体提供工艺基础
- 2023年:多家初创公司推出存内计算芯片原型,能效比提升10倍以上
个人经验:2020年我参与过一个存算一体芯片的架构设计。当时最大的挑战不是电路设计,而是编译器——你得让现有的AI框架知道“这个算子可以在内存里算”。软件生态的滞后,往往是新技术落地的最大障碍。
1.4 存算一体的分类
存算一体不是单一技术,而是一个技术谱系。我习惯按“计算和存储的融合程度”来分类:
从这张图可以看得很清楚:从左到右,融合程度越来越高,技术难度也越来越大,但能效收益也越明显。
具体来说,存内计算又可以分为几个子类:
| 分类 | 存储介质 | 计算方式 | 代表技术 | 成熟度 |
|---|---|---|---|---|
| 数字存内计算 | SRAM / DRAM | 数字逻辑(与或非) | Compute SRAM | 中等(已有原型芯片) |
| 模拟存内计算 | RRAM / PCM / MRAM | 模拟运算(基尔霍夫定律) | 交叉阵列(Crossbar) | 较低(实验室阶段) |
| 混合存内计算 | 多种介质混合 | 数模混合 | 3D NAND + 逻辑层 | 早期探索 |
关键洞察:模拟存内计算虽然能效极高(理论可达传统架构的1000倍),但精度受工艺波动影响大。我在2022年测试过一款RRAM存内计算芯片,8位乘法累加运算的误差在2-5%之间。对于推理任务可以接受,但训练任务基本不可用。所以目前产业界更倾向于数字存内计算方案。
1.5 为什么是现在?
你可能要问:存算一体概念都提了五十年了,为什么最近才火?
三个原因:
- 需求驱动:AI模型参数爆炸,数据搬运成本已经高到无法忽视。GPT-3有1750亿参数,一次推理需要搬运几百GB的数据
- 工艺成熟:3D封装、先进制程让“把计算和存储堆在一起”成为可能。台积电的CoWoS封装技术,已经能做到8个HBM堆叠在GPU旁边
- 能效焦虑:数据中心功耗飙升,单颗GPU功耗已经突破700W。存算一体能把能效提升5-10倍,这对大规模部署来说太诱人了
嗯,说到这里,我想起一个真实的案例。2021年我帮一家自动驾驶公司做方案选型。他们用的是传统GPU方案,每辆车每天要处理10TB的传感器数据。数据从显存搬到计算单元,功耗占了整个系统的40%。后来我们尝试了近存计算方案,把部分预处理逻辑搬到HBM的逻辑层,功耗直接降了30%。
这就是存算一体的价值——不是花哨的概念,而是实打实的能效提升。
我的建议:如果你刚开始接触存算一体,别急着追最前沿的模拟存内计算。先从近存计算入手,理解数据搬运的代价,再逐步深入。我见过太多人一上来就研究RRAM交叉阵列,结果连基本的带宽计算都没搞明白。
好了,这一章的内容就到这里。存算一体的核心概念、发展脉络和分类,咱们都过了一遍。下一章,我会带你深入显存优化的具体技术——包括如何分析显存占用、如何减少数据搬运、以及如何利用近存计算特性来加速推理。