NMC 存算一体与 AI ISP:打破"内存墙"的端侧视觉处理新范式
前言
在上一篇《列共享架构(CSA)深度解读》中,我们讨论了如何通过共享存储减少数据冗余。今天聊聊更底层的问题:数据搬运本身。
AI 推理的核心运算是矩阵乘法(GEMM)。一个典型的卷积层,可能有数百万次乘加运算,每次运算都需要从存储中读取操作数。在传统冯·诺依曼架构中,计算和存储物理分离,数据需要在两者之间反复搬运。
问题在于:搬运数据的功耗,往往超过计算本身。
这就是"内存墙"------存储带宽和能效成为 AI 推理性能的核心瓶颈。尤其在端侧设备中,功耗预算极其有限(通常几百毫瓦到 1-2W),内存墙的影响更加显著。
NMC(Neural Memory Computing)存算一体技术,就是为打破这面墙而生的。
1. 内存墙的量化分析
先看一组数字。以 45nm CMOS 工艺为例:
| 操作 | 能耗 |
|---|---|
| 32-bit 整数加法 | ~0.1 pJ |
| 32-bit 整数乘法 | ~3 pJ |
| 32-bit SRAM 读取 | ~5 pJ |
| 32-bit DRAM 读取 | ~200 pJ |
一次简单的乘加运算(MAC),计算本身消耗 ~3.1 pJ,但从 DRAM 读取操作数需要 ~400 pJ(两个操作数)------数据搬运的功耗是计算功耗的 100 倍以上。
即使在 SRAM 场景下,读取的 ~5 pJ 也高于乘法的 ~3 pJ。当 AI 模型需要的数据量增大,存储访问频次上升,数据搬运的总功耗会迅速超过计算功耗。
这就是为什么在端侧 AI ISP 中,仅仅增加算力是不够的------如果不解决数据搬运问题,更多的算力反而意味着更多的功耗。
2. 存算一体的基本原理
存算一体(Computing-in-Memory, CIM)的核心思想非常直观:把计算搬到数据存储的位置,让数据不需要搬运就能完成计算。
2.1 基于 SRAM 的存算一体
SRAM CIM 是目前最接近量产的技术路线之一。其基本原理:
- 在 SRAM 位单元(6T 或 8T 单元)的基础上,增加计算电路
- 权重数据以数字形式存储在 SRAM 中
- 输入数据以电压形式施加在字线(Word Line)上
- 每个存储单元的位线(Bit Line)上的电流反映了权重与输入的乘积
- 同一位线上多个单元的电流相加,自然实现了乘加运算
这种方式的优势:
- 一次字线激活,可以并行完成一列所有的乘加运算
- 数据不需要从 SRAM 读出再送入计算单元------计算直接在 SRAM 阵列内完成
- 能效比传统方案提升 1-2 个数量级
2.2 基于 RRAM 的存算一体
RRAM(阻变存储器)CIM 是另一条有前景的路线。RRAM 单元的阻值可以编程,天然适合存储神经网络权重:
- 高阻态 = 0,低阻态 = 1(或多级阻值对应多比特权重)
- 输入电压施加在字线上
- 根据欧姆定律(I = V/R),每个 RRAM 单元产生的电流 = V × G(G 为电导,即权重值)
- 根据基尔霍夫电流定律,位线上的总电流 = Σ(I) = 矩阵向量乘的结果
RRAM CIM 的优势在于非易失性(掉电不丢失数据)和更高的存储密度,但目前的挑战是阻值精度和耐久性。
3. NMC 流处理架构
NMC(Neural Memory Computing)是我们在 AI ISP 中实现的一种存算一体流处理架构。它的核心特点是将存算一体与流处理(Stream Processing)相结合。
3.1 流处理的概念
传统 AI 加速器的工作方式是"批处理":先把一整帧数据存储到片上缓存,然后启动计算,计算完成后输出结果,再处理下一帧。
流处理则不同:数据像流水一样连续通过处理流水线。传感器输出的像素数据逐行进入 AI ISP,经过各级处理后逐行输出。不需要等待整帧数据就绪,也不需要中间帧缓存。
流处理的优势:
- 延迟极低:第一个像素进入后,很快就有第一个像素输出
- 缓存需求小:不需要整帧缓存,片上 SRAM 用量大幅减少
- 功耗更低:减少了帧级缓存的读写功耗
3.2 NMC + 流处理的结合
NMC 将存算一体阵列接入流处理流水线:
传感器 → [行缓冲] → [NMC 存算阵列:第一级处理]
↓
[NMC 存算阵列:第二级处理]
↓
[后处理单元] → 输出
传感器数据逐行流入,经过 NMC 存算阵列的多级处理,每一级直接在存储位置完成矩阵运算,处理结果以流的形式传递到下一级。
整个过程的关键特性:
- 零中间缓存:数据在存算阵列间以模拟信号形式流动,不需要数字化中转
- 确定性延迟:流水线的级数和每级延迟固定,端到端延迟可精确预测
- 功耗与数据量成正比:不处理数据时几乎不消耗动态功耗
4. NMC 在 AI ISP 中的应用场景
4.1 AI 降噪
极低光照场景下,传感器输出的信噪比可能低至 0dB 以下。传统的 BM3D 或 NLM 降噪算法计算量大,不适合端侧实时处理。
基于深度学习的降噪模型(如 DnCNN 结构)可以用 NMC 存算一体阵列高效实现:卷积运算直接在阵列中完成,流处理保证低延迟。在 0.001Lux 场景下,可以实现实时全彩降噪。
4.2 实时目标检测
轻量级目标检测模型(如 YOLO-Nano 级别)的计算量在端侧设备上可接受,但对延迟和功耗要求严格。NMC 流处理架构可以在几百毫瓦功耗下实现实时推理,端到端延迟稳定可控。
4.3 HDR 合成
多帧 HDR 合成需要将多帧图像对齐、融合。NMC 存算一体阵列可以并行处理多帧数据,流处理保证合成结果的实时输出。
5. NMC 的工程挑战与解决方案
5.1 精度问题
存算一体阵列的计算精度受限于器件特性(如 SRAM 的噪声、RRAM 的阻值偏差)。解决方案:
- 混合精度策略:关键层使用高精度数字计算,非关键层使用存算一体
- 校准机制:定期用已知数据校准阵列的计算偏差
- 算法适配:训练时模拟存算一体阵列的精度限制,提高模型鲁棒性
5.2 模拟信号链
NMC 存算一体阵列输出的是模拟电流信号,需要 ADC 转换为数字信号。ADC 的精度和速度直接影响系统性能。解决方案:
- 采用时间编码(Time-based)ADC,在面积和功耗上优于传统 SAR ADC
- 通过流水线设计,ADC 转换与下一级计算重叠,隐藏转换延迟
5.3 工艺兼容性
NMC 存算一体阵列需要在标准 CMOS 工艺中实现。SRAM CIM 与标准工艺完全兼容;RRAM CIM 需要额外的后道工艺(BEOL),但目前已有多个代工厂提供成熟方案。
6. 小结
NMC 存算一体流处理架构,通过在存储位置直接完成矩阵运算、消除数据搬运开销,结合流处理的低延迟和低缓存需求特性,为端侧 AI ISP 提供了一种在极低功耗下实现高性能 AI 推理的可行路径。
CSA(列共享)解决数据共享效率,NMC(存算一体)解决计算能效------两者结合,构成了新一代 AI ISP 的架构基础。
本文为技术分享,如有技术讨论欢迎评论区交流。后续文章将深入讨论"主协配合"系统级设计。