做曖网站,2345官方网站,做美团类似的网站,2021年新闻摘抄文章核心
这篇文章主要讨论了一种在不可靠的ReRAM#xff08;阻变存储器#xff09;设备上设计可靠的深度神经网络#xff08;DNN#xff09;加速器的方法。文章提出了两种关键技术来解决ReRAM固有的不可靠性问题#xff1a;动态定点#xff08;DFP#xff09;数据表示…文章核心
这篇文章主要讨论了一种在不可靠的ReRAM阻变存储器设备上设计可靠的深度神经网络DNN加速器的方法。文章提出了两种关键技术来解决ReRAM固有的不可靠性问题动态定点DFP数据表示和设备变异感知DVA训练方法。
一、引言 背景介绍 DNN在图像分类、语音识别、语言处理和计算机游戏等多个应用中表现出色。DNN的主要计算是向量-矩阵和矩阵-矩阵乘法操作这些操作对数据的需求量大使得传统冯·诺依曼架构在存储访问延迟和能量消耗方面成为瓶颈。处理内存PIM通过将计算和存储直接集成提供了解决存储瓶颈的解决方案。ReRAM是一种新兴的非易失性存储器具有快速读写速度、高密度和高开关比因而被广泛研究用于设计高效的机器学习加速器。 挑战 ReRAM设备的固有不可靠性即设备电阻的随机变化带来了设计可靠的ReRAM DNN加速器的主要挑战。ReRAM的计算是在模拟方式下进行的电阻的偏差会直接导致乘积和结果的错误从而显著降低计算精度。 提出的方法 动态定点DFP数据表示根据数据范围自适应地改变小数点位置减少未使用的最重要位MSB带来的误差。设备变异感知DVA训练在训练过程中向参数添加随机噪声以增强网络对参数变化的鲁棒性。 二、相关知识 深度神经网络DNN 卷积神经网络CNN包含卷积层、池化层和全连接层。主要计算在卷积层通过应用滤波器提取输入特征。递归神经网络RNN利用序列信息通过记忆之前的计算适用于许多时间依赖的应用。长短期记忆网络LSTM通过引入门机制解决RNN的梯度消失问题。 基于ReRAM的DNN加速器 ReRAM设备的电阻受set和reset电压调制具有低电阻状态LRS和高电阻状态HRS。通过控制电阻状态实现数据存储和计算功能。 ReRAM设备的变异性 ReRAM电阻的随机变化对DNN加速器的设计提出了挑战。设备的电阻分布通常符合正态或对数正态分布。设备变异性对计算精度的影响由统计分布的偏差、设备on/off比以及存储的位数决定。 图2(a)ReRAM结构及其电阻转换机制 ReRAM结构ReRAM设备由上下电极和夹在中间的电阻切换层HfOx, TiO2, Al2O3 或其组合组成。电阻转换机制 Set过程氧离子从晶格中逸出形成氧空位导电丝使设备处于低电阻状态LRS。Reset过程导电丝断裂形成一个间隙设备处于高电阻状态HRS。多级电阻通过控制间隙长度设备可以被重置为不同的电阻值实现多级存储。 图2(b)用于向量矩阵乘法的ReRAM交叉阵列 核心组件ReRAM加速器的核心是向量矩阵乘法器VMM引擎执行乘法-累加MAC操作。 输入缓冲区接收输入电压。交叉阵列通过字线WL和位线BL进行操作。DAC/ADC转换器在交叉阵列内外进行数字-模拟和模拟-数字转换。移位和累加单元将部分结果累加在一起得到最终结果。 图3展示了影响基于ReRAM的DNN加速器计算精度的因素。 图3(a) 1 bitσ σ0当设备电阻的偏差较小时读出误差较小。 图3(b) 1 bitσ 3σ0当设备电阻的偏差较大时读出误差增大导致计算错误。 图3(c) 1 bit低on/off比较低的on/off比减小了不同电阻状态之间的间距增加了错误的可能性。 图3(d) 2 bitσ σ0使用多级电阻时相邻状态有较大的重叠增加了计算错误的可能性。 三、核心技术
A. 动态定点数据表示DFP
问题背景
在深度神经网络DNN中不同层的参数范围可以有很大差异。对于AlexNet训练的CIFAR-10数据集第一层卷积层的参数范围比后面的全连接层大10倍。传统的固定点数据格式在处理这种范围差异时未使用的最重要位MSBs会导致较大的误差特别是在设备的on/off比不够大的情况下。
解决方案
DFP允许根据数据范围自适应地改变小数点位置从而最小化未使用的MSBs。这种方法可以显著减少读出误差。
其他优势
先前的研究表明动态定点表示可以加速机器学习应用的训练和推理。在本研究中动态定点表示被用于减少设备变异的影响而不是加速计算。
B. 设备变异感知训练DVA
问题背景
DNN的训练过程是寻找参数空间内损失函数或成本函数的最优点。然而如果从最优点发生小偏移损失函数会急剧增加表明DNN对参数变异非常敏感。
解决方案
如果在一个损失函数相对较小的区域内可能不会达到全局最小值使用该区域内的参数可以建立一个对噪声更具鲁棒性的网络。这启发我们在训练过程中故意向DNN参数添加噪声以提高鲁棒性。
训练过程
对于每个训练批次随机生成与卷积核大小相同的噪声矩阵指定其均值和偏差。通过按元素相乘的方式将噪声添加到参数中并使用加入噪声的卷积核进行后续操作。