[论文解读] SWIM: Selective Write-Verify for Computing-in-Memory Neural Accelerators
本文提出SWIM,一种用于计算内存(CiM)神经网络加速器的可选写入-验证框架,通过使用二阶导数仅识别并验证最敏感的权重,从而减少编程时间。由于仅需一次前向传播和反向传播,SWIM在保持接近理想模型精度的同时,相比完整写入-验证方案实现了高达10倍的速度提升,即使在新兴非易失性内存器件存在非理想性的情况下亦是如此。
Computing-in-Memory architectures based on non-volatile emerging memories have demonstrated great potential for deep neural network (DNN) acceleration thanks to their high energy efficiency. However, these emerging devices can suffer from significant variations during the mapping process i.e., programming weights to the devices), and if left undealt with, can cause significant accuracy degradation. The non-ideality of weight mapping can be compensated by iterative programming with a write-verify scheme, i.e., reading the conductance and rewriting if necessary. In all existing works, such a practice is applied to every single weight of a DNN as it is being mapped, which requires extensive programming time. In this work, we show that it is only necessary to select a small portion of the weights for write-verify to maintain the DNN accuracy, thus achieving significant speedup. We further introduce a second derivative based technique SWIM, which only requires a single pass of forward and backpropagation, to efficiently select the weights that need write-verify. Experimental results on various DNN architectures for different datasets show that SWIM can achieve up to 10x programming speedup compared with conventional full-blown write-verify while attaining a comparable accuracy.
研究动机与目标
- 解决非易失性计算内存(nvCiM)DNN加速器中写入-验证方案的高编程时间问题。
- 在不牺牲模型精度的前提下,减少需要写入-验证的权重数量。
- 开发一种高效、单次遍历的方法,以识别最敏感的权重用于写入-验证。
- 证明可选写入-验证是可行的,并且相比完整写入-验证显著更快。
- 为处理nvCiM系统中的器件差异,提供一种实用且硬件友好的替代方案,避免现场训练或重训练。
提出的方法
- SWIM使用DNN权重的二阶导数作为敏感性指标,以优先选择需要写入-验证的权重。
- 通过一次前向传播和反向传播高效计算二阶导数,避免昂贵的有限差分近似。
- 该方法仅选择二阶导数绝对值较大的少量权重——即最敏感的权重——进行迭代写入-验证。
- 选择过程基于假设:二阶导数越大,权重对编程错误越敏感。
- 该框架在部署到nvCiM硬件之前,于权重映射阶段应用。
- 它在保持模型精度的同时,显著减少了写入-验证周期,尤其在器件存在差异的情况下。
实验结果
研究问题
- RQ1我们能否在不降低模型精度的前提下,减少nvCiM DNN加速器中需要写入-验证的权重数量?
- RQ2是否存在一种计算高效的机制,用于识别最敏感的权重以进行写入-验证?
- RQ3在存在器件差异的情况下,二阶导数能否作为选择关键权重的可靠指标?
- RQ4可选写入-验证与完整写入-验证及现场训练相比,在速度和精度方面表现如何?
- RQ5在多种DNN架构和数据集上,维持可接受精度所需的最少写入-验证周期数是多少?
主要发现
- 在MNIST、CIFAR-10和Tiny ImageNet上,SWIM相比传统完整写入-验证方案,编程速度最高提升10倍。
- 仅使用10%的写入周期(NWC = 0.1)时,SWIM在MNIST上精度下降小于0.1%,在CIFAR-10上精度下降小于0.5%,与完整写入-验证相比表现接近。
- 在Tiny ImageNet上,SWIM仅使用10%的写入周期,精度下降低于3%,优于基于权重大小和随机选择的方法。
- SWIM在3,000次蒙特卡洛运行中降低了精度的标准差,表明其在器件差异下的鲁棒性优于基线方法。
- 与现场训练相比,SWIM在最多减少9倍写入-验证周期的情况下实现了相近的精度,避免了额外硬件和训练迭代的需求。
- 在CIFAR-10上的ResNet-18模型中,SWIM在10%写入-验证周期下精度下降小于0.5%,而其他方法的精度下降超过2%。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。