卷积神经网络(CNN)训练过程可以分为前向和后向两个阶段,CNN训练在后向传播阶段通常需要高精度的计算,但当前广泛使用的基于模拟计算的存内处理(PIM)加速器由于精度受限难以满足要求。论文提出了基于ReRAM的异构加速器ReHy,结合数字计算和模拟计算模块来加速CNN训练的不同阶段:在前向阶段利用基于模拟计算的存内处理模块(APIM)实现高性能,在后向阶段利用基于数字计算的存内处理(DPIM)保证高精度。我们在DPIM中设计了浮点加法和乘法运算逻辑来实现32位的高精度矩阵乘法运算,保证了后向阶段的计算准确率。在计算过程中,对DPIM阵列中处理单元的刷新和重用,使资源利用率提高了54%。同时,我们还提出一个性能模型,用于评估在CNN训练的后向阶段执行高精度矩阵乘法时从DPIM获得的收益,从而使得ReHy可根据数据并行度卸载由 DPIM 加速的矩阵乘法。基于七个典型的CNN模型进行实验评估,ReHy实现了与全精度计算平台(CPU/GPU)相似的准确率和收敛速度,但与CPU/GPU和FloatPIM相比,ReHy可以将CNN训练速度提高48.8倍和2.4倍,并将能耗降低35.1倍和2.33倍。
该成果“ReHy: A ReRAM-based Digital/Analog Hybrid PIM Architecture for Accelerating CNN Training”发表在CCF A类期刊IEEE Transactions on Parallel and Distributed Systems(IEEE TPDS)2022上。IEEE TPDS主要关注并行分布计算算法、并行分布计算应用、并行分布计算结构和并行分布计算软件等领域最新的研究进展和技术,该期刊的影响因子为3.757。
论文链接:
https://ieeexplore.ieee.org/document/9663036
摘要
存内处理 (PIM) 已成为一种用于加速卷积神经网络 (CNN) 应用的高性能和高能效计算范式。电阻随机存取存储器 (ReRAM) 已广泛用于PIM架构,因为它具有极高的效率,可通过模拟计算以阵列级并行度加速矩阵向量乘法。然而,由于CNN训练通常需要在后向传播(BP)阶段进行高精度计算,模拟PIM加速器的有限精度阻碍了它们在CNN训练中的应用。为此,我们提出了ReHy,一种数模混合的PIM加速器以支持 ReRAM 阵列中的CNN训练。ReHy由模拟PIM (APIM)和数字PIM (DPIM)模块组成。ReHy使用APIM加速前向传播 (FP) 阶段以获得高性能,并使用DPIM处理BP阶段以获得高精度。我们利用ReRAM的布尔逻辑运算能力来设计DPIM架构,设计浮点加法和乘法运算逻辑以支持ReRAM 阵列中的高精度矩阵乘法。我们的设计能够在DPIM中以很高的精度处理单精度(32 位)或双精度浮点数。此外,我们还设计了一种ReRAM重用机制,从而将资源利用率提高54%,而性能开销可以忽略不计。我们提出了一个性能模型来估计在CNN训练的BP阶段执行高精度矩阵乘法时从DPIM获得的收益,从而可以根据数据并行度把矩阵乘法卸载到DPIM加速模块执行。
背景与动机
图1 神经网络训练过程
CNN训练经常使用随机梯度下降 (SGD) 算法来确定权重参数。训练过程可以分为两个阶段:FP和BP阶段,如图1所示。在FP阶段,对训练数据进行批量分类和检测,以检查神经网络的质量。在FP计算过程中,对上一层的结果进行加权计算,并对结果应用一个激活函数,例如ReLU。在BP阶段,反向计算输出激活误差和权重梯度。训练过程评估CNN输出层的损失函数,然后计算前一层的权重梯度,期间需要不断更新网络的权重以减少CNN输出的误差。
图2 APIM中的阵列结构
ReRAM是一种典型的非易失性存储器,已被广泛用于设计模拟PIM (APIM) 加速器。数据以电阻状态保存在ReRAM阵列中。如图2(a)所示,流出位线(BL)的总电流(I)是流过阵列中连接到位线的所有 ReRAM 单元的电流总和。每个子电流代表电压和电导的乘积,那么总电流I可以表示为两个向量(V1,V2)和(G1,G2)的点积。如图2(b)所示,ReRAM可以有效地在模拟域中执行矩阵向量乘法(MVM)。权重矩阵首先映射到ReRAM阵列,权重的值对应于ReRAM单元的电导。在MVM计算过程中,输入向量作为电压施加到字线上,部分和的结果在位线中生成。然后,每个位线中的部分和结果通过ADC转换为数字值,并由移位器和加法器 (S&A) 生成最终结果。APIM加速器可以提供高性能和高能效,但由于计算精度有限,它们不能保证CNN训练的收敛性。因此,梯度计算只能由高精度计算设备执行,例如CPU和GPGPU。在“GPU+APIM”架构中,虽然可以利用APIM来加速FP阶段,但BP阶段处理的数据仍然需要在不同的迭代中从APIM传输到GPU,导致极高的通信成本,这阻碍了APIM加速器在CNN训练中的应用。
图3 DPIM中的阵列结构
DPIM不同于依赖于数模和模数转换的APIM的计算范式。它可以原位直接执行 “或非”运算,无需任何读出放大器。图3(a)显示了并行电路在DPIM中的映射。忆阻器低阻态和高阻态分别对应1和0值。首先,输出忆阻器应初始化为低阻态(1)。根据基尔霍夫定律,在并联电路中,所有输入忆阻器的总电阻变得低于每个忆阻器的电阻。因此,如果一个输入忆阻器处于低阻状态(1),则通过输出忆阻器的电流增加,使得输出忆阻器的状态从1变为0,可以利用这一物理特性来实现NOR操作。NOR可以在DPIM阵列内并行执行,如图3(b)所示。行中的输出忆阻器应初始化为1,对代表不同操作数的忆阻器施加固定电压VG,既不是输入操作数也不是输出结果的单元需要通过电压VISO进行隔离。执行NOR运算的多个操作数应与输出单元放在同一列(或同一行),以便在ReRAM阵列中实现列(或行)并行处理。
设计与实现
我们利用APIM加速FP阶段,并使用DPIM处理BP阶段,以保证高精度的同时实现高效率。我们提供了一个基于数据并行度的性能模型,以衡量将矩阵乘法操作卸载到DPIM的收益。为了支持DPIM中的更多操作,我们设计了基于NOR的一位减法运算符来支持具有不同符号位的浮点加法。为了获得更高的行移位并行度,我们设置了移位索引,并行处理具有相同索引的行。由于定点乘法的结果只保留最低有效N位,因此不适用于十进制乘法。因此,我们重新设计了基于NOR运算的定点乘法运算,结果保留了最高有效N位。我们还建议在DPIM阵列中进行多次刷新操作,以减少处理单元的面积。
图4 DPIM中的矩阵乘法映射
DPIM中矩阵乘法映射策略:在DPIM中,我们将需要参与运算的操作数放在同一行实现行并行。图4举例说明了两个2×2矩阵的乘法。Matrix-1的行和 Matrix-2的列映射在同一行中,以并行执行点积。处理单元(PU)首先执行向量的点积,然后将中间结果存储在IMn中。最后,我们累加中间结果,并将最终结果存储在列Rn中。假设两个矩阵的大小分别为M×K和K×N,则DPIM数组中映射了M×N行,即并行度为M×N。因此,总共需要执行K次乘法和K-1次加法。在上面的例子中,两个2×2矩阵的乘法只需要依次执行2次乘法和1次加法。
图5 浮点数运算符设计
浮点加法设计:浮点加法可以分为三个主要步骤:(i)对齐指数位,(ii)根据符号位进行尾数加减法,(iii)结果标准化。我们详细介绍了不同符号位的浮点加法的设计。两个不同符号的浮点数之间的加法运算本质上是减法运算。为了支持这样的运算,我们设计了基于NOR的一位减法运算,它需要13次NOR运算。图5(b)举例说明了浮点加法的过程。假设Ne代表指数位,Nm代表尾数位。首先,两个操作数的指数位相减。使用Ne+1位将差值存储在exp'区域,额外的1位用于存储差值符号。我们在对齐指数后对两个尾数进行减法运算,然后对差值进行归一化。为了使归一化阶段的移位操作并行化,我们创建了一个移位索引来记录每一行的差值,将具有相同移位索引的行在一次复制操作中一起移位。需要注意的是,完成一个N位的复制操作需要2N次NOR操作。为了对齐指数位,exp'提供移位索引,并通过搜索操作实现并行移位。例如,在图5(b)中,两个指数位之间的差为10-01=01。因此,在指数位对齐过程中,该行的移位索引为1。
浮点乘法设计:浮点乘法分为四个步骤:(i)符号位异或,(ii)指数位相加,(iii)尾数进行定点乘法,(iv)结果标准化。图5(a)举例说明了浮点乘法的运算过程。现有的有限精度乘法机制不适用于尾数的定点乘法,因为它们在最终结果中保留最低N个有效位。因此,我们设计了一个有限精度的定点乘法,它保留了最高N个有效位,如图6(c)所示。与图6(b)所示的方法相比,我们设计的定点乘法的结果更接近于图6(a)所示的实际值。
图6 DPIM中定点乘法设计
由于ReRAM阵列大小是有限的,在设计浮点乘法运算符时,我们提出ReRAM重用机制,多次刷新并重用用于计算1位加法的12个单元,仅以8.3%的性能开销将资源利用率提高了54%。资源的重用及利用率的提高使DPIM中进行更高精度的计算成为可能。
我们使用7个典型的CNN模型评估ReHy的性能,并将ReHy与CPU/GPU架构(基线)和最先进的基于ReRAM的加速器FloatPIM进行比较。实验结果表明,ReHy达到了与CPU/GPU架构相似的精度和收敛速度。此外,与基线和 FloatPIM相比,ReHy可以将CNN训练速度分别提高48.8倍和2.4倍,能耗降低35.1倍和2.33倍。这表明ReHy以数字计算和模拟计算混合的计算形式同时实现了CNN训练的高精度和高效率。
参考文献:
Hai Jin, Cong Liu, Haikun Liu, Ruikun Luo, Jiahong Xu, Fubing Mao, and Xiaofei Liao "ReHy: A ReRAM-Based Digital/Analog Hybrid PIM Architecture for Accelerating CNN Training," in IEEE Transactions on Parallel and Distributed Systems, vol. 33, no. 11, pp. 2872-2884, 1 Nov. 2022.
往期 · 回顾
网友评论已有0条评论, 我也要评论