【硬核科普】存算一体化系统(Processing-in-Memory, PIM)深入解析

发布于:2024-07-05 ⋅ 阅读:(23) ⋅ 点赞:(0)

0. 前言

按照国际惯例,首先声明:本文只是我自己学习的理解,虽然参考了他人的宝贵见解及成果,但是内容可能存在不准确的地方。如果发现文中错误,希望批评指正,共同进步。

存算一体化(Processing-in-Memory, PIM)系统是一种旨在克服传统冯·诺依曼架构局限性的新架构,这种架构通过将数据存储和数据处理紧密耦合减少了数据在存储和处理器之间的传输,从而显著提高了性能和能效比。

达摩院也把存算一体选作2023年10大科技趋势之一。

达摩院2023年10大科技趋势

1. 提出背景

Computational Storage(计算存储)的概念最早是在1969年由斯坦福研究所(Stanford Research Institute,SRI)的几位科学家提出的。他们预见到存算一体化可能是实现高算力和高能效计算的关键技术,类似于人脑的处理方式,其中计算和存储紧密集成在一起。

然而,由于当时的技术限制:包括芯片制造技术和算力性能的不足,存算一体化的概念在很长一段时间内停留在理论研究阶段,并没有得到实际的应用。随着技术的进步,尤其是对更高计算效率和更低能耗的需求增加,存算一体化技术开始受到更多的关注,并逐渐发展成为可能改变未来计算架构的重要方向。
在这里插入图片描述
传统的冯·诺依曼架构中,数据存储和计算是分离的,这意味着处理器必须从存储器中读取数据进行处理,然后再将结果写回到存储器中。随着数据集的增大和计算复杂度的增加,这种架构下的数据传输成为了瓶颈,形成了所谓的 “存储墙”“功耗墙”。存储墙指的是存储速度无法跟上计算速度,而功耗墙则是指数据频繁在存储和计算单元间传输导致的功耗大幅上升。

1.1 存储墙

根据摩尔定律,处理器的晶体管数量每18个月~24个月翻一番,理论上处理器性能也会随之提升。然而,存储器的速度提升远远落后于处理器,大约每三年提升一倍。这种不对称的进展导致了处理器等待数据的时间占总时间的比例越来越大,降低了总体计算效率。

下表可以清楚地看出数据传输增长速度与处理器算力的增长速度的巨大差距:

计算速度vs存取速度 90年代初 20年代初 增长倍数
处理器算力 约10~100MFLOPS 约1~10TFLOPS 约100000倍(约为 2 17 2^{17} 217倍)
内存带宽 约10~100MB/s 约10-100GB/s 约1000倍(约为 2 10 2^{10} 210倍)

可见,经过30年左右的发展处理器的算力提升远大于内存带宽的提升。更进一步,根据黄氏定律(预测GPU将推动AI性能实现逐年翻倍)处理器的速度和内存的速度将会拉开更大的差距!

1.2 功耗墙

随着计算系统对内存带宽需求的不断增加,以及对更高容量和更快访问速度的追求,传统动态随机存取存储器(DRAM)和其他类型内存的功耗急剧上升,最终会达到一个无法通过简单增加功率预算来解决的临界点。

这一方面是因为数据从DRAM搬运到CPU需要跨过多个层级的存储层次,包括L1、L2、L3缓存,有研究表明:在特定情况下,将1比特数据从DRAM搬运到CPU所消耗的能量比在CPU上处理这个比特所需的能量还要高几倍到几十倍。根据不同的估计,数据从内存搬运到处理器的能耗可以占到总计算能耗的50%以上。而在深度学习训练中,数据搬运的能耗甚至可以高达总能耗的80%

另一方面也是因为随着功耗的增加,系统的整体能效比(性能/功耗)开始下降,这意味着为了获得更高的性能,必须付出更更高的功耗及冷却代价。

2. 架构方案

2.1 核心特征

存算一体化的核心在于将数据处理能力与数据存储紧密结合,使得数据能够在存储位置被直接处理,避免了频繁的数据搬运,从而降低了延迟,减少了能耗,并提高了数据处理速度。
在这里插入图片描述

2.2 技术实现

存算一体的技术实现有多种方式,本文将以ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)为基础的PIM(Processing-In-Memory)架构进行说明。该架构特别关注于矩阵乘法-累加操作(MAC,Multiply-Accumulate Operation),这是许多机器学习算法,尤其是神经网络中的核心运算之一。

ReRAM PIM架构根据输出感测模式可以分为电流模式(current-mode)和电压模式(voltage-mode)两种。这两种模式都利用了ReRAM设备的导电特性来存储权重,并利用输入信号来进行计算。
在这里插入图片描述
神经网络层中的权重被存储为ReRAM设备的导电值(Gij),其中i和j分别代表行和列。二进制输入(0或1)通过字线(Word Line, WL)施加。

参考文献: T. F. Wu et al., “Brain-inspired computing exploiting carbon nanotube FETs and resistive RAM: Hyperdimensional computing case study,” in IEEE ISSCC Dig. Tech. Papers, Feb. 2018, pp. 492–493.

2.2.1 电流模式
  • 电流计算:在电流模式下,每一行的源线(Source Line, SL)被驱动至读电压Vread,而每一列的位线(Bit Line, BL)则被钳位到参考电压Vref。输入特征与权重的乘积可以通过流经单个ReRAM单元的电流来表示。
  • 点积运算:输入向量与权重矩阵的点积运算在模拟域中通过积累来自同一列的ReRAM单元电流完成。
  • 转换与输出:每列的总电流最终通过电流模数转换器(Analog-to-Digital Converter, ADC)转换为数字值。
2.2.2 电压模式
  • 初始化:在电压模式下,所有源线接地,所有位线预充电至Vpre并保持浮动状态。
  • 放电率:位线电容的放电速率与输入向量和权重矩阵的点积成正比。
  • 转换与输出:产生的位线电压通过ADC转换为数字值。
2.2.3 模式选择
  • 电流模式:具有更大的感测余量和更快的感测速度,但静态电流在整个感测期间存在,导致能量效率较低。
  • 电压模式:只消耗动态功率,因此在能量效率方面优于电流模式,但在感测速度和余量方面可能不如电流模式。
2.3 PIM方案优势
  1. 带宽提升:某些存算一体芯片能够提供TB/s级别的内存带宽,远远超过传统DRAM的几十GB/s。

  2. 功耗降低:通过减少数据搬运,存算一体架构能够显著降低整个系统的总功耗,有助于解决散热和能效问题。
    请添加图片描述

  3. 响应速度提升:减少数据搬运的延迟,使得实时数据分析和响应成为可能,这对于自动驾驶、实时视频分析等场景至关重要。
    在这里插入图片描述

  4. 计算密集型任务的加速:在深度学习等领域,存算一体架构可以通过在存储器附近执行矩阵乘法、卷积等运算,显著加速训练和推理过程。

3. 应用场景

存算一体化系统适用于数据密集型实时计算任务,包括但不限于:

  • 人工智能与深度学习:在神经网络和深度学习模型的训练和推理中,存算一体化可以极大地提高计算效率和能效,减少训练时间和能源消耗。
  • 边缘计算:在资源受限的边缘设备上,存算一体化能够实现低功耗、高处理能力的计算任务,适合物联网(IoT)、自动驾驶汽车、无人机等场景。
  • 高性能计算(HPC):在科学计算、工程模拟等领域,存算一体化有助于加速数据密集型任务的处理。
  • 数据库与数据分析:存算一体化可以显著提高数据库查询速度和数据分析效率,特别是在处理海量数据时。
  • 生物信息学:在基因组学和蛋白质组学研究中,处理大量生物数据时,存算一体化可以提供更快的分析速度和更低的运行成本。
  • 类脑计算:在模仿大脑结构和功能的计算系统中,存算一体化架构可以更有效地实现神经元的模拟和突触的动态调整。

4. 典型产品

4.1 鸿图H30

鸿图H30是一款由后摩智能设计的存算一体智驾芯片,这款芯片旨在推动自动驾驶技术的发展,特别是在智能驾驶和工业领域应用。
在这里插入图片描述

鸿图H30基于SRAM存储介质,采用了数字存算一体架构,具有256 TOPS(每秒万亿次操作)的物理算力,使其能够处理复杂的深度学习和机器视觉任务,这对于自动驾驶车辆的感知和决策至关重要。
在这里插入图片描述

典型功耗仅为35瓦,相比传统方案,鸿图H30的能效比提升了7倍,这在能源敏感的应用场景中非常重要。

值得注意的是,尽管鸿图H30在性能和能效方面表现突出,但其算力仍然低于英伟达(NVIDIA)的DRIVE SoC Thor芯片(非存算一体架构),后者在2023年的算力达到了2000 TOPS。不过,鸿图H30的发布标志着中国在存算一体芯片领域取得了重要进展,显示了国产芯片在自动驾驶技术方面的竞争力。

4.2 三星HBM-PIM

HBM-PIM(High Bandwidth Memory with Processing In Memory)是三星电子开发的一种存算一体技术,它结合了高带宽内存(HBM)和内存内计算(PIM)的概念。HBM-PIM的目标是通过在内存模块内部直接执行计算,显著提高数据密集型应用的性能,同时减少功耗。
在这里插入图片描述

HBM-PIM在每个内存库(Memory Bank)中放置了一个DRAM优化的AI引擎,允许数据处理在存储数据的同一位置进行,从而极大化减少了数据移动的操作。这种设计减少了CPU和内存之间的数据传输,提高了系统的整体性能,并且将能耗降低了70%以上。

HBM-PIM有着优秀的兼容性,客户不必完全重新设计他们的架构。三星在HBM-PIM技术的研发过程中,与AMD进行了合作,将HBM-PIM内存应用于AMD的商用GPU加速卡MI-100,用于生成式人工智能和混合专家系统(MOE)模型。

5. 存算一体化缺点

存算一体化架构与传统的冯·诺依曼架构相比,确实提供了显著的优势:比如降低数据搬运的功耗、减少延迟和提高并行处理能力。然而,存算一体化架构也存在一些缺点和挑战,主要包括:

  1. 兼容性问题:现有的软件和算法通常基于冯·诺依曼架构设计,要充分利用存算一体化架构的优势,可能需要对软件进行重大的修改和优化,这涉及到编程模型、编译器支持和算法重构,增加了迁移成本和复杂性。

  2. 存储单元的计算能力有限:存储单元中嵌入的计算能力通常比专用的计算单元(如CPU或GPU中的ALU)简单,这意味着复杂的计算操作可能需要更多的步骤或无法在存储器内部完成,从而限制了某些类型计算的效率。

  3. 灵活性受限:冯·诺依曼架构允许数据和指令的自由流动,而存算一体化架构可能需要预先确定数据和计算的布局,这可能限制了架构的灵活性,特别是在处理非结构化或动态变化的工作负载时。

  4. 数据一致性问题:当多个计算单元同时访问同一存储位置时,数据一致性和同步机制变得更为复杂,尤其是在分布式存算一体系统中。

  5. 成本和制造复杂性:存算一体芯片可能需要更复杂的制造工艺,以将计算电路与存储电路集成在同一芯片上,这可能导致生产成本增加和良率问题。

  6. 故障容忍性:如果存储和计算紧密耦合,一旦存储单元出现故障,可能会影响到计算能力,影响系统的整体健壮性。

6. 总结

存算一体化系统代表了计算架构发展的一个重要方向,特别是在大数据处理、机器学习、边缘计算等领域,它有望带来革命性的性能提升和能效改进。然而,要实现这一愿景,还需要克服一系列技术挑战,包括硬件设计、软件生态构建和系统集成等。