第 39 节 基于存内计算的 AI 芯片(第1页)

最近几年来,存内计算已经被用于 AI 芯片的设计,其中包括作为深度学习加速器的 AI 芯片及类脑芯片。存内计算的研究大致可以分成 3 个方向。

(1)对现有的存储器(如 DRAM)作一些电路改变,如加入一些可以进行逻辑计算的简单电路,执行大规模并行的批量操作。这种方法可以快速设计实施并投入商业应用。初创公司 UPMEM(见第 4 章)已用这种方法做成了产品。

(2)在 3D 堆叠的存储器中加入逻辑电路,使其能进行存内计算。3D 堆叠存储器现在已经比较成熟,可以利用 3D 堆叠存储技术中的逻辑层来加速重要的数据密集型运算。

(3)直接使用新型 NVM,一边计算一边存储。这种方法还处于研究的起步阶段,实际使用还有不少挑战。

改进现有存储芯片来完成存内计算

本节分别介绍在现代计算系统中改进现有存储芯片来启用存内计算的几种新方法。这些方法仅需最小限度地更改存储芯片即可执行简单而强大的通用操作,这些芯片本身的效率很高。

1.基于 SRAM 的存内计算方法

图 7.2 为一种基于 SRAM 的存内计算方法 [121] ,用于完成 VMM 运算 c=A×b。这种架构基于由 6 个晶体管组成的静态随机存取存储器(6T-SRAM)位单元的阵列,并且包括用于两种工作模式的外围电路。在 SRAM 模式下,通过字线(WL)的数字激活,一次访问一行以读取/写入数据;而在存内计算模式下,使用输入数据激活 WL,一次可以同时访问多行或所有行。这里每个字线数模转换器(WLDAC)施加一个与输入矢量元素相对应的模拟电压值,从而调制位单元电流值。如果将位线(BL、BLB)用作差分信号,那么存储的数据具有将输入矢量元素乘以 +1 或-1 的作用,并且一列中来自所有位单元的电流会累加,产生 BL/BLB 的模拟放电,从而产生矩阵乘法所需的乘积累加操作。这就是说,存内计算并不逐行访问原始位,而是一次访问许多或所有位的计算结果,从而分摊了数据访问的成本。存内计算可以应用于以这种结构集成的任何存储技术和工艺 [122] 。