本教程基于一项系统级研究,深入探讨如何将存内计算(CiM)集成到GPU缓存层次结构中,以加速机器学习(ML)推理中的通用矩阵乘法(GEMM)运算。我们将从三个核心问题出发:使用哪种类型的CiM?何时使用CiM?在哪里集成CiM? 通过详细的实验和分析,为您提供清晰的决策依据。
01. 为什么需要存内计算?
机器学习应用已无处不在,从汽车、医疗到金融和技术领域。这些应用的核心计算是通用矩阵乘法(GEMM),包括矩阵-向量乘法和矩阵-矩阵乘法。然而,传统冯·诺依曼架构(如CPU和GPU)中,计算单元与存储单元分离,导致频繁的数据搬运,产生高昂的能耗成本——即“存储墙”或“冯·诺依曼瓶颈”。
存内计算(CiM) 通过在内存中直接执行计算,显著降低了数据移动成本,提供了高能效比的解决方案。本教程重点讨论在片上存储子系统(如GPU的缓存、寄存器文件和共享内存)中集成CiM,无需激进的技术变革。

图1. 概览图:要实现最佳的ML推理加速,需要了解各种CiM类型(What)、GEMM形状(When)和内存级别(Where)的不同特性。
02. 三个核心问题:什么、何时、何处
2.1 什么类型的CiM?
- 模拟CiM: 在存储器阵列内的模拟/混合信号域中执行乘加(MAC)运算。需要数模转换器(DAC)和模数转换器(ADC)等外围电路。ADC具有较高的面积、延迟和能耗成本。
- 数字CiM: 在数字域中执行所有计算(逐位与/异或、乘法)。为了计算最终MAC输出,需执行多逐位操作,可能增加计算延迟。
此外,存储器单元类型(如SRAM 6T/8T)、字线/位线激活数量、权重映射方案等设计选择,都增加了确定最有效CiM基元的难度。
2.2 何时使用CiM?
ML模型由各种GEMM形状(M×N×K)组成。通过计算算术强度(运算次数/内存访问字节数),可以了解GEMM对内存的依赖程度。并非所有GEMM都需要GPU的全部功能,CiM可以在某些场景下提供能耗优势,同时保持可比的性能。
2.3 在哪里集成CiM?
每个内存级别(寄存器文件RF、共享内存SMem、L2缓存等)具有不同的带宽和容量,这影响数据复用机会和计算并行性。找到一个能充分利用局部性并最大化CiM效益的内存级别至关重要。
03. 相关工作简述
已有研究探索了CPU中的缓存内计算(如Duality Cache、MLIMP、Livia),但缺乏对GPU内存层次结构的系统评估。本研究填补了这一空白,聚焦于GPU(类似Nvidia A100)的流式多处理器(SM)中的RF和SMem级别,使用Timeloop-Accelergy框架进行早期系统级评估。
04. 背景知识
4.1 GEMM在ML工作负载中的重要性
卷积神经网络(CNN)、Transformer、推荐模型等均以GEMM为核心。例如,CNN通过im2col转换为GEMM,Transformer中的注意力计算也是GEMM。常用GEMM形状如表I所示(包括ResNet50、BERT、DLRM等模型中的层)。

表I: 来自常见ML模型的各种GEMM形状
4.2 基于SRAM的存内计算基元
CiM宏单元设计可基于模拟或数字,关键参数包括:
- SRAM单元类型: 常见6T(紧凑但易读干扰)、8T(解耦读写,支持多字线)、10T(面积大但功能强)。
- 输入方式: 输入可预存于CiM宏内,或从外部缓冲区流入。
- 精度: 本教程固定为INT-8。
数字CiM适合先进工艺节点,而模拟CiM需应对ADC噪声问题。
4.3 缓存层次结构中的数据流优化
通过分块(tiling)和循环顺序调度,可最大化数据复用。正确的数据流能显著减少内存访问次数,提升能效。Timeloop等工具可自动搜索最优映射。
05. CiM架构构建与实验设置
5.1 使用Timeloop-Accelergy框架
该框架通过架构模板、约束配置和能耗表,快速评估不同CiM基元。我们将CiM集成到RF和SMem级别,架构模板如图3所示。

图3. 架构模板框图:内存级被重组为计算级,由多个CiM阵列组成,每个阵列包含可并行操作的CiM单元。
5.2 四种CiM基元详解
- Analog-1 [16]: 4个存储体,每体4个128x64 SRAM 6T单元块。256个CiM单元,每单元128b存储,9个周期完成8b-8b MAC。时间循环因子16(受ADC数量限制)。
- Analog-2 [17]: 8个阵列(64×64),可重构ADC设计。256个CiM单元,144个周期完成8b-8b MAC(含位串行延迟)。面积开销大。
- Digital-1 [18]: 全数字设计,输入逐行输送,使用加法器树完成MAC。CiM单元利用8列权重位,18个周期延迟,面积适中。
- Digital-2 [15]: 输入和权重映射到同一列,每CiM单元约执行10个MAC,但需233个周期。并行性受限,面积小。

图4. 四种CiM基元的微架构示意图
5.3 实验条件
- 基准架构: 类似Nvidia A100的单个SM,规格见表V。假设INT-8精度、权重固定数据流、等面积约束。
- GEMM形状: 从ResNet50、BERT-medium、DLRM中提取,覆盖计算密集型和内存密集型(见表IV)。
- 能耗缩放: 根据已完成的缩放工作,将CiM能耗数据匹配到32nm、1V技术。
表II: CiM架构模板参数

表III: 四种CiM基元的关键参数

表IV: 实验用GEMM形状及属性

表V: 单个SM的基准架构规格
06. 核心发现与结果
6.1 数据流对性能的影响
图5展示了两个示例,说明不同CiM基元如何利用数据复用:
- 当权重矩阵较小且M很大时(Gemm-3136×64×64),CiM可通过复制权重提高吞吐量,但高延迟基元(如Analog-2)性能严重受限。
- 当权重矩阵过大时(Gemm-512×1024×512),CiM可减少DRAM访问,能耗节省显著。Digital-1通过权重复制实现高于基线的吞吐量。

图5. 数据流示例及性能比较
