一、存算一体概述:什么是存算一体、冯·诺依曼瓶颈、发展历程与分类

各位同学,咱们今天聊点硬核的。存算一体,这个词最近几年火得不行。但说实话,我入行那会儿,这还是个冷门方向。记得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%,但推理速度反而慢了。一查才发现,模型大了,显存搬运次数暴增,带宽成了瓶颈。这就是典型的“优化了计算,忽略了搬运”。

冯·诺依曼瓶颈带来的具体问题有三个:

  1. 带宽墙:总线带宽有限,数据搬不过来
  2. 功耗墙:数据搬运消耗的能量,远大于计算本身。有研究显示,一次64位浮点运算消耗的能量,如果用来搬运数据,只能搬20微米
  3. 延迟墙:内存访问延迟是纳秒级,但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 存算一体的分类

存算一体不是单一技术,而是一个技术谱系。我习惯按“计算和存储的融合程度”来分类:

存算一体技术分类谱系 融合程度 → 传统冯·诺依曼 计算与存储完全分离 近存计算 计算靠近存储 存内计算 计算在存储内部 CPU + DDR HBM / HMC / 3D堆叠 RRAM / PCM / 模拟计算 示例:x86服务器 示例:NVIDIA A100 示例:Mythic AI芯片

从这张图可以看得很清楚:从左到右,融合程度越来越高,技术难度也越来越大,但能效收益也越明显。

具体来说,存内计算又可以分为几个子类:

分类 存储介质 计算方式 代表技术 成熟度
数字存内计算 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交叉阵列,结果连基本的带宽计算都没搞明白。

好了,这一章的内容就到这里。存算一体的核心概念、发展脉络和分类,咱们都过了一遍。下一章,我会带你深入显存优化的具体技术——包括如何分析显存占用、如何减少数据搬运、以及如何利用近存计算特性来加速推理。

可可精品资料库