[论文解读] Memristor-based Deep Convolution Neural Network: A Case Study
本文提出了一种基于忆阻器的ResNet-20的实用化实现,采用改进的转换算法和实验验证的电路仿真,将卷积核映射到1T1M交叉阵列。结果表明,8位ADC/DAC量化对于保持分类精度至关重要,可防止端到端仿真中跨层的误差累积,实现最差相对误差低于1.2%。
In this paper, we firstly introduce a method to efficiently implement large-scale high-dimensional convolution with realistic memristor-based circuit components. An experiment verified simulator is adapted for accurate prediction of analog crossbar behavior. An improved conversion algorithm is developed to convert convolution kernels to memristor-based circuits, which minimizes the error with consideration of the data and kernel patterns in CNNs. With circuit simulation for all convolution layers in ResNet-20, we found that 8-bit ADC/DAC is necessary to preserve software level classification accuracy.
研究动机与目标
- 解决在CNN中大规模忆阻器交叉阵列缺乏精确模拟电路仿真的问题。
- 开发一种使用真实硬件组件将高维卷积核映射到二维忆阻器交叉阵列的实用方法。
- 评估最先进的CNN(如ResNet-20)在采用模拟忆阻器交叉阵列实现时是否能可靠运行。
- 确定在非理想特性及误差传播影响下,为保持分类精度所需的最小ADC/DAC位宽。
提出的方法
- 开发了一种改进的核到电导转换算法,考虑了忆阻器非理想性、数据稀疏性以及核模式的影响。
- 采用实验验证的仿真器来模拟模拟交叉阵列行为,以基于SPICE的真实精度替代过度简化的模型。
- 采用1T1M交叉阵列架构,通过在行上施加输入电压、从列读取输出电流来执行模拟向量-矩阵乘法。
- 引入校准阶段,对10个随机选择的输入样本进行一阶多项式拟合,以校正交叉阵列输出偏差。
- 仿真包含ResNet-20中的所有卷积层,使用CIFAR-10的子集(150张图像),ADC/DAC量化位宽分别设置为4、6和8位。
- 逐层跟踪误差传播,以评估对最终分类精度的累积影响。
实验结果
研究问题
- RQ1是否能够通过真实的模拟电路仿真准确预测大规模CNN中忆阻器交叉阵列的行为?
- RQ2在基于忆阻器的CNN推理中,为保持软件级分类精度,所需的最小ADC/DAC位宽是多少?
- RQ3数据稀疏性和核类型如何影响忆阻器交叉阵列实现的精度?
- RQ4诸如导线电阻和器件可变性等非理想因素在多大程度上影响端到端的分类性能?
主要发现
- 与原始方法相比,改进的转换算法将平均相对误差降低了约50%,尤其在理想输出值较低和数据稀疏性较高的情况下表现更优。
- 对于576×64交叉阵列,该方法实现了0.25%的平均相对误差(相当于约8.6位)和1.2%的最坏情况相对误差(相当于约6.4位)。
- 若不进行ADC/DAC量化,误差会跨层累积,导致分类精度下降,使其在大规模部署中不可行。
- 6位ADC/DAC使错误率从10%上升至17.3%,而4位ADC/DAC使错误率从11.3%上升至88.7%,表明性能严重退化。
- 8位ADC/DAC提供了最佳平衡,能够保持甚至略微提升与软件基线相当的分类精度。
- 仿真结果证实,8位量化对于防止基于忆阻器的CNN推理中分类性能退化是必要的。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。