CN110352436B - 用于神经网络训练的具有迟滞更新的电阻处理单元 - Google Patents
用于神经网络训练的具有迟滞更新的电阻处理单元 Download PDFInfo
- Publication number
- CN110352436B CN110352436B CN201880014761.9A CN201880014761A CN110352436B CN 110352436 B CN110352436 B CN 110352436B CN 201880014761 A CN201880014761 A CN 201880014761A CN 110352436 B CN110352436 B CN 110352436B
- Authority
- CN
- China
- Prior art keywords
- rpu
- terminal
- hysteresis
- conductance
- conductance state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
一种技术涉及电阻处理单元(RPU)阵列。一组导电列线被配置为在该组导电列线和一组导电行线之间的交汇处形成交叉点。多个双端子RPU是迟滞的,使得所述双端子RPU各自具有由迟滞定义的电导状态,其中所述多个双端子RPU的双端子RPU位于每个交叉点处。
Description
发明人或共同发明人关于在先内容披露的声明
根据35 U.S.C.102(b)(1)(A)提交以下的内容披露:
内容披露:《使用电阻交叉点装置加速深度神经网络训练:设计考虑因素》(Acceleration of Deep Neural Network Training with Resistive Cross-PointDevices:Design Considerations),作者Tayfun Gokmen和Yurii Vlasov,2016年7月21日发表于Front.Neurosci.10:333,第1-13页,其通过引用并入本文。
技术领域
本发明一般涉及计算系统,更具体地涉及用于神经网络训练的具有迟滞更新的电阻处理单元(RPU)设备。
背景技术
“机器学习”被用于大体上描述从数据中学习的电子系统的主要功能。在机器学习和认知科学中,人工神经网络(ANN)或深度神经网络(DNN)是一系列统计学习模型,其灵感来自动物的生物神经网络,特别是大脑。人工神经网络可用于估计或近似依赖于大量输入且通常未知的系统和功能。人工神经网络由双端子RPU的交叉阵列(crossbar arrays)形成。交叉阵列是高密度、低成本的电路架构,用于形成各种电子电路和器件,包括ANN架构、神经形态微芯片和超高密度非易失性存储器。基本的交叉阵列配置包括一组导电行线和一组形成为与该组导电行线相交的导电列线。两组导线之间的交汇处由所谓的交叉点装置分隔,所述交叉点装置可以由薄膜材料形成。
发明内容
按照一个或多个实施例,提供了一种电阻处理单元(RPU)阵列。所述RPU阵列包括一组导电行线,以及一组导电列线,其被配置为在该组导电行线和该组导电列线之间的交汇处形成多个交叉点。所述多个双端子RPU是迟滞的,使得所述多个双端子RPU各自具有由迟滞限定的电导状态。所述多个双端子RPU中的双端子RPU位于所述多个交叉点中的每一个处。
按照一个或多个实施例,提供了一种形成电阻处理单元(RPU)阵列的方法。该方法提供一组导电行线,并提供一组导电列线,其被配置为在该组导电行线和该组导电列线之间的交汇处形成多个交叉点。该方法包括提供多个双端子RPU,所述多个双端子是迟滞的,使得所述多个双端子RPU各自具有由迟滞限定的电导状态。所述多个双端子RPU中的双端子RPU位于所述多个交叉点中的每一个处。
按照一个或多个实施例,提供了一种用于迟滞操作的方法。该方法包括使更新脉冲由至少一个迟滞电阻处理单元(RPU)接收,并使所述至少一个迟滞RPU响应于所述更新脉冲而具有电导状态的变化。所述电导状态的变化具有预定量的更新脉冲的延迟。
附图说明
现在将仅通过示例的方式参考附图描述本发明的实施例,附图中:
图1A是在每个交叉点处执行的方程式(1)的原始权重更新规则的示意图。
图1B是按照一个或多个实施例的在每个交叉点处使用简单的“与”运算的方程式(2)的随机更新规则的示意图。
图1C是按照一个或多个实施例的脉冲方案,其使得能够通过RPU器件实现用于向上传导变化的随机更新规则。
图1D是按照一个或多个实施例的脉冲方案,其使得能够通过RPU器件实现用于向下传导变化的随机更新规则。
图2A是按照一个或多个实施例的方程式(2)的测试误差的曲线图。
图2B是按照一个或多个实施例的方程式(2)的测试误差的曲线图。
图2C示出了按照一个或多个实施例的RPU器件的各种非线性响应。
图3A是按照一个或多个实施例的测试误差的曲线图。
图3B是按照一个或多个实施例的测试误差的曲线图。
图3C是按照一个或多个实施例的测试错误的曲线图。
图3D是按照一个或多个实施例的测试误差的曲线图。
图3E是按照一个或多个实施例的测试误差的曲线图。
图3F是按照一个或多个实施例的测试误差的曲线图。
图3G是按照一个或多个实施例的测试错误的曲线图。
图3H是按照一个或多个实施例的测试误差的曲线图。
图3I是按照一个或多个实施例的测试误差的曲线图。
图4A是按照一个或多个实施例的图3C-3I中的应力测试的雷达图。
图4B示出了按照一个或多个实施例当效果多于一个参数时的训练结果。
图5A是示出按照一个或多个实施例的在前向(或后向)周期期间单列(或行)的操作的示意图。
图5B是按照一个或多个实施例的图4B中的模型3的网络的测试误差的曲线图。
图5C是按照一个或多个实施例的加速器RPU芯片的架构的示意图。
图5D是按照一个或多个实施例的RPU器件上的各种开/关比的可接受的噪声水平的曲线图。
图6是按照一个或多个实施例的总结各种RPU系统设计与现有技术的比较的表。
图7是概述按照一个或多个实施例的RPU器件规范的表。
图8描绘了按照一个或多个实施例的具有迟滞的不平衡RPU器件与不具有迟滞的不平衡设备RPU器件的电导变化。
图9描绘了按照一个或多个实施例的迟滞模型,其示出了迟滞量与更新脉冲的数量之间的关系。
图10A是示出按照一个或多个实施例的具有不同迟滞程度的训练结果的测试误差的曲线图。
图10B是示出按照一个或多个实施例的具有不同迟滞程度的训练结果的测试误差的曲线图。
图11是示出按照一个或多个实施例的迟滞脉冲的数量的测试误差的曲线图。
图12是示出按照一个或多个实施例的迟滞重新归一化不平衡因子的曲线图。
图13是按照一个或多个器件形成电阻处理单元阵列的方法的流程图。
图14是按照一个或多个实施例的用于迟滞操作的方法的流程图。
图15是按照一个或多个实施例的示例RPU阵列。
具体实施方式
ANN或深度神经网络(DNN)通常体现为互连的处理器元件的所谓“神经形态”系统,处理器元件充当模拟“神经元”并以电子信号的形式在彼此之间交换“消息”。类似于在生物神经元之间传递信息的突触神经递质连接的所谓“可塑性”,在模拟神经元之间携带电子消息的ANN中的连接(connections),被提供有对应于给定连接的强度或弱点的数字权重。可以根据经验调整和调谐权重,使人工神经网络适应输入并且能够学习。例如,用于手写识别的ANN由一组输入神经元定义,输入神经元可以由输入图像的像素激活。在通过由网络设计者确定的函数进行加权和变换之后,这些输入神经元的激活然后被传递到其他下游神经元,下游神经元通常被称为“隐藏”神经元。重复该过程直到激活输出神经元。激活的输出神经元确定读取了哪个字符。
交叉阵列,也称为交叉点(cross-point)阵列或交叉线(crosswire)阵列,是用于形成各种电子电路和设备的高密度、低成本电路架构,包括ANN架构、神经形态微芯片和超高密度非易失性存储器。基本交叉阵列配置包括一组导电行线和一组形成为与该组导电行线相交的导电列线。两组导线之间的交叉点由所谓的交叉点装置(cross-point devices)分隔,所述交叉点装置可以由薄膜材料形成。
交叉点装置实际上起着ANN的在神经元之间的加权的连接的作用。纳米级双端器件,例如具有“理想的”电导状态转换特性的忆阻器,通常用作交叉点装置,以便以高能效模拟突触可塑性。可以通过控制施加在行和列线的各个线之间的电压来改变理想的忆阻器材料的电导状态(例如,电阻的倒数)。可以通过改变交汇处的忆阻器材料的电导状态以实现高导通状态或低导通状态,来存储数字数据。忆阻器材料还可以被编程,以通过选择性地设定材料的电导状态来维持两个或更多个不同的电导状态。可以通过在材料上施加电压并测量通过目标交叉点装置的电流,来读取忆阻器材料的电导状态。
为了限制功耗,ANN芯片架构的交叉点装置通常被设计为利用离线学习技术,其中一旦初始训练阶段已经解决,目标函数的近似就不会改变。离线学习允许简化交叉型ANN架构的交叉点装置,使得它们消耗非常少的功率。
尽管存在较低功耗的可能性,但执行离线训练可能是困难且资源密集的,因为在训练期间通常需要修改ANN模型中的大量可调参数(例如,权重)以为训练数据匹配输入-输出对。因此,简化ANN架构的交叉点装置以优先考虑省电的离线学习技术通常意味着不优化训练速度和训练效率。
本发明的一个或多个实施例提供了用于深度神经网络训练的电阻器件的阵列。尽管可以讨论深度神经网络训练的示例,但是应当理解,实施例不限于这里讨论的示例的类型。该电阻器件被称为电阻处理单元(RPU)、交叉点装置等,一个或多个实施例描述了如何利用RPU器件(RPU device)来训练由完全连接的层、卷积层等组成的深度神经网络。执行各种RPU器件上具有不同缺陷的DNN培训可以从所需的RPU器件规范中获得。在所有器件规范中,响应于上下变化的不对称性具有最小容差(tolerance),例如,在RPU器件上的不对称性仅高达5-6%。在一个或多个实施例中,实验者说明了如何通过在RPU中引入迟滞更新(hysteresis updates)来增加容差。将迟滞(hysteresis)有意地设计到RPU器件中,并将迟滞RPU器件(hysteretic RPU devices)用于DNN训练,因为迟滞是无害的(尽管这种方法可能与现有技术的RPU器件相反)。
RPU器件中的不对称导致RPU器件的电导的上下变化的不平衡。实施例被配置为解决RPU器件中的不对称问题并因此改善这种不平衡。实施例向RPU器件引入迟滞更新,从而可以显著增加对不平衡的容差。更具体地,实施例利用在其切换行为中具有迟滞(这是响应于更新的电导中的上下切换行为)的RPU器件执行神经网络训练。由于迟滞是无害的,所以即使它们是平衡的(即,它们的电导的上下变化是平衡的),也可以使用迟滞RPU器件。
为了进一步说明如何利用具有迟滞的RPU器件来改善RPU器件的电导的上下变化,图8描绘了按照一个或多个实施例的迟滞模型。应该理解的是,图8中的迟滞模型适用于本文讨论的(例如图1-7和9-16中的)任何RPU器件。尽管迟滞模型用于具有使得电导值的上下变化存在不平衡的不对称性的RPU器件,但是应当理解,迟滞模型也可以应用于平衡的RPU器件(其不具有不对称性)。在图8中,曲线图805描绘了电导值,或者更具体地,描绘了没有迟滞的不平衡RPU器件随时间推移的电导值的变化。曲线图815描绘了具有迟滞的不平衡RPU器件随时间推移的电导值(特别是电导值的变化)。图810示出了输入到没有迟滞的RPU器件和具有迟滞的RPU器件的更新(例如,通过反向传播算法的更新权重周期脉冲)。
从曲线图805和810中可以看出,曲线图805中的输入更新脉冲的符号(+或-)的变化,导致曲线图805和810中的方向变化电导值。更新脉冲的正号(+)引起电导值的增加,其在曲线图805和815中被表示为电导曲线的正斜率(即,向上方向)。更新脉冲的负号(-)导致电导值的减小,其在曲线图805和815中被表示为电导曲线的负斜率(即向下方向)。但是,针对曲线图815描绘的迟滞RPU器件具有从电导值的增加(即正斜率)到电导值的降低(负斜率)的切换的延迟,以及以及从电导值的降低到电导值的增加的切换的延迟。已经认识到RPU器件中的不对称性难以校正。然而,(导致切换延迟的)迟滞改善了RPU器件对由不对称引起的不平衡的容差。
在神经网络训练期间,每个RPU器件获得许多更新。当设备获得沿(+)和(-)方向的随机更新时,对于平衡的RPU器件来说,这些随机更新会抵消并且不会导致净权重变化。然而,对于非对称RPU器件来说,这些随机更新引起一个漂移分量(drift component)并且倾向于沿着不对称方向移动权重。如实施例中所讨论的,迟滞装置减轻了由于不对称而引起的这种不希望有的漂移分量。按照实施例,迟滞过滤高度随机的上下权重更新,因此有效地减少了不对称的缺点。
图9描绘了按照一个或多个实施例的迟滞模型,其示出了迟滞量与更新脉冲的数量之间的关系。作为示例,图9中描绘了具有迟滞的不平衡RPU器件的曲线图815。电导的迟滞量hn被标识为平坦的或零斜率,并且在上下电导值变化/切换时处发生迟滞。迟滞量hn是改变方向(即,将电导值从向上变为向下或从向下变为向上)所需的脉冲个数。可以设置/设计迟滞量hn。在一个实施例中,可以将迟滞量hn设置为2个更新脉冲、10个更新脉冲、100个更新脉冲等。
另外,迟滞量对于电导的(-)和(+)变化是相等的。也就是说,迟滞的时间间隔对于RPU器件中每次出现的迟滞来说是相同的。注意,Δg是响应于在xi和δj处施加的电压序列的RPU电导值的变化。因此,Δg是RPU对电压脉冲(即,更新脉冲)的响应。由于正(△g+ min)和负(△g- min)脉冲,例如由于制造上的差异,不同的RPU器件可能显示电导值的不同变化量。另外,有一个通过正负脉冲方案将获得多少权重变化Δw的平均值。具有不同Δw+ min和Δw- min的RPU阵列中的不对称RPU器件对DNN训练有不利影响。
下面提供关于具有电阻交叉点装置(即RPU器件)的训练(例如DNN训练)的进一步讨论。为了便于理解和解释,使用了子标题。
DNN在语音和对象识别中表现出了性能超过复杂的现有方法的显著成功。然而,训练DNN是一项极其计算密集型的任务,需要大量的计算资源和大量的训练时间,这阻碍了DNN的进一步应用。例如,对于具有10亿个连接、在具有1000台机器的集群上训练了三天的DNN,已经证明了有70%的相对改进。
训练DNN一般依赖于本质上是局部性和并行性的反向传播算法。关于反向传播算法的进一步细节,可参考“自然”杂志上的文章《通过反向传播误差学习表示》(“Learningrepresentations by back-propagating errors”,Nature 323,533–536,(1986),作者:Rumelhart,D.E.、Hinton,G.E.和Williams,R.J.),其通过引用并入本文。利用GPU、FPGA或专门设计的ASIC开始目前的开发,已经探索了各种加速DNN培训的硬件方法,这些方法正在利用这种局部性和并行性,并取得了不同程度的成功。通过充分利用算法的局部性和并行性,可以进一步加速。对于将N个神经元映射到N个神经元的完全连接的DNN层,可以通过使用本地存储最小化数据移动、在同一节点上处理权重值并将节点连接在一起形成DNN可以适应的大量N×N收缩阵列来实现显著加速。因此可以将问题减少到与数组大小无关的恒定时间O(1)而不是通常的O(N2)的时间复杂度。然而,可寻址的问题大小受限于阵列中的节点数量,即使使用现有技术的CMOS技术,也难以扩展到数十亿。基于非易失性存储器(NVM)技术的新型纳米电子器件概念,例如相变存储器(PCM)和电阻随机存取存储器(RRAM),最近已被探索用于实现具有受在生物系统中观察到的峰值时间相关塑性(STDP)启发的学习规则的神经网络。直到最近,已经考虑了它们使用反向传播算法加速DNN训练的实施方式,报告的加速因子的范围从27X到900X,甚至到2140X,并且功率和面积显著减少。所有这些使用先前开发的存储器技术的自下而上的方法看起来都非常有希望。然而,估计的加速因子受到其作为NVM单元应用所固有的器件规范的限制。通常被认为对存储器应用有益或无关的器件特性,例如高开/关比、数字逐位存储和非对称的设置和重置操作,正成为对加速DNN训练的限制。这些非理想的器件特性可能通过适当设计的外围电路和整个系统来补偿,但是仅仅是部分地补偿,并且要以显著增加的操作时间的为代价。
相反,实验者提供一种自上而下的方法,其中通过按照一个或多个实施例对电阻器件施加特定要求的系统和CMOS电路的设计来实现DNN训练的最终加速。实验者提供了能同时存储和处理权重并可利用铸造CMOS技术扩展到数十亿节点的电阻处理单元(RPU)器件的概念。与现有技术中的其他方法相反,从这种分析的产生的最终RPU器件特性允许单个器件执行算法所需的所有操作而无需额外的电路组件。估计表明,在具有现实的功率和面积限制的单个芯片上,可实现接近30,000倍的加速因子。
RPU器件概念的定义
反向传播算法由三个周期组成。这三个周期是前向、后向和权重更新,它们被重复多次,直到满足收敛标准。前向和后向周期主要涉及计算向前和向后方向上的向量矩阵乘法。该操作可以在双端电阻的2D交叉阵列上执行。在前向周期,交叉阵列中存储的电导值形成矩阵,其中输入矢量作为电压脉冲通过每个输入行传输。在后向周期中,当从列提供电压脉冲作为输入时,在矩阵的转置上计算向量矩阵乘积。这些操作实现了所需的O(1)时间复杂度,但仅适用于训练算法的三个周期中的两个。
与前向和后向周期相反,在本地并全部并行地实现一个电阻装置的2D交叉阵列上的权重更新,与阵列大小无关,看起来具有挑战性。权重更新包括计算矢量-矢量外积,其包括要在每个交叉点本地执行的乘法运算和增量权重更新,如图1A所示。相应的更新规则通常表示为
wij←wij+ηxiδj 方程式(1)
其中wij表示第i行和第j列的权重值(为了简化,省略了层索引),xi是输入神经元处的活动,δj是输出神经元计算的误差,η是全局学习速率(learning rate)。第i行和第j列在RPU器件处相交。
为了在能执行权重存储和处理(RPU)的双端子设备阵列上实现本地和并行更新,实验者首先决定通过使用随机计算技术来显著简化乘法运算本身。已经表明,通过使用两个随机流,乘法运算可以简化为简单的“与”(AND)运算。例如,图1B示出了使用随机翻译器(STR)将从神经元(xi和δj)编码的数字转换为随机比特流的随机更新规则。然后将它们发送到交叉阵列,其中当来自xi和δj的位重合时,每个RPU器件稍微改变其电导(gij)。在该方案中,实验者可以如下地编写更新规则。
其中BL是在更新周期期间使用的STR输出处的随机比特流的长度,△wmin是由于单个重合事件导致的权重值的变化,和是由伯努利过程(Bernoulli process)特征化的随机变量,上标n表示试验序列中的比特位置。和等于1的概率分别由Cxi和Cδj给出,其中C是STR中的增益因子。
图1C中示出了一种使得能够实现Eq.(2)的随机更新规则的脉冲方案。具有正和负幅度的电压脉冲分别从行(Ai)和列(Bj)上的相应STR发送。与编码成二进制流的浮点数相反,转换成随机流的相应数字由整群这样的脉冲表示。为了使双端子RPU器件能够区分交叉点处的重合事件,当单个脉冲幅度是器件的开关电压(VS)的一半时,双端子RPU器件的电导值不应显著改变。然而,当两个脉冲重合并且RPU器件看到全电压(VS)时,电导应该改变非零量△gmin。参数△gmin与通过外围电路定义的放大系数△wmin成比例。为了实现电导的上下变化,可以在更新周期期间切换脉冲的极性,如图1D所示。乘法的符号由在更新周期期间使用的脉冲的极性决定。因此,对于xi>0的情况,可以通过在上下周期期间都填充对应于xi>0的行,而在上或下周期中则根据δj的符号选择性地填充列,来执行有符号乘法。如果对于某些行来说存在负值(xi<0),则可以重复类似的操作。所提出的脉冲方案允许阵列中的所有RPU器件并行工作,并且通过简单地依赖于重合事件的统计来在本地执行乘法操作,从而实现训练算法的权重更新周期的O(1)时间复杂度。
应该认识到,图1A是在每个交叉点处执行的方程式(1)的原始权重更新规则的示意图,图1B是方程式(2)的随机更新规则的示意图,其在每个交叉点处使用简单的“与”运算。能够由RPU器件实现随机更新规则以实现向上电导改变的脉冲方案在图1C中示出,实现向下电导改变的脉冲方案在图1D中示出。
使用随机更新规则的RPU阵列的网络训练
为了测试该方法的有效性,实验者比较了分别由具有784、256、128和10个神经元的完全连接层组成的深度神经网络实现的分类准确度。采用交叉熵目标函数和反向传播算法,用标准MNIST(混合国家标准和技术研究所)训练数据集训练该网络,该数据集包括60,000个手写数字图像的示例。每个28×28像素图像的原始像素值作为输入给出,而逻辑sigmoid和softmax激活函数分别用于隐藏和输出层。假设这两个激活函数的温度参数为单位(unity)。
图2A、2B和2C(通称图2)与使用该MNIST数据集的DNN的测试误差有关。在图2B中,标记为1、2和3的线对应于BL=10的随机模型,并且非线性比率k分别为0.5、0.4和0.1。图2C示出了k=0、0.5和1时RPU器件的各种非线性响应。
更具体地,图2A和2B示出了10,000个图像的MNIST测试数据集的一组分类误差曲线。在图2A中用空心圆圈标记的曲线对应于基线模型,其中使用由方程式(1)定义的传统更新规则利用浮点乘法运算来训练网络;标记为1、2和3的曲线对应于方程式(2)的随机模型,分别具有随机比特长度BL=1、2和10。这里,在以下实验中选择小批量的单位大小(mini-batch size of unity)。对训练数据集中的所有60,000个图像重复执行训练,并且60,000个图像构成单个训练时期(epoch)。对于时期0-10、11-20和21-30,分别使用η=0.01、0.005和0.0025的学习速率。基线模型在30个时期的测试数据上达到2.0%的分类误差。
为了在基线模型和其中训练使用方程式(2)的随机更新规则的随机模型之间进行公平比较,学习速率需要匹配。在最一般的形式中,随机模型的权重值的平均变化可以写成
因此,随机模型的学习速率由三个参数BL、△wmin和C控制,这三个参数应该被调整以匹配基线模型中使用的学习速率。虽然随机更新规则允许用简单的“与”运算代替乘法运算,但是运算的结果不再精确,而是具有与成比例的平均值的标准偏差的概率。增加随机比特流长度BL将减少误差,但反过来会增加更新时间。为了找到允许网络达到类似于基线模型的分类误差的可接受的BL值范围,实验者使用不同的BL值进行训练,同时设置△wmin=η/BL和C=1以匹配如上所述的基线模型的学习速率。如图2A所示,小到10的BL足以使随机模型变得与基线模型无法区分。
另外,对于随机更新规则,单个更新周期的权重值的变化由BL x△wmin限制,并且如果从STRs(Cxi和Cδj)产生脉冲的概率接近于单位(unity)或更大,则该条件可能发生。权重更新的这种限幅的影响在模拟中被加以考虑,对于小至10的BL来说不会降低性能,如图2A中所示的那样。
为了确定算法收敛到与基线模型相当的分类误差所需的器件切换特性的非线性强度,如图2B所示变化非线性因子。非线性因子被定义为半电压和全电压下两个电导变化的比率,即k=△g(VS/2)/△g(VS)。如图2C所示,k≈1的值对应于饱和型非线性响应,当k=0.5时,响应是线性的,如对于理想的忆阻器来说认为是典型的那样;k≈0的值对应于整流型非线性响应。如图2B所示,该算法无法收敛于线性响应。然而,低于0.1的非线性因子k足以实现与基线模型相当的分类误差。
这些结果验证了尽管随机模型中的更新是概率性的,但是分类误差可以变得与用基线模型实现的分类误差无法区分。在具有非线性切换特性的模拟RPU器件阵列上实施随机更新规则有效地利用了算法的局部性和并行性。结果,更新时间变得与阵列大小无关,并且是与BL成比例的恒定值,因此实现了所需的O(1)时间复杂度。
RPU器件规范(specifications)的推导
现有技术鉴于它们作为的神经网络训练的交叉阵列的潜在实现,已经分析了各种材料、物理机制和设备概念。这些技术最初是为存储类内存应用而开发的。然而,事先并不清楚,当应用于实现所提出的RPU概念时,这些技术的内在限制是否会导致显著的加速,或者相反,是否可能会限制性能。例如,PCM设备在训练期间只能增加电导,从而在多次更新后导致网络饱和。这个问题可以通过权重的周期性顺序重置来缓解,但是,由于它违反了O(1)时间复杂度,因此延长了训练时间。
按照一个或多个实施例,为了确定在达到O(1)时间复杂度时实现最终加速所需的器件规范,实验者执行了在图3A、3B、3C、3D、3E、3F、3G、3H和3I(通称图3)总结的一系列训练。在图3中,每个图对应于特定的“压力测试”,其中扫描(或改变)单个参数而所有其他参数都是固定的,从而允许实验者探索在没有显著的误差惩罚的情况下算法可以容忍的可接受的RPU器件参数。这包括RPU器件切换特性的变化,例如由于单个重合事件引起的增量电导变化、上下电导变化的不对称性、电导值的可调范围以及系统中的各种类型的噪声。重合事件被定义为从RPU器件所连接的列(例如δj)和行(xi)发送的两个电压脉冲的重叠。
在理想情况下,RPU器件应该是模拟的,即,由于单个重合事件导致的电导变化△gmin应该是任意小的,因此连续地覆盖所有允许的电导值。为了确定由于不产生显著误差惩罚的单个重合事件而产生的最大可接受△gmin,在0.32和0.00032之间扫描(变化或改变)参数△wmin,同时固定其他参数,如图3A所示。对于大的△wmin,收敛性较差,因为△wmin控制随机更新规则的标准偏差,而对于较小的△wmin,结果则接近基线模型。小于0.01的△wmin在第30个时期结束时产生2.3%的分类误差,仅比基线模型的2.0%分类误差高0.3%。第1、2和3行分别对应于△wmin=0.1、0.032和0.01的随机模型。图3B至3I中的所有曲线采用△wmin=0.001。
为了确定RPU器件为了算法的收敛所应该支持的最小和最大电导值,计算一组训练曲线,如图3B所示。每条曲线由权重范围定义,权重的绝对值|wij|保持低于在0.1和3之间变化的某个界限。在图3B中,曲线1、2和3对应于权重分别限定为0.1、0.2和0.3的随机模型。其他参数与图3A中的相同,△wmin取0.001,以确保结果主要由权重范围的选择来定义。权重|wij|被限制为大于0.3的值的模型导致如上定义的0.3%的可接受的错误惩罚标准。由于参数△wmin(和gij)与通过外围电路定义的放大系数△wmin(和wij)成正比,因此将RPU器件从其最小值移动到其最大电导值所需的重合事件数可以推导为(max(gij)-min(gij))/△gmin=(max(wij)-min(wij))/△wmin。这给出了需要存储在RPU器件上的状态的数量的较低估计(例如,600个状态)。为了确定算法对由于单个重合事件△gmin引起的增量电导变化的变化容限,假设每个重合事件的△wmin值是具有高斯分布的随机变量。相应的结果显示在图3C中,其中标准偏差变化而平均△wmin值设定为0.001。在实验者的模型中,如果随机值小于-1(或-100%),则允许△wmin具有导致相反方向变化的重合事件。如所看到的,该算法对于每个重合事件的权重变化的随机性和具有低于达到可接受的0.3%误差惩罚的平均值的150%的标准偏差的模型是鲁棒的。在图3C中,曲线1、2和3对应于其△wmin的重合-到-重合变化分别为1000%、320%和100%的随机模型。
对于图3D中所示的随机模型,介绍了由于单个重合事件△gmin而引起的增量电导变化中的器件到器件变化(又一个随机性)。特别地,在图3D中,曲线1、2和3对应于器件到器件的变化△wmin分别为1000、320和100%的随机模型。在这种情况下,在训练开始时从高斯分布中采样每个RPU器件的△wmin,然后在整个训练中对每个重合事件使用该固定值。对于图3D中的所有随机模型,使用0.001的平均△wmin值,同时针对每个模型改变标准偏差。在实验者的模型中,允许模型具有如果随机值小于-1(或-100%)则在整个训练中以相反方向执行更新的一些器件。结果表明,该算法对于器件到器件的变化也具有鲁棒性,并且对于标准偏差高达平均值的110%的模型,可以实现可接受的误差惩罚。器件到器件的变化被定义为阵列中参数对于不同RPU器件的变化。
为了确定算法对电导值的上限和下限中的器件到器件变化的容差,实验者假设对于图3E中的模型,每个RPU器件的上限和下限是不同的。用于每个RPU器件的边界从训练开始的高斯分布中采样,并在整个训练中使用。对于图3E中的所有随机模型,上限的平均值1.0(和下限的-1.0)用于确保结果主要由上限和下限中的器件到器件变化来定义。注意,随着标准偏差变得足够大,一些器件可以编码仅正权重值或仅负权重值。此外,某些设备甚至可能具有小于下限的上限,并且假设这些器件卡在中间点并且不响应更新。包括所有这些贡献,图3E示出了该算法对于边界和模型的变化是鲁棒的,其中高达平均值的80%的标准偏差可以实现可接受的0.3%误差惩罚。在图3E中,曲线1、2和3对应于器件到器件的变化分别在1000%、320%和100%的上限和下限的随机模型。
由于正脉冲和负脉冲,制造的RPU器件还可以显示电导值的不同量的变化,如图1C和1D中所示。为了确定算法能容忍的上下变化之间有多少不对称性,权重值的向上和向下变化如图3F和3G所示地变化。在图3F中,曲线1、2和3对应于向下变化分别弱于0.5、0.75和0.9的随机模型。在图3G中,曲线1、2和3对应于向上变化分别弱于0.5、0.75和0.9的随机模型。
在图3F和3G这两个图中,这种全局不对称被认为在整个RPU器件阵列中是均匀的。对于图3F 1中的每个模型,固定为0.001,而从弱于上限值的0.95到0.25变化。类似地,图3G示出了固定为0.001而是变化的类似结果。结果表明,上下变化需要显著地平衡(相对于彼此为10%),以便随机模型实现可接受的0.3%误差惩罚。实验者根据平均值定义阈值,因此将5%不平衡用作可接受的阈值。注意,图3G中而非图3F中所示的波动很大,这并不奇怪,波动不是由于更新的随机性质。实验者使用具有不平衡项的浮点乘法进行训练,仍然观察到类似的行为。
为了确定算法对不对称中的器件到器件变化的容差,与图3F和图3G中考虑的全局不对称性相反,针对的标准偏差的各种值计算图3H中的曲线。每个RPU器件的参数和从训练开始时的高斯分布中采样,然后在整个训练中用于每个重合事件。所有模型都假设和的平均值为0.001。的标准偏差需要小于平均值的6%,以实现可接受的0.3%误差惩罚。在图3H中,曲线1、2和3对应于上下的器件到器件变化分别变化40%、20%和6%的随机模型。
模拟计算对诸如热噪声、散粒噪声等的各种噪声源敏感,噪声源都是加性的,可以被建模为单个无偏高斯噪声。在图3C、3D、3E、3F、3G和3H中已经考虑了权重更新周期期间的噪声损失的影响。为了估计算法在前向和后向周期期间对噪声的容差,实验者将高斯噪声注入到具有不同标准偏差的向量矩阵乘法的结果中。在计算出向量矩阵乘法的结果之后,将独立的随机噪声添加到结果向量的每个元素。对于图3I中所示的数据,对于前向和后向周期使用相同的噪声分布,并且对于标准偏差为0.1的噪声,达到可接受的0.3%误差惩罚。该值是为单位的sigmoid神经元温度参数的10%。但是,前向和后向周期的噪声要求可能不相同。实际上,计算表明,当实验者仅将噪声引入前向周期时,该算法可以容忍高达六倍的噪声和60%的标准偏差。后向周期的容差较差,具有10%的阈值,因此它决定了从图3I中得到的阈值。在图3I中,曲线1、2和3分别对应于向量矩阵乘法中的噪声分别为100%、60%和10%的随机模型,该模型在为单位的激活函数温度上归一化。
图4A是总结从图3中执行的“压力测试”导出的RPU器件的规范的雷达图。轴C至I分别对应于图3C-3I中的实验。实线1连接为获得可接受的0.3%误差惩罚而为这些参数确定的阈值。注意,这些规范与NVM(非易失性存储器)技术的典型参数有很大不同。NVM设备中的存储是数字的并且通常不超过几位,并且该约束是由系统要求施加的,以实现读取和写入操作的高信噪比。此外,写入操作不依赖于历史记录,因为它会覆盖所有先前存储的值。相反,不需要以非常高的信噪比来写入和解析神经网络操作中的权重值。实际上,该算法可以在权重更新(参数C)中承受高达150%的噪声,并且可以容忍列或行上高达10%的读取噪声(参数I)。然而,与NVM设备上的几位存储容量相反,RPU器件需要大量的重合事件(在图3B中是600个以上)以跟踪重量更新的历史。此外,与NVM器件所需的位级之间的满摆写入的高耐久性相反,RPU器件仅需要对少量的增量变化(△gmin)具有高耐久性。图4A中考虑的所有参数的组合贡献可以是相加的,因此可能超过可接受的0.3%误差惩罚。图4B示出了当组合多于一个参数的效果时的训练结果。当所有参数(C、D、E、F、G、H和I)在阈值处组合时,测试误差达到5.0%,这比基线模型高3.0%。虽然这种惩罚对于某些应用来说是可以接受的,但它高于上面考虑的0.3%误差惩罚。3.0%的惩罚高于不相关贡献的简单累加影响,表明这些参数中的至少一些是相互作用的。这打开了通过折衷各种参数之间的容差来优化误差惩罚的可能性。例如,在阈值处仅组合参数C、D和E的模型,如图4B中的曲线2所示,给出了0.9%的误差惩罚,其大约是个体贡献的预期总和。注意,这些参数由器件操作中的缺陷和器件到器件的不匹配来定义,这些不匹配都由给定技术中的制造容差控制。即使对于深度缩放的CMOS技术,制造容差也不超过30%,并且远小于计算图4B中的曲线2所用的150%、110%和80%。通过将相应的公差设置为30%(数据未显示),可以消除C、D和E对误差惩罚的贡献。在图4B中,曲线线1、2和3分别对应于矢量矩阵乘法中的噪声分别为100%、60%和10%的随机模型,该模型在为单位的激活函数温度上归一化。图4A和4B可以通称为图4。
在图4A的参数中,RPU器件的电导值(参数F、G和H)的上下变化之间的不对称性是最具限制性的,按照一个或多个实施例,电导值的上下变化之间的这种不对称性通过如本文所讨论的滞后来解决。参数F(或G)是可以通过控制脉冲电压和/或正和负更新周期中的脉冲数来补偿的全局不对称性,因此可以通过适当的外围电路设计消除甚至高于5%阈值的不对称性。相反,仅当每个RPU器件被顺序寻址时,不对称性中的由器件到器件变化定义的参数H才可以由外围电路补偿。为了保持O(1)时间复杂度,可以共同优化器件失配参数H和噪声参数I以减少误差惩罚。图4B中由曲线3界定的阴影区域示出的所得模型实现最多0.3%的错误惩罚。对于该模型,参数C、D和E被设置为30%,而F(或G)被设置为零,H被设置为2%,I被设置为6%。或者,通过将噪声参数I限制为2.5%并将器件失配容差H增加到4%,可以获得相同的结果(数据未示出),这可以以设计低噪声电路为代价来简化阵列的制造。
除了上面考虑的参数之外,RPU器件也能显示对存储的电导值△gmin(gij)的电导变化的依赖性。这种行为引入了一个取决于可以写为△wmin(wij)的当前权重值的更新规则。实验者进行了包括权重相关的更新规则的模拟,模拟采用了包括对权重值的线性或二次依赖性的针对△wmin(wij)的不同函数形式。在第一组模拟中,实验者假设对于任何给定的权重值,更新是平衡的,使得并因此已经在整个权重范围内满足不平衡标准H。这些模拟结果表明,△gmin对gij的依赖性不是一个重要的参数,因为即使当△wmin变化大约10倍时也没有观察到超过0.3%的额外误差惩罚。但是,当实验者引入不平衡的权重相关的更新时,实验者观察到额外的错误惩罚,因为这种情况违反了不平衡标准H。
电路和系统级设计考虑因素
当实施O(1)时间复杂度操作时,可以接近在大小为N×N的RPU阵列上使用反向传播算法的DNN训练的最终加速度。在这种情况下,总加速度与N2成比例,这有利于非常大的阵列。通常,阵列、外围电路和整个系统的设计应基于特定工作负载和分类任务的网络参数的优化。为了开发这种设计的一般方法,实验者使用上面给出的分析结果作为理解的例子。然而,所开发的方法对于比对图2-4中的MNIST数据集进行分类的相对简单的3层网络更大类更复杂的情况是有效的。
RPU阵列设计
对于交叉阵列(即,RPU器件阵列)的实际技术实现,阵列尺寸受到传输线的电阻和寄生电容的限制,导致显著的RC(电阻电容器)延迟和电压降。为了进一步分析,实验者假设RPU器件集成在中间金属层之间的线的后端(BEOL)堆叠中。这允许顶部厚金属层用于配电,较低金属层和RPU阵列下区域用于外围CMOS电路。在按比例缩小的CMOS技术中,典型的中间金属层厚度为360nm(纳米),宽度为200nm。相应的典型线电阻约为rline=0.36Ω/μm(欧姆/微米),寄生电容为cline=0.2fF/μm(毫微微法拉/微米)。假设在更新周期期间使用的脉冲具有合理的1GHz(千兆赫兹)时钟频率,并且允许RC延迟至多为脉冲宽度的10%(0.1ns),则最长的线路长度应为lline=1.64mm(毫米)。假设合理的线路间距为200nm,则会产生具有4096x 4096个RPU器件的阵列。由于RPU器件的电导值只能为正,因此实验者假设使用一对相同的RPU器件阵列来编码正权重值和负权重值。权重值(wij)与存储在位于一对RPU阵列的相同位置的两个对应器件中的两个电导值的差成正比。为了使面积最小化,这两个阵列可以堆叠在彼此之上,占据4个连续的金属层,导致总面积Aarray=2.68mm2。对于该阵列大小,用1ns(纳秒)脉冲执行的完整更新周期(正和负)可以在20ns内完成,BL=10。
为了估计平均RPU器件电阻Rdevice,实验者假设在由N×Rline/Rdevice定义的传输线上最多10%的电压降,其中Rline是等于rlinex lline的总线电阻。通过适当的电路设计,可以最小化线路驱动器的输出电阻对总线电阻的贡献。对于N=4096的阵列大小,平均RPU器件电阻因此是Rdevice=24MΩ(兆欧)。使用该电阻值,并假设所有三个训练周期的工作电压为1V且每个器件平均约20%的活动—这对于图2-4所示的模型是典型的,则一对RPU阵列的功耗估计为Parray=0.28W(瓦特)。
外围电路的设计
图5A描绘了在前向(或后向)周期期间单列(或行)的操作,示出了在电容器Cint,和模数转换器(ADC)上集成差分电流的运算放大器(op-amp)。与更新周期相比,不需要随机转换器。这里,实验者假设当输入矢量由具有可调持续时间的固定幅度Vin=1V脉冲表示时,使用时间编码方案。脉冲持续时间是1ns的倍数,并且与输入矢量的值成比例。在每个RPU器件处产生的电流在列(或行)上求和,并且该总电流随着测量时间tmeas的推移由电流读出电路集成在一起,如图5A所示。正电压脉冲和负电压脉冲分别提供给用于编码正负权重的每个相同的RPU阵列。来自两个阵列的电流被馈入由集成在电容器Cint和ADC上的差分电流的运算放大器组成的外围电路。注意,对于时间编码脉冲,RPU阵列输入处的时间量化误差与脉冲总数成反比,因此,与随机脉冲方案相比,这是一种更好的方法。对于图4B中的模型,脉冲数大于(大约)20(~5位分辨率)就足以消除相应的误差惩罚。
实验者将单个RPU区块(tile)定义为一对阵列,具有4096×4096个器件,其中外围电路支持阵列在所有三个周期中的并行操作。外围电路包括ADC、运算放大器、由随机数发生器组成的STR,以及用于沿列和行引导信号的线路驱动器。如图5C中所示,来自RPU区块的信号被指向一个非线性函数(NLF)电路,该电路根据周期类型(例如,后向周期,前向周期或更新周期)和相应层的位置计算激活函数(即sigmoid、softmax)及其导数以及算术运算(即乘法)。在RPU区块边界处,将NLF的输入信号限制到特定阈值以避免信号饱和。特别地,图5C是一个加速器RPU芯片的架构的示意图。RPU区块位于底部,NLF数字计算电路位于顶部,片上(on-chip)通信由总线或NoC(片上网络)提供,片外通信依赖于I/O电路。
图5B示出了图4B中的模型3的网络的测试误差,但用边界|α|施加于向量矩阵乘法的结果,相当于限制NLF输入。曲线1对应于用|α|=3仅施加于图5B中的隐藏层中的sigmoid激活函数的模型。曲线2和3对应于用|α|=3和12分别施加于图5B中的sigmoid和softmax激活函数的模型。对于隐藏层中的神经元,NLF电路应计算sigmoid激活函数。当对该sigmoidNLF的输入被限制为|α|=3时,得到的误差惩罚不超过额外的0.4%,如图5B中的曲线1所示。
输出层处的神经元执行softmax NLF操作,当相应的输入也被限制为|α|时=3,该操作导致非常大的误差,如图5B中的曲线2所示。为了使设计更灵活和可编程,期望隐藏层和输出层中的NLF具有相同的边界。当softmax和sigmoid NLF的边界被限制为|α|=12时,总惩罚在可接受的范围内,如图5B中的曲线3所示。假设从图4B的结果中取6%的可接受的噪声水平,在ADC的输入端的工作电压范围在-1V和-1V之间,则所需的相应位分辨率和电压步长分别为9比特和3.9mV。这些数字表明,ADC输入端(或运算放大器输出端)的可接受总集成RMS(均方根)电压噪声不应超过5.0mV。
噪声分析
为了估计输入参考噪声的可接受水平,应该定义运算放大器的积分函数。运算放大器输出端的电压可以推导为
其中β是RPU器件的电导开/关比。该方程式假设所有N个RPU器件同时起作用,这使得设计需要非常大的电容器或大电压摆幅的电路更具挑战性。然而,对于给定的施加于NLF转换的边界|α|和权重值的|wij|,输出电压不应超过对应于|α|/|wij|器件的同时贡献的水平。由于如上所示,可接受的边界|α|=12和|wij|=0.6是足够的,方程式(4)中的数字N可以用20代替。假设馈入ADC的Vout信号不应超过1V,且Rdevice为24MΩ,则积分电容器Cint的选择由积分时间tmeas和开/关比β决定。图5D示出了RPU器件上的各种开/关比β和积分时间tmeas的可接受的输入参考噪声水平。曲线1、2和3分别对应于20ns、80ns和160ns的tmeas。该噪声水平对应于使用基于积分器的电路中的标准噪声分析计算的运算放大器的输入参考噪声(Jensen等,2013)。如果tmeas取20ns,则按照上面讨论的量化误差考虑,可接受的噪声水平相对较低,例如在图5D的曲线1中看到的仅为的量级。即使将开/关比β增加到几个数量级也无助于适应更高的噪声。为了适应更高的噪声,tmeas需要增加,然而具有整体计算时间增加的惩罚。从图5D中的曲线可见,对于给定的噪声水平,可以接受小至2-10的开/关比;与NVM应用典型的更高的几个数量级相比,这实际上相当适中。当tmeas和β分别被选择为80ns和8时,图5D中的曲线2所示的可接受的输入参考噪声的相应水平可以推导为7.6实验者注意到该预算是用后向回合的要求计算的,而对于正向回合,可接受的噪声水平大约是六倍,其值大约为45如上所述。相应的电容Cint也可以用方程式(4)计算为103fF。
各种噪声源可能导致运算放大器的可接受输入参考噪声—包括热噪声、散粒噪声和电源电压噪声等—的总水平。具有4096x 4096RPU器件的一对阵列引起的热噪声可估计为7.0根据RPU器件的确切物理实现和非线性I-V响应的类型,RPU阵列产生的散粒噪声水平可能会有所不同。假设类似二极管的模型,来自整个阵列的总散粒噪声级别为一列(或一行)中的有源RPU器件个数的平方根,因此取决于阵列的总体瞬时活动。对于图2-4的模型来说是典型的网络的平均活动,对于后向周期来说小于1%,而对于前向周期来说则高得多(接近20%)。相应地,这些活动对后向和前向周期分别产生3.1和13.7的散粒噪声值。因此,反向周期中的噪声由值为7.0的热噪声和散粒噪声共同决定,其中散粒贡献与7.6的总噪声预算相符。相比之下,前向周期中的噪声由值为13.7的散粒噪声决定,并且它也符合相应的45的总噪声预算。实验者注意到,对于更高的工作负载或包括电压噪声、放大器噪声等的额外噪声贡献,需要更长的集成时间或更小的阵列大小。
系统级设计考虑因素
由外围电路占据的区块区域和相应的耗散功率由4096个ADC的贡献支配。假设前向和后向周期为80ns的tmeas,则需要以12.5MSamples/sec的速率运行9位分辨率的ADC。能够提供此性能的现有技术的SAR-ADC占用面积为0.0256mm2,功耗为0.24mW,因此,使用现有技术的SAR-ADC,可使4096个ADC的阵列的总面积达到104mm2,总功率为1W。这个面积比RPU阵列本身大得多,因此通过在保持总功率不变的同时提高采样率来对ADC在不同列(或行)之间进行时间复用是合理的。假设每个ADC由64列(或行)共享,则ADC总面积可减小至1.64mm2,每个ADC运行速度约为800MSamples/sec。由于实验者假设RPU器件阵列是建立在外围CMOS电路顶部的中间金属层,因此总的区块面积由2.68mm2的RPU阵列面积定义,留下约1.0mm2用于其它电路(其它电路也可以是面积优化的)。例如,可以把用于将二进制数据转换为随机比特流的随机数生成器的数量显著地减少到2,这是因为,没有操作针对列(或行)内生成的流执行且由相应的分类测试没有额外的误差惩罚证明(数据未显示)。因此单个区块的总面积为2.68mm2,而RPU阵列和所有外围电路(即ADCs、运算放大器、STR)消耗的总功率可估计为2.0W,假设为放大器和STR保留0.7W。考虑到更新周期的20ns持续时间和4096x 4096RPU阵列大小,单个区块(RPU区块)上每秒的权重更新次数可估计为839TeraUpdates/s。这意味着TeraUpdates/s/W的功率效率和319TeraUpdates/s/mm2的面积效率。前向和后向周期期间的区块吞吐量可估计为419TeraOps/s,假定前向(或后向)周期为80ns,功率和面积效率分别为210TeraOps/s/W和156TeraOps/s/mm2。这些效率数字比现有技术的CPU和GPU性能指标高出约5个数量级(105)。单个RPU区块实现的功率和面积效率可能会降低,因为多个区块集成在一起作为片上系统。如图5C中所示,应为可编程NLF电路、通过相干总线或片上网络(NoC)进行的片上通信、片外I/O电路等保留额外的功率和面积。增加芯片上RPU区块的数量可能首先导致总芯片吞吐量的加速,但最终会饱和,因为RPU区块将受到功率、面积、通信带宽和/或计算资源的限制。现有技术的高性能CPU或GPU可作为估算单芯片上最大面积600mm2和功率250W的参考。虽然每个区块的功率和面积不禁止将区块的数量扩展到50到100,但是系统高效所需的通信带宽和计算资源可能具有挑战性。单个RPU区块的通信带宽可以估计,假设前向(或后向)周期每列(或行)5位输入和9位输出,则总计为大约90GB/s的单向带宽,这些90GB/s单向带宽也满足更新周期通信要求。这个数字比现有技术的CPU中单核和附近L2缓存之间的通信带宽小约3倍。现有技术的片上相干总线((超过3TB/s)或NoC(2.5TB/s))可以在远距离区块(即RPU区块)之间提供足够的通信带宽。维持单个RPU区块的O(1)时间复杂度所需的计算资源可以估计为51GigaOps/s—假设80ns的周期时间和在列或行生成的4096个数。为了支持n个RPU区块的并行操作,需要按O(n)来缩放计算资源,从而限制在给定时间可以活动的RPU区块的数量,以使芯片上的总功率包络保持在250W以下。例如,现有技术的CPU的单核可以达到约50GigaFLOP/s,这可能足以支持一个RPU区块。然而,假设每个核20W,则仅12个RPU区块达到最大功率。该设计点的相应功率效率将是TeraOps/s/W,如图6中的表1中的设计1所示。图6中的表1,是各种RPU系统设计与现有技术的CPU和GPU的比较的总结。32个现有技术的GPU核可以提供相同的计算资源,但功率效率更高,因此允许多达50个区块并行工作。该设计的相应功率效率为84TeraOps/s/W,如表1中的设计2所示。可以设想,通过设计操作具有有限位分辨率的固定点数的专用的功率和面积高效的数字电路,可以进一步增加同时工作的RPU区块数量。另一种设计可以基于能顺序处理区块数据的以便适应更大数量的区块以处理更大的网络规模的若干个计算核,如表1中的设计3所示。例如,具有100RPU区块和单个50GigaOps/s计算核的芯片能够处理多达16亿个权重的网络且仅耗散约22W,假设20W来自计算核和通信总线,RPU区块仅耗散2W,因为在任何给定时间只有一个RPU区块是活动的。这提供了20TeraOps/s/W的功率效率,比现有技术的CPU和GPU好四个数量级(104)。
可以理解,一个或多个实施例提供了可以在本地和并行地同时存储和处理数据的RPU器件的配置,从而为DNN训练提供显著的加速。讨论了训练算法对各种RPU器件和系统参数以及对技术缺陷和不同的噪声源的容差。该分析允许实验者定义图7中的表2中总结的RPU器件的规范列表。图7中的表2是按照一个或多个实施例的RPU器件规范的总结。基于现有NVM技术的RPU器件的当前竞争者可能不一定同时满足所有标准。然而,表2的结果可以用作系统化搜索为用合适的CMOS兼容技术实现该RPU器件概念的物理机制、材料和器件设计的指南。
实验者已经提出了基于RPU阵列配置的各种系统设计的分析,其可以提供深度神经网络训练的许多数量级(103、104、105和/或106倍)的加速,同时显著降低所需功率和计算机硬件资源。结果在表1中总结。该分析表明(取决于网络大小)可以作出权衡了功率与加速因子的RPU加速器芯片的不同设计选择。
按照实施例,所描述的图5C的加速器芯片设计是灵活的,可以适应具有相似加速因子的完全连接层之外的不同类型的DNN架构。例如,也可以以类似的方式将卷积层映射到RPU阵列。本领域技术人员理解卷积层。在这种情况下,对于前向和后向周期来说不要执行向量-矩阵乘法,阵列需要执行矩阵-矩阵乘法,这可以通过将输入矩阵的列顺序地馈送到RPU阵列的列中来实现。此外,外围NLF电路需要重新编程,不仅要执行激活功能的计算,还要执行最大池和子采样。可以通过重新编程网络中的区块地址来实现层之间所需的连接。卷积层的更新周期可能需要计算在前向和后向周期期间使用的两个矩阵的乘积。这可以通过将输入矩阵的列和误差矩阵的列同时顺序地馈送到RPU阵列来实现。在更新周期期间,每个RPU器件执行一系列本地乘法和求和操作,因此每个RPU器件在更新期间计算两个矩阵的乘积。注意,对于卷积和完全连接的层,RPU阵列上的所有三个周期(例如前向、后向和更新周期)是相似的,不需要重新编程。实际上,卷积层可以被视为具有大于单位的小批量大小的完全连接的层。RPU加速器芯片的吞吐量独立于DNN架构和该小批量大小,因此RPU加速器芯片实现了类似RPU阵列大小的类似加速因子。但是,应使用此处描述的方法为不同的DNN架构和数据集重新考虑RPU器件和系统规范。大多数最近的DNN架构基于许多卷积和完全连接的层的组合,其中参数数量在十亿的数量级。分析表明,单个RPU加速器芯片可用于训练如此大的DNNs。按照一个或多个实施例,当前需要在多个GPU上训练数天的ImageNet分类的大小的问题在单个RPU加速器芯片上可能仅花费不到一分钟。
图10A和10B是按照一个或多个实施例的具有迟滞(对于RPU器件)的训练结果的曲线图。如上所述,1个训练时期等于60,000个训练图像。图10A示出了具有100%不平衡的RPU器件的测试误差%与该训练时期的关系。100%不平衡装置的一个例子是正方向的电导变化(△g+ min)比负(△g- min)方向的变化强2倍(即2倍),反之亦然。为了比较,图10A示出了没有迟滞与2、4、8、16和32脉冲的迟滞hn的比较曲线。图10A还示出了一个浮点(FP)数基线的曲线(圆圈),其表示最高精度和最低测试误差(例如,2%测试误差意味着RPU器件在98%的时间达到正确结果)。按照一个或多个实施例,即使设备不平衡100%,迟滞RPU器件也可以通过使用迟滞hn=32个脉冲来实现大约2%的测试误差。应当注意,RPU器件的迟滞保持相同(例如,保持在hn=32个脉冲),图10A和10B中的示例表示具有不同迟滞的RPU器件。迟滞是RPU器件的物理结构的函数,所讨论的任何RPU器件都可以是按照实施例的迟滞RPU器件。迟滞器件可能会定期地被制造,因为没有迟滞的器件可能更难以实现。诸如磁性器件的电荷扩散或畴壁运动的机制通常是迟滞的。此外,大多数忆阻器件设备(通常)也是迟滞的。
类似地,图10B示出了具有60%不平衡的RPU器件的测试误差%与训练时期的关系。为了比较,图10A示出了没有迟滞与2、4、8、16个脉冲的迟滞hn的比较曲线。图10A还示出了浮点(FP)数基线的曲线(如圆圈),其表示最高精度和最低测试误差(例如,2%测试误差意味着RPU器件在98%的时间达到正确结果)。即使器件不平衡为60%,迟滞RPU器件也可通过迟滞hn=16个脉冲实现大约2%的测试误差。图10B的RPU器件具有较低的不平衡,可以以比图10A更低的迟滞hn达到(近似)2%的测试误差。
图11是示出按照一个或多个实施例的在第30个时期具有60%不平衡和100%不平衡的迟滞RPU器件的测试误差率的曲线图。
图12是示出按照一个或多个实施例的迟滞重新归一化(即固定)不平衡因子的曲线图。不平衡因子是r,且与相同。当单独引入不平衡因子r而没有迟滞项(即hn=0)时,用约2.3%的测试误差率导出约5%的可接受阈值。然而,当引入非零迟滞项时,如图12所示,该迟滞项使不平衡因子重新归一化。当利用变化的不平衡和迟滞项进行神经网络训练时,则表明重新归一化的不平衡项r/(hn+1)可用于预测网络训练的性能。图12中每个数据点的标签示出了所使用的不平衡值(r)对应于相应的数据点,并且很明显,重新归一化的不对称性r/(hn+1)是控制训练结果的相关参数。
图13是按照一个或多个实施例的形成电阻处理单元(RPU)阵列(诸如图15中的RPU阵列1500)的方法的流程图1300。提供RPU阵列1500用于解释目的。可以参考图1-12、14、15和16。
在框1302处,提供一组导电行线1502A-N。在框1304,一组导电列线1504A-N被配置为在该组导电行线1502A-N与该组导电列线1504A-N之间的交汇处形成多个交叉点。在框1306,多个迟滞的双端子RPU 1550使得多个双端子RPU 1550各自具有由迟滞定义的电导状态,其中多个双端子RPU 1550中的双端子RPU 1550位于所述多个交叉点中的每一个处。
多个双端子RPU 1550的迟滞被配置为使得电导状态的变化具有预定量的脉冲的延迟。该预定量的脉冲(即迟滞hn)是多个更新周期脉冲。(反向传播算法的)更新脉冲被配置为(同时或几乎同时)施加到导电行线1502A-N的集合和导电列线1504A-N的集合。电导状态的变化被定义为电导状态从第一方向到第二方向的切换或者电导状态从第二方向到第一方向的切换。
对于电导状态从第一方向到第二方向的切换以及电导状态从第二方向到第一方向的切换,延迟(即迟滞)是相等的。更新脉冲在正脉冲和负脉冲之间切换。正脉冲引起电导状态的第一方向,负脉冲引起电导状态的第二方向。
多个双端子RPU 1550是不平衡器件,其具有导电状态在第一方向和第二方向的斜率之间的不平衡。多个双端子RPU 1550中的迟滞减小了不平衡。
图14是按照一个或多个实施例的用于迟滞操作的方法的流程图1400。可以参考图1-13、15和16。在框1402,(来自一个或多个电压源的)更新脉冲被至少一个迟滞电阻处理单元(RPU)1550接收。在框1404,该至少一个迟滞RPU 1550响应于更新脉冲而有电导状态的变化,其中电导状态的变化具有预定量的更新脉冲的延迟(即迟滞hn)。
技术益处包括具有用于神经网络训练的迟滞更新的电阻处理单元/设备。迟滞电阻处理单元/装置通过在电阻处理单元中引入迟滞更新来增加容差,以校正由电阻处理单元中的不对称引起的不平衡,从而校正电阻处理单元的电导值的上下变化的不平衡(不等)。
已经出于说明的目的给出了对本发明的各种实施例的描述,但是上述描述并非穷尽性的,也不是要将本发明限制于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。本文中所使用的术语的选择是为了最好地解释实施例的原理、实际应用或对市场中发现的技术的技术改进,或者使本领域普通技术人员能够理解本文公开的实施例。
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (20)
1.一种电阻处理单元RPU阵列,包括:
一组导电行线;
一组导电列线,被配置为在所述一组导电行线和所述一组导电列线之间的交汇处形成多个交叉点;和
多个双端子RPU,所述多个双端子RPU是迟滞的,使得所述多个双端子RPU各自具有由迟滞限定的电导状态,其中所述多个双端子RPU的双端子RPU位于所述多个交叉点的每个交叉点,所述双端子RPU的一个端子耦合到随机转换器并且所述双端子RPU的另一端子耦合到另一随机转换器。
2.如权利要求1所述的RPU阵列,其中所述多个双端子RPU的迟滞被配置为使得所述电导状态的变化具有预定量的脉冲的延迟。
3.如权利要求2所述的RPU阵列,其中所述预定量的脉冲是多个更新脉冲。
4.如权利要求3所述的RPU阵列,其中所述更新脉冲被配置为施加到所述一组导电行线和所述一组导电列线。
5.如权利要求2所述的RPU阵列,其中所述电导状态的变化被定义为所述电导状态从第一方向到第二方向的切换或者所述电导状态从第二方向到第一方向的切换。
6.如权利要求5所述的RPU阵列,其中,所述延迟对于所述电导状态从第一方向到第二方向的切换以及所述电导状态从第二方向到第一方向的切换是相等的。
7.如权利要求3所述的RPU阵列,其中所述更新脉冲在正脉冲和负脉冲之间切换。
8.如权利要求7所述的RPU阵列,其中所述正脉冲引起所述电导状态的第一方向,所述负脉冲引起所述电导状态的第二方向。
9.如权利要求1所述的RPU阵列,其中:
所述多个双端子RPU是不平衡器件,其具有所述电导状态在第一方向和第二方向的斜率之间的不平衡;和
所述多个双端子RPU中的迟滞减小了不平衡。
10.一种形成电阻处理单元RPU阵列的方法,该方法包括:
提供一组导电行线;
提供一组导电列线,其被配置为在所述一组导电行线和所述一组导电列线之间的交汇处形成多个交叉点;和
提供多个双端子RPU,所述多个双端子RPU是迟滞的,使得所述多个双端子RPU各自具有由迟滞限定的电导状态,其中所述多个双端子RPU的双端子RPU位于所述多个交叉点的每个交叉点,所述双端子RPU的一个端子耦合到随机转换器并且所述双端子RPU的另一端子耦合到另一随机转换器。
11.如权利要求10所述的方法,其中所述多个双端子RPU的迟滞被配置为使得所述电导状态的变化具有预定量的脉冲的延迟。
12.如权利要求11所述的方法,其中所述预定量的脉冲是多个更新脉冲。
13.如权利要求12所述的方法,其中所述更新脉冲被配置为施加到所述一组导电行线和所述一组导电列线。
14.如权利要求11所述的方法,其中所述电导状态的变化被定义为所述电导状态从第一方向到第二方向的切换或者所述电导状态从第二方向到第一方向的切换。
15.如权利要求14所述的方法,其中,所述延迟对于所述电导状态从第一方向到第二方向的切换以及所述电导状态从第二方向到第一方向的切换是相等的。
16.如权利要求12所述的方法,其中所述更新脉冲在正脉冲和负脉冲之间切换。
17.如权利要求16所述的方法,其中所述正脉冲引起所述电导状态的第一方向,所述负脉冲引起所述电导状态的第二方向。
18.如权利要求10所述的方法,其中:
所述多个双端子RPU是不平衡器件,其具有所述电导状态在第一方向和第二方向的斜率之间的不平衡;和
所述多个双端子RPU中的迟滞减小了不平衡。
19.一种用于迟滞操作的方法,该方法包括:
使更新脉冲被至少一个迟滞电阻处理单元RPU接收,所述至少一个迟滞RPU的一个端子耦合到随机转换器并且所述至少一个迟滞RPU的另一端子耦合到另一随机转换器;和
使得所述至少一个迟滞RPU响应于所述更新脉冲而具有电导状态的变化,其中所述电导状态的变化具有预定量的更新脉冲的延迟。
20.如权利要求19所述的方法,其中,所述电导状态的变化是所述电导状态从第一方向到第二方向的切换或者所述电导状态从第二方向到第一方向的切换。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/446,264 US10755170B2 (en) | 2017-03-01 | 2017-03-01 | Resistive processing unit with hysteretic updates for neural network training |
US15/446,264 | 2017-03-01 | ||
PCT/IB2018/051224 WO2018158680A1 (en) | 2017-03-01 | 2018-02-27 | Resistive processing unit with hysteretic updates for neural network training |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110352436A CN110352436A (zh) | 2019-10-18 |
CN110352436B true CN110352436B (zh) | 2023-05-16 |
Family
ID=63355648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880014761.9A Active CN110352436B (zh) | 2017-03-01 | 2018-02-27 | 用于神经网络训练的具有迟滞更新的电阻处理单元 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10755170B2 (zh) |
JP (1) | JP6995131B2 (zh) |
CN (1) | CN110352436B (zh) |
DE (1) | DE112018000272T5 (zh) |
GB (1) | GB2574168A (zh) |
WO (1) | WO2018158680A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10482940B2 (en) * | 2015-12-17 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Computational accuracy in a crossbar array |
US10303998B2 (en) * | 2017-09-28 | 2019-05-28 | International Business Machines Corporation | Floating gate for neural network inference |
US11301752B2 (en) * | 2017-10-24 | 2022-04-12 | International Business Machines Corporation | Memory configuration for implementing a neural network |
US10340002B1 (en) * | 2018-03-30 | 2019-07-02 | International Business Machines Corporation | In-cell differential read-out circuitry for reading signed weight values in resistive processing unit architecture |
US10831860B2 (en) * | 2018-10-11 | 2020-11-10 | International Business Machines Corporation | Alignment techniques to match symmetry point as zero-weight point in analog crosspoint arrays |
KR102543232B1 (ko) * | 2018-12-04 | 2023-06-15 | 한국전자통신연구원 | 아날로그 디지털 변환기 및 아날로그 디지털 변환기의 동작 방법 |
US11153104B2 (en) | 2019-03-14 | 2021-10-19 | International Business Machines Corporation | Generating key material for information security using a resistive processing unit (RPU) accelerator array as a physically unclonable function (PUF) |
US11769046B2 (en) | 2019-03-14 | 2023-09-26 | International Business Machines Corporation | Symmetric phase-change memory devices |
US11461640B2 (en) | 2019-04-18 | 2022-10-04 | International Business Machines Corporation | Mitigation of conductance drift in neural network resistive processing units |
CN110059038A (zh) * | 2019-04-28 | 2019-07-26 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性连接架构及方法 |
US11562249B2 (en) * | 2019-05-01 | 2023-01-24 | International Business Machines Corporation | DNN training with asymmetric RPU devices |
US11361218B2 (en) | 2019-05-31 | 2022-06-14 | International Business Machines Corporation | Noise and signal management for RPU array |
US10839900B1 (en) | 2019-06-12 | 2020-11-17 | International Business Machines Corporation | Parasitic voltage drop compensation in large cross-point arrays |
US11200297B2 (en) | 2019-06-12 | 2021-12-14 | International Business Machines Corporation | Integrator voltage shifting for improved performance in softmax operation |
US11455520B2 (en) | 2019-06-14 | 2022-09-27 | International Business Machines Corporation | Copying weights between resistive cross-point arrays |
US10832773B1 (en) | 2019-07-01 | 2020-11-10 | International Business Machines Corporation | Architecture for enabling zero value shifting |
US11183238B2 (en) | 2019-08-28 | 2021-11-23 | International Business Machines Corporation | Suppressing outlier drift coefficients while programming phase change memory synapses |
US11610101B2 (en) * | 2019-08-30 | 2023-03-21 | International Business Machines Corporation | Formation failure resilient neuromorphic device |
US20210142153A1 (en) * | 2019-11-07 | 2021-05-13 | International Business Machines Corporation | Resistive processing unit scalable execution |
US11520855B2 (en) * | 2020-05-15 | 2022-12-06 | International Business Machines Corportation | Matrix sketching using analog crossbar architectures |
CN111614346B (zh) * | 2020-06-11 | 2023-06-30 | 电子科技大学 | 基于延时信号的ai处理器的处理单元及累积单元 |
JP6968941B1 (ja) | 2020-07-08 | 2021-11-24 | ウィンボンド エレクトロニクス コーポレーション | 抵抗変化型クロスバーアレイ装置 |
JP7150787B2 (ja) | 2020-07-31 | 2022-10-11 | ウィンボンド エレクトロニクス コーポレーション | 抵抗変化型クロスバーアレイ装置 |
US20220180164A1 (en) * | 2020-12-07 | 2022-06-09 | International Business Machines Corporation | Worst Case Noise and Bound Management for RPU Crossbar Arrays |
US20220207344A1 (en) * | 2020-12-26 | 2022-06-30 | International Business Machines Corporation | Filtering hidden matrix training dnn |
CN113505887B (zh) * | 2021-09-12 | 2022-01-04 | 浙江大学 | 一种针对忆阻器误差的忆阻器存储器神经网络训练方法 |
KR102634665B1 (ko) * | 2021-12-21 | 2024-02-07 | 포항공과대학교 산학협력단 | 뉴로모픽 반도체 소자 및 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663493A (zh) * | 2012-03-23 | 2012-09-12 | 天津工业大学 | 一种用于时间序列预测的迟滞神经网络 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5503194A (en) * | 1993-02-22 | 1994-08-25 | General Electric Company | Single phase electronically commutated motor system and method |
US9269043B2 (en) | 2002-03-12 | 2016-02-23 | Knowm Tech, Llc | Memristive neural processor utilizing anti-hebbian and hebbian technology |
US7668795B2 (en) | 2004-11-02 | 2010-02-23 | Fuji Xerox Co., Ltd. | Data analyzer utilizing the spreading activation theory for stemming processing |
US20070233761A1 (en) | 2006-04-03 | 2007-10-04 | Mouttet Blaise L | Crossbar arithmetic processor |
US8527438B2 (en) | 2009-12-22 | 2013-09-03 | International Business Machines Corporation | Producing spike-timing dependent plasticity in an ultra-dense synapse cross-bar array |
US8274812B2 (en) | 2010-06-14 | 2012-09-25 | Crossbar, Inc. | Write and erase scheme for resistive memory device |
US8510239B2 (en) * | 2010-10-29 | 2013-08-13 | International Business Machines Corporation | Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern |
US9490011B2 (en) | 2013-07-10 | 2016-11-08 | Hewlett Packard Enterprise Development Lp | Storage device write pulse control |
US10395166B2 (en) | 2013-09-04 | 2019-08-27 | Lockheed Martin Corporation | Simulated infrared material combination using neural network |
US9715660B2 (en) | 2013-11-04 | 2017-07-25 | Google Inc. | Transfer learning for deep neural network based hotword detection |
US20150324690A1 (en) | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
US9466362B2 (en) * | 2014-08-12 | 2016-10-11 | Arizona Board Of Regents On Behalf Of Arizona State University | Resistive cross-point architecture for robust data representation with arbitrary precision |
US10262733B2 (en) | 2014-10-29 | 2019-04-16 | Hewlett Packard Enterprise Development Lp | Memristive dot product engine for vector processing |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10520975B2 (en) * | 2016-03-03 | 2019-12-31 | Regents Of The University Of Minnesota | Polysynchronous stochastic circuits |
-
2017
- 2017-03-01 US US15/446,264 patent/US10755170B2/en active Active
-
2018
- 2018-02-27 CN CN201880014761.9A patent/CN110352436B/zh active Active
- 2018-02-27 WO PCT/IB2018/051224 patent/WO2018158680A1/en active Application Filing
- 2018-02-27 GB GB1913458.4A patent/GB2574168A/en not_active Withdrawn
- 2018-02-27 DE DE112018000272.1T patent/DE112018000272T5/de not_active Ceased
- 2018-02-27 JP JP2019546199A patent/JP6995131B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663493A (zh) * | 2012-03-23 | 2012-09-12 | 天津工业大学 | 一种用于时间序列预测的迟滞神经网络 |
Also Published As
Publication number | Publication date |
---|---|
GB201913458D0 (en) | 2019-10-30 |
WO2018158680A1 (en) | 2018-09-07 |
JP6995131B2 (ja) | 2022-01-14 |
JP2020514886A (ja) | 2020-05-21 |
GB2574168A (en) | 2019-11-27 |
US10755170B2 (en) | 2020-08-25 |
CN110352436A (zh) | 2019-10-18 |
US20180253642A1 (en) | 2018-09-06 |
DE112018000272T5 (de) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110352436B (zh) | 用于神经网络训练的具有迟滞更新的电阻处理单元 | |
Zhang et al. | Neuro-inspired computing chips | |
Thakur et al. | Large-scale neuromorphic spiking array processors: A quest to mimic the brain | |
Gokmen et al. | Acceleration of deep neural network training with resistive cross-point devices: Design considerations | |
Yu | Neuro-inspired computing with emerging nonvolatile memorys | |
JP7336819B2 (ja) | 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法 | |
Marinella et al. | Multiscale co-design analysis of energy, latency, area, and accuracy of a ReRAM analog neural training accelerator | |
KR102449941B1 (ko) | 효율적인 행렬 곱셈을 위한 시스템 및 방법 | |
Chen et al. | Mitigating effects of non-ideal synaptic device characteristics for on-chip learning | |
Kataeva et al. | Efficient training algorithms for neural networks based on memristive crossbar circuits | |
US20190122105A1 (en) | Training of artificial neural networks | |
Wang et al. | Integration and co-design of memristive devices and algorithms for artificial intelligence | |
Cai et al. | Harnessing intrinsic noise in memristor hopfield neural networks for combinatorial optimization | |
Chen et al. | Reliability perspective of resistive synaptic devices on the neuromorphic system performance | |
CN112005252A (zh) | 具有单独权重更新和干扰电路的电阻式处理单元架构 | |
Musisi-Nkambwe et al. | The viability of analog-based accelerators for neuromorphic computing: A survey | |
Lin et al. | Analysis and simulation of capacitor-less ReRAM-based stochastic neurons for the in-memory spiking neural network | |
Solomon | Analog neuromorphic computing using programmable resistor arrays | |
Bennett et al. | Contrasting advantages of learning with random weights and backpropagation in non-volatile memory neural networks | |
US10832773B1 (en) | Architecture for enabling zero value shifting | |
Crafton et al. | Local learning in RRAM neural networks with sparse direct feedback alignment | |
Antolini et al. | Combined hw/sw drift and variability mitigation for pcm-based analog in-memory computing for neural network applications | |
Wan et al. | Edge AI without compromise: efficient, versatile and accurate neurocomputing in resistive random-access memory | |
Wei et al. | Neuromorphic Computing Systems with emerging devices | |
Wei et al. | Emerging Memory-Based Chip Development for Neuromorphic Computing: Status, Challenges, and Perspectives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |