《Electronics》:Joint Multiplier–Adder Approximation with Flag-Based Error Recovery for BF16 Digital Compute-in-Memory
编辑推荐:
数字存内计算(Digital Computing-in-Memory, DCIM)提供确定性的浮点计算,但复制式的尾数乘法器和加法树会带来显著的面积和功耗开销。本工作提出一种可错误恢复的BF16 DCIM算术单元,联合近似2位乘法器和第一级加法器。对于11 ×
数字存内计算(Digital Computing-in-Memory, DCIM)提供确定性的浮点计算,但复制式的尾数乘法器和加法树会带来显著的面积和功耗开销。本工作提出一种可错误恢复的BF16 DCIM算术单元,联合近似2位乘法器和第一级加法器。对于11 × 11输入,乘法器输出0111而非基线(Baseline)的1111,将误差从+6转换为?2,并将乘积最高有效位(Most Significant Bit, MSB)固定为0。这使得第一级加法器能够从4位缩减至3位。一个轻量级标志(flag)检测相同的错误条件,并复用为进位输入以进行局部补偿,避免了单独的多位校正电路。层次化设计空间探索选择了在位位置1处采用进位补偿的0111近似方案。晶体管级评估表明,相对于Baseline,晶体管数量减少14.81%,平均功耗降低28.56%。在CIFAR-10和CIFAR-100上的ResNet18、VGG16-BN和AlexNet实验中,Proposed方案在所评估的Baseline、DIMC-S派生、LSAC OR+SXAFA派生和Proposed方案中实现了最低的BF16参考层归一化均方根误差(Layer Normalized Root Mean Square Error, Layer NRMSE)和Logit归一化均方根误差(Logit NRMSE),而相对Baseline的Top-1精度差异保持在?0.02%p至+0.12%p之间。这些结果表明,在不进行重训练或数据重排的情况下,实现了硬件-精度权衡的改进。
论文解读:面向BF16数字存内计算的联合乘法器-加法器近似与标志位错误恢复
一、研究背景与问题
随着神经网络(Neural Network, NN)模型规模不断增大,传统冯·诺依曼架构中存储与计算单元之间的频繁数据移动成为性能瓶颈。存内计算(Computing-in-Memory, CIM)通过在存储器内部执行乘累加(Multiply-Accumulate, MAC)操作,能够减少数据移动,并利用同时激活多行静态随机存取存储器(Static Random-Access Memory, SRAM)实现并行MAC,从而提升能效和计算吞吐。然而,神经网络权重、激活值和中间结果的范围差异很大,有限位宽整数(Integer, INT)格式需要在可表示范围和量化分辨率之间权衡,而浮点(Floating-Point, FP)格式通过指数缩放支持更宽的动态范围。模拟存内计算(Analog Computing-in-Memory, ACIM)在低功耗、低精度边缘设备中具有较高效率,但有限信号裕度和工艺变化导致的鲁棒性下降会损害推理精度。数字存内计算(Digital Computing-in-Memory, DCIM)在数字域执行计算,对模拟累积的非理想性不敏感,并提供确定性结果,同时便于构建FP数据通路和支持多精度。然而,FP MAC运算需要额外的指数比较、指数差计算、尾数对齐、乘法和多输入累积,不断重复放置比较器、减法器、移位器、乘法器和加法树会显著增加面积和开关能耗;而共享这些电路又会增加周期数和延迟,限制吞吐量。因此,FP算术开销不仅降低能效和计算密度,还会减少固定宏面积中SRAM位单元的比例,限制权重密度。近似算术被用于缓解这些问题,在BF16中,指数缩放能限制低位尾数近似对整体值的影响,现有BF16-CIM设计基于此特性应用最低有效位(Least Significant Bit, LSB)近似。由于误差大小和方向取决于近似方法,且误差会在重复MAC操作中累积,因此需要在最大化硬件收益的同时限制精度损失。本研究针对该问题,提出了一种联合近似乘法器和第一级加法器、并利用轻量级标志进行错误恢复的BF16 DCIM算术单元。
二、研究内容与结论
这项研究提出了一种可错误恢复的BF16 DCIM算术单元,其核心思想是联合设计局部2位乘法器和第一级加法器,使误差方向受控并可通过进位路径进行补偿。具体而言,对于2位无符号乘法中的特殊情况11×11,精确结果为1001(十进制9),基线乘法器将其近似为1111(十进制15),产生+6的正误差;所提出的乘法器将其近似为0111(十进制7),误差变为?2,且乘积最高有效位(MSB)固定为0,从而使第一级加法器从4位缩减为3位。一个轻量级标志检测错误发生条件,并复用到位1的进位路径中,实现条件性补偿,无需独立的多位校正电路。通过层次化设计空间探索,选择了码7(0111)与位1 OR进位补偿的组合。晶体管级评估表明,相对于Baseline,所提结构在晶体管数量上减少14.81%,平均功耗降低28.56%,但局部传播延迟增加17.20%;在五组工艺-电压-温度(PVT)条件下,相对延迟开销保持在16.28%至18.67%范围内。在CIFAR-10和CIFAR-100数据集上,使用ResNet18、VGG16-BN和AlexNet预训练模型进行推理评估,所提方案在所有六种模型-数据集组合中均取得最低的BF16参考层归一化均方根误差(Layer NRMSE)和Logit归一化均方根误差(Logit NRMSE),相对Baseline的Top-1精度差保持在?0.02至+0.12个百分点。该研究发表在《Electronics》期刊上,其意义在于展示了在不进行重训练或数据重排的情况下,通过电路级联合近似与标志位复用,能够实现硬件成本与推理精度之间更优的权衡。
三、主要关键技术方法
研究人员采用了以下关键技术方法:(1)联合近似设计:将2位乘法器的特殊输出码从1111改为0111,使误差方向为负,并固定乘积MSB为0,从而将第一级加法器从4位缩减为3位;(2)标志位生成与复用:利用乘积位Z[2]∧Z[0]生成低有效标志FLAG_N,通过两个标志的与非逻辑产生恢复信号R,并与原有LSB半加器进位C0进行或运算,作为位1全加器的进位输入,实现条件性补偿;(3)层次化设计空间探索:对61种乘法器输出码与补偿位置的组合进行穷举评估,比较误差率、均方误差(RMSE)、绝对偏差、残余误差率以及晶体管数等指标,选出码7+OR_BIT1作为最优设计;(4)晶体管级电路仿真:在28nm工艺下使用Cadence Virtuoso和Spectre瞬态仿真进行电路级PPA(功耗、性能、面积)评估;(5)CNN推理评估:采用CIFAR-10和CIFAR-100数据集,使用预训练的ResNet18、VGG16-BN和AlexNet模型,在固定BF16参考下计算Layer NRMSE和Logit NRMSE,并比较Top-1精度。研究中的样本队列来源为CIFAR-10和CIFAR-100标准图像分类数据集,各含60000张图像,其中训练50000张,测试10000张。
四、研究结果分析
(一)PPA评估
研究人员在共同的局部算术边界上比较了Exact、Baseline和Proposed三种结构的电路级实现。Exact结构使用156个晶体管,Baseline使用108个,Proposed仅使用92个,相对Baseline减少14.81%。归一化面积代理从Baseline的0.692降至Proposed的0.590。平均功耗方面,Exact为1.71μW,Baseline为1.40μW,Proposed为1.00μW,Proposed比Baseline降低28.56%。在320ns、64向量序列下,总供电能量从Baseline的449.33fJ降至Proposed的321.00fJ。名义TT/1.0V/25°C条件下,Baseline和Proposed的最差传播延迟分别为46.589ps和54.602ps,Proposed增加8.013ps,相对延迟开销17.20%。在五组PVT条件下,相对延迟开销保持在16.28%至18.67%之间。由于Proposed结构保留了基线架构的三周期尾数处理调度,不增加额外处理周期或流水级,因此架构层面不引入周期级延迟开销。基于发布版Baseline层次结构,受影响的非符号数据通路包含1536个2位乘法器和768个第一级乘法器对边界,将局部晶体管数减少比值外推,对应减少12288个晶体管,即14.81%。结合发布版中乘法器与加法器电路占计算结构41.4%的比例以及第一级加法器在近似加法树中约39.0%的实例占比,架构推导的一阶硬件成本代理约为9.24%的降低。
(二)数值误差与推理精度
在统一的BF16参考和CNN工作负载下,Proposed方案在ResNet18、VGG16-BN和AlexNet于CIFAR-10和CIFAR-100上的所有六种组合中,均取得最低的Layer NRMSE和Logit NRMSE。相比DIMC-S派生方案,Proposed方案将Layer NRMSE降低61.85%至80.55%,Logit NRMSE降低35.30%至63.13%;相比LSAC OR+SXAFA派生方案,对应降低幅度分别为28.43%至58.64%和8.14%至33.75%。层次调用NRMSE分布同样显示Proposed方案具有最低的中位数、P95和最大值。研究人员进一步对工作负载级行为进行了统计分析,发现异常11×11乘法事件占单次乘法操作的0.368%至0.638%,至少一个错误标志在0.726%至1.254%的调度局部对操作中出现;在被标记的对中,80.50%至88.53%通过位1进位补偿完全恢复,11.47%至19.50%对应OR饱和状态。因此,经验非零残余事件率为调度局部对的0.083%至0.220%,且所有非零局部残余限制在?2或?4。这表明均匀256例穷举评估中的2.734%残余率是域内残余率,而非真实CNN工作负载中的残余概率。Top-1推理精度方面,Proposed方案在所有六种组合中均高于DIMC-S派生和LSAC OR+SXAFA派生方案,相对Baseline的差异在?0.02至+0.12个百分点之间。
五、讨论与结论
讨论部分指出,该研究的目标并非仅针对特定工作负载降低误差,而是在电路层面显式控制误差生成、检测和补偿之间的关系。与需要重训练、剪枝、数据映射或专用数字格式的软件协同方法不同,所提结构在每个操作中应用相同的局部补偿规则,无需额外软件修改。然而,错误检测和补偿路径可能引入额外的逻辑、布线和关键路径开销。局部延迟增加约17.20%,但绝对增量仅为8.013ps,相对于已发布的205MHz/0.9V工作点对应的约4.878ns时钟周期仅占0.164%,且保持了相同的三周期尾数处理调度,因此不构成等效的宏吞吐量损失。研究局限性包括未测量完整宏的关键路径时序、显式下一级负载、提取的布线寄生参数、PVT相关功耗能量、能量延迟积和晶体管级蒙特卡洛变化。未来工作应将联合设计范围从乘法器和第一加法器级扩展到整个MAC数据通路,将尾数位重要性、加法树级、累积深度、符号处理、归一化等纳入联合探索变量,并考虑根据层或周期选择补偿的策略。结论部分总结道:本研究提出了在BF16数字存内计算尾数计算中联合近似2位乘法器和第一级加法器的可错误恢复算术结构。所提乘法器将异常11×11结果映射为0111,将基线误差从+6变为?2,并将乘积MSB固定为0,从而使第一级加法器从4位缩减至3位。轻量级标志检测错误条件并直接复用在现有位1进位路径中,无需独立多位校正电路。晶体管级评估显示相对于Baseline,晶体管数和平均功耗分别降低14.81%和28.56%,名义传播延迟增加17.20%;在评估的PVT条件下相对局部延迟开销保持在16.28%至18.67%范围内。架构推导构成分析给出约9.24%的一阶硬件成本代理,不是完整的宏后布局结果。在统一BF16评估中,Proposed方案在全部六种ResNet18、VGG16-BN和AlexNet模型-数据集组合上取得最低的Layer NRMSE和Logit NRMSE,Top-1精度差相对Baseline保持在?0.02至+0.12个百分点内。因此,所提结构在不重训练和数据重排的情况下,提供了均衡的硬件-精度设计点,在保持与Baseline相当的推理精度的同时,降低了局部电路成本和BF16参考数值失真。未来工作应包括后布局寄生参数、标志路由负载、完整宏时序和能量评估,以及覆盖更高加法树级的扩展联合设计探索。