CN111656368A - 硬件加速的离散式神经网络 - Google Patents
硬件加速的离散式神经网络 Download PDFInfo
- Publication number
- CN111656368A CN111656368A CN201980006345.9A CN201980006345A CN111656368A CN 111656368 A CN111656368 A CN 111656368A CN 201980006345 A CN201980006345 A CN 201980006345A CN 111656368 A CN111656368 A CN 111656368A
- Authority
- CN
- China
- Prior art keywords
- digital
- vmm
- value
- analog
- nvm
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000015654 memory Effects 0.000 claims abstract description 63
- 238000003491 array Methods 0.000 claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 15
- 230000001537 neural effect Effects 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 14
- 230000004913 activation Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 25
- 238000013139 quantization Methods 0.000 claims description 10
- 238000012935 Averaging Methods 0.000 claims description 7
- 230000010354 integration Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims 1
- 230000001133 acceleration Effects 0.000 abstract description 2
- 210000004027 cell Anatomy 0.000 description 56
- 238000012549 training Methods 0.000 description 24
- 238000001994 activation Methods 0.000 description 20
- 230000000694 effects Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 230000000946 synaptic effect Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 210000000225 synapse Anatomy 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 241000238558 Eucarida Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000010170 biological method Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001242 postsynaptic effect Effects 0.000 description 1
- 210000005215 presynaptic neuron Anatomy 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
- G06G7/163—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division using a variable impedance controlled by one of the input signals, variable amplification or transfer function
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/66—Digital/analogue converters
- H03M1/74—Simultaneous conversion
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Semiconductor Memories (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明题为“硬件加速的离散式神经网络”。创新的低位宽设备可包括第一数模转换器(DAC)、第二DAC、多个非易失性存储器(NVM)权重阵列、一个或多个模数转换器(ADC)和神经电路。第一DAC被配置成将数字输入信号转换成模拟输入信号。第二DAC被配置成将数字先前隐藏状态(PHS)信号转换成模拟PHS信号。NVM权重阵列被配置成基于模拟输入信号和模拟PHS信号来计算矢量矩阵乘法(VMM)阵列。NVM权重阵列耦接到第一DAC和第二DAC。一个或多个ADC耦接到多个NVM权重阵列并被配置成将VMM阵列转换成数字VMM值。神经电路被配置成将数字VMM值处理成新隐藏状态。
Description
技术领域
本公开涉及使用神经网络的数据处理。
背景技术
深度神经网络在过去几年中已得到极大的普及,并且已成为最广泛使用的机器学习技术之一。深度神经网络可以广义地分为两类:前馈神经网络和递归神经网络,这取决于网络拓扑内是否存在回路。与用于静态输入问题如图像识别、对象检测等的前馈神经网络诸如CNN(卷积神经网络)和MLP(多层感知器)不同,递归神经网络诸如LSTM(长短期存储器)、GRU(门控递归单元)和ESN(回声状态网络)适用于非静态输入任务,包括语音识别、时间序列预测等。LSTM神经网络(简称LSTM)是一种特殊类型的递归神经网络,其最初被设计成避免在反向传播期间的梯度爆炸或消失问题,并且现已成为用于语音识别的现有技术方法。与其它类型的神经网络如CNN结合的LSTM由SiriTM、GoogleVoiceTM、AlexaTM等使用,但通常使用中央处理单元(CPU)、图形处理单元(GPU)或张量处理单元(TPU)计算架构在云服务器上远程执行。希望具有用于在移动设备或自动驾驶汽车上直接运行LSTM的嵌入式硬件。
神经形态芯片是具有前景的技术,考虑到它们在功率效率和计算速度方面的优点,神经形态芯片可以与移动设备集成。它们通常基于(互补金属氧化物半导体)CMOS(超大规模集成)VLSI电路,并且试图在数十亿个神经元和数万亿个突触处理并存储信息时通过利用大规模并行性来模仿人脑执行计算。关于神经形态计算硬件系统的现有显著努力中的一些包括IBM的TrueNorthTM、Stanford的NeurogridTM、EU的BrainScaleSTM以及最近的Intel的LoihiTM等。除了使用基于CMOS的模拟/数字电路之外,还可集成非易失性存储器(NVM)设备以加速神经形态计算或机器学习硬件,因为它们可直接用作人工神经网络中的突触权重。用于神经形态计算的流行候选NVM技术中的一些包括ReRAM、PCM、MRAM和浮栅晶体管,它们都提供比SRAM或eDRAM技术更小的占位面积。
NVM阵列可包括多个结点,其中每个结点可包括一个或多个NVM单元。包括此类单元的NVM设备可以被构造成交叉点状阵列,如图1所示,图1示出了用于使用欧姆定律加速矢量矩阵乘法(VMM)的NVM交叉点阵列100的示意图。交叉点结构是通过生物学方法引起的,其中每个突触前神经元对应于每个行,并且每个突触后神经元对应于每个列,因此每个交叉结点可为一个突触,该突触由一个NVM单元表示,在示例中示出为NVM单元110,但其它变型也是可能的。当在读取模式下使用时,即,NVM权重单元的电导值(Gnm)是固定的,NVM阵列可以使用欧姆定律在物理上直接加速VMM(矢量矩阵乘法)操作。来自每列的读出电流(Iout_m)是来自行的输入电压值(Vin_n)(以电压脉冲的幅度进行编码时)与该列上的NVM单元的固定电导值(Gnm)的点积。总之,来自所有列的读出电流包括输入电压矢量的VMM和NVM权重阵列矩阵。这种加速是至关重要的,因为VMM被大量用于大多数机器学习算法中。
通过使用模拟权重阵列而实现的此类模拟VMM可能会遇到许多挑战,诸如可用NVM单元电导水平被限制为一定数量的位。尽管ReRAM和PCM可以实现几乎连续的增量电导变化,但是实现32位权重精度是不现实的,而MRAM和NOR闪存主要是二进制型存储器单元。除了由NVM设备提出的限制之外,具有高精度外围电路可在面积和功率方面非常昂贵。研究已表明,将模拟权重阵列连接到数字电路的ADC构成功率消耗的大部分。因此,需要可以维持与软件基线(例如,32位)具体实施的性能相当的性能同时提供功率节省优点的低位精度权重存储器阵列和外围电路部件。
已经进行了研究,研究了对前馈神经网络如CNN和MLP进行二值化或量化的研究。对LSTM进行二值化比对CNN或MLP进行二值化更具挑战性,因为难以在递归神经网络中使用如批量归一化的技术。虽然已研究了量化的LSTM和位宽大小减小,诸如前向传播期间权重和激活(隐藏状态)的量化,并且使用直通估计器(STE)来传播梯度以用于权重更新,这些量化的LSTM研究通常不考虑真实的硬件具体实施约束,诸如在不仅仅是权重和隐藏状态上需要量化的那些硬件具体实施约束。
因此,虽然长短期记忆(LSTM)神经网络已广泛用于自然语言处理、语音识别、时间序列预测和其它顺序数据任务,当前的解决方案通常不能以充分降低存储器存储大小和计算复杂性的方式来充分减小嵌入式LSTM神经网络中的权重和激活的位宽。
发明内容
本发明描述了一种量化的神经网络架构,该量化的神经网络架构包括各种方面,诸如设备、系统、方法、装置、计算机程序产品等。
根据一个创新方面,本公开中描述的主题可体现在方法中,该方法包括:将数字输入信号转换为模拟输入信号;将数字先前隐藏状态(PHS)信号转换成模拟PHS信号;使用多个非易失性存储器(NVM)权重阵列,基于模拟输入信号和模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列;将VMM阵列转换成数字VMM值;以及将数字VMM值处理成新隐藏状态。
该具体实施和其它具体实施可各自任选地包括以下特征中的一者或多者:将数字VMM值处理成新隐藏状态还包括将数字VMM值处理成遗忘门值、输入门值、输出门值和新候选存储器单元值,并且基于遗忘门值、输入门值、输出门值和新候选存储器单元值来计算新隐藏状态;NVM权重阵列具有小于32位的位宽;NVM权重阵列包括电阻性交叉点阵列;将VMM阵列转换成数字VMM值包括添加ADC噪声分量;模拟输入信号、模拟PHS信号、多个NVM权重阵列和数字VMM值中的一者或多者被量化为约4位或更少;在方法的后续迭代中将新隐藏状态输入作为数字PHS;将数字VMM值处理成新隐藏状态还包括计算新存储器单元状态并基于新存储器单元状态计算新隐藏状态。
根据另一个创新方面,本公开中描述的主题可体现在一种设备中,该设备包括:第一数模转换器(DAC),该第一数模转换器被配置成将数字输入信号转换成模拟输入信号;第二DAC,该第二DAC被配置成将数字先前隐藏状态(PHS)信号转换成模拟PHS信号;多个非易失性存储器(NVM)权重阵列,该多个非易失性存储器(NVM)权重阵列被配置成基于模拟输入信号和模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列,该多个NVM权重阵列耦接到第一DAC和第二DAC;耦接到多个NVM权重阵列的一个或多个模数转换器(ADC),该一个或多个ADC被配置成将VMM阵列转换成数字VMM值;以及神经电路,该神经电路被配置成将数字VMM值处理成新隐藏状态。
该具体实施和其它具体实施可各自任选地包括以下特征中的一者或多者:一个或多个ADC包括多个ADC,并且神经电路包括耦接到多个ADC的多个激活部件,其中多个激活部件被配置成接收和处理数字VMM值;神经电路包括耦接到多个激活部件的算术电路,该算术电路被配置成基于从多个激活部件中的每个激活部件接收的输出来生成新隐藏状态;多个模拟积分和平均部件,该多个模拟积分和平均部件位于多个NVM权重阵列与ADC之间;神经电路被配置成计算新存储器单元状态,其中新隐藏状态由神经电路基于新存储器单元状态生成;并且第一DAC、第二DAC、多个NVM权重阵列和一个或多个ADC中的一者或多者的输出被量化为约4位或更少。
根据另一个创新方面,本公开中描述的主题可体现在电路中,该电路包括:用于将数字输入信号转换成模拟输入信号的装置;用于将数字先前隐藏状态(PHS)信号转换成模拟PHS信号的装置;用于基于模拟输入信号和模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列的装置;用于将VMM阵列转换成数字VMM值的装置;以及用于将数字VMM值处理成新隐藏状态的装置。
该具体实施和其它具体实施可各自任选地包括以下特征中的一者或多者:用于将数字VMM值处理成新隐藏状态的装置还包括用于将数字VMM值处理成遗忘门值、输入门值、输出门值和新候选存储器单元值的装置,以及用于基于遗忘门值、输入门值、输出门值和新候选存储器单元值来计算新隐藏状态的装置;模拟输入信号、模拟PHS信号和数字VMM值中的一者或多者被量化为约4位或更少;用于在后续循环中将新隐藏状态输入为数字PHS的装置;用于将数字VMM值处理成新隐藏状态的装置还包括用于计算新存储器单元状态的装置以及用于基于新存储器单元状态计算新隐藏状态的装置;并且使用多个非易失性存储器(NVM)权重阵列来进一步计算多个VMM阵列。
本文所述的创新技术包括贯穿本公开描述的许多优点。应当理解,本公开中使用的语言主要是出于可读性和指导目的而选择的,并不限制本文公开的主题的范围。
附图说明
本文介绍的技术通过示例而非限制的方式在附图中示出,在附图中,相同的附图标记用于指相似的元件。
图1示出了示例NVM交叉点阵列的示意图,该NVM交叉点阵列被配置成使用欧姆定律加速矢量矩阵乘法。
图2示出了示例NVM权重阵列加速LSTM单元的架构。
图3示出了示例Penn Treebank数据集结果。
图4示出了探索权重和ADC/DAC的位宽的示例Penn Treebank数据集结果。
图5示出了显示ADC噪声对Penn Treebank实施方案的示例影响的曲线图。
图6示出了显示权重噪声对Penn Treebank实施方案的示例影响的曲线图。
图7示出了使用冗余运行来解决ADC噪声的NVM权重阵列加速LSTM单元的另一示例架构的示意图。
图8示出了使用冗余运行来解决ADC噪声的方法的示例结果。
图9示出了用于抑制权重噪声的各种示例配置。
图10示出了显示通过使用每权重多个并行NVM单元来解决权重噪声影响而获得的示例结果的曲线图。
图11示出了用于对输入进行量化处理的示例方法的流程图。
图12示出了用于计算隐藏状态的示例方法的流程图。
图13示出了示出相对于位精度的示例分类准确度的曲线图。
图14示出了示例低位宽处理架构。
具体实施方式
本申请公开了创新的低位宽架构,其包括可以被训练、处理输入并有效地提供预测的系统、方法和其它方面。示例具体实施包括基于可以加速VMM(矢量矩阵乘法)操作的NVM(非易失性存储器)权重阵列的LSTM单元。本发明公开了关于NVM权重和外围电路部件(ADC和DAC)的位精度的创新方面,以及用于解决来自真实硬件设备的噪声影响的方法。还为量化的LSTM单元的各种所公开的具体实施提供各种电路。
有利地,本文所述的技术可以有效地量化LSTM神经网络,并且包括在降低存储器大小和计算复杂性的同时提供最先进的机器学习硬件设计。具体地讲,以举例的方式,本文所述的NVM权重、模数转换器(ADC)、数模转换器(DAC)和NVM交叉点阵列可以加速在用于人工神经网络(包括但不限于LSTM、CNN和MLP)的大多数机器学习算法中大量使用的VMM操作。然而,应当理解,本文所述的创新技术通常适用于任何类型的非易失性存储器架构,诸如但不限于NAND型闪存存储器、NOR型闪存存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(ReRAM)、自旋传递扭矩随机存取存储器(STT-RAM)、磁阻随机存取存储器(MRAM)、铁电RAM(FRAM)、相变存储器(PCM)等。
虽然在本文提供的各种具体实施中讨论了自然语言处理,但是该技术适用于各种使用案例,诸如语音识别、自然语言处理、信号处理和解释、数据安全性、一般分类、图像识别、推荐和预测等,并且可以接收和处理此类使用案例的任何合适的输入。以举例的方式,本文所述的量化架构可以被配置成接收和解释数据流、传感器数据和/或其它数据输入并处理它们以提供上下文相关的预测,诸如行为预测。例如,该技术可被实现为耦接到一个或多个传感器的便携式电子设备中的硬件和/或软件。在另外的示例中,量化架构可以用于视频分析、手写数字笔画识别和人类活动识别等。
在更具体的示例中,如本文所述,量化的LSTM设备可嵌入客户端设备中以为其提供更稳健的人工智能(AI)功能。此类具体实施将例如不需要设备具有网络数据连接以通过互联网将数据传输到服务器(例如,到云),因此可以用机器学习逻辑来处理数据。相反,配备有量化的LSTM设备的设备可以有利地提供离线AI功能(与当前数字助理解决方案(例如,SiriTM、Google VoiceTM、AlexaTM等)不同,该当前数字助理解决方案在发生网络不稳定或中断时不能起作用)。此外,配备有此类低功率嵌入式硬件的设备可以直接在功率和/或处理受限或受约束的系统(诸如移动设备和自动驾驶汽车)上运行深度神经网络算法。
示例传感器可包括但不限于光电传感器、陀螺仪、加速度计、心率监测器、位置传感器、触摸传感器、电容传感器、温度计、声音传感器、光传感器、接近传感器、热电偶、运动传感器、收发器等。耦接到和/或包括传感器和/或处理来自传感器的传感器数据的量化感知设备的示例设备可包括但不限于存储驱动器、便携式电子设备(例如,个人计算机、平板电脑、电话、可穿戴设备、数字助理)、语音激活设备、物联网(IOT)设备、车辆计算机、服务器、存储架等。
该技术可从一个或多个传感器接收输入,利用本文所述的低位宽架构有效地处理输入,从已处理的输入中学习,并且基于该处理提供预测。在一些情况下,具体实施可接收和处理从一个或多个传感器接收的原始或预处理的传感器数据,但其它变型也是可能的。
作为另一个示例,图13示出了曲线图1300,其示出根据本文所述的具体实施的量化感知训练的预测单元的分类准确性。具体地讲,用反映六种日常活动:行走、上楼、下楼、坐、站立和躺下的传感器数据训练预测单元,然后用于对反映人的各种不同活动的新传感器数据进行分类。如图所示,预测单元能够使用具有低位精度(例如,在这种情况下为1至5)的架构提供更准确(例如,在这种使用案例下为70%+)的用户活动的预测,而背景技术(其使用用于训练的全精度数字,浮点基线)不能在相当的低位宽/精度水平下提供类似准确的预测。
图2示出了量化的LSTM设备200的示例,并且图14示出了设备200的另一示例架构。如图2所示,设备200可包括多个DAC 208a……208n(同样单独地或共同地为208),诸如被配置成将数字输入信号204转换成模拟输入信号的第一DAC和被配置成将数字先前隐藏状态(PHS)206信号转换成模拟PHS信号的第二DAC。DAC 208可被耦接以向多个存储器阵列212a……212n(同样单独地或共同地为212)提供输入。在一些实施方案中,每个存储器阵列212可耦接到DAC 208(专用的或共享的)以从其接收输入。在一些实施方案中,一个DAC 208可供应存储器阵列212中的全部,每个存储器阵列212具有专用的DAC 208,或一些存储器阵列可共享DAC 208。
多个存储器阵列212a……212n可耦接到多个ADC 216a……216n(同样单独地或共同地为216),并且多个ADC 216a……216n可耦接到多个激活部件218a……218n。有利的是,可对设备200的各个部件进行量化。例如,第一DAC、第二DAC、多个NVM权重阵列和ADC中的一者或多者的输出可被量化到各种程度,如本文其它地方所述(例如,量化到约4位或更少)。
在一些实施方案中,激活部件218a……218n可为相同的部件或不同的部件。如图所示,激活部件218包括遗忘门218a、输入门218b、新候选存储器单元218c和输出门218n。遗忘门218a、输入门218b、新候选存储器单元218c和输出门218n可连接到对它们的输出执行操作的逻辑单元。
如图14中进一步所示,设备200的架构1400可包括逻辑电路1414(例如,在该实施方案中为乘法器和加法器电路),该逻辑电路1414耦接到存储器阵列212a……212n以接收它们的输出并进行处理。乘法器和加法器电路1414可耦接到缓冲器阵列1402以存储数据。在一些实施方案中,乘法器和加法器电路1414可将其计算的状态存储在缓冲器阵列1402中,以供DAC 208和/或其它部件访问。乘法器和加法器电路1414可耦接到激活函数单元1426,该激活函数单元可包括激活部件(诸如图2中的激活部件218),并且可向乘法器和加法器电路1414发送信号并从乘法器和加法器电路1414接收信号。
返回图2,激活部件218和运算电路240(其可包括乘法器、加法器和/或任何其它合适的逻辑部件)和/或其它合适的部件可共同构成神经电路214,该神经电路结合所述的其它部件提供本文所述的机器学习功能。例如,神经电路214可被配置成将数字VMM值处理成新隐藏状态。
尽管图2和图14中示出的具体实施反映了其中部件通过通信总线、布线和/或其它连接部件耦接的设备,应当理解,设想了其它变型,其中部件中的一个或多个可跨设备分布并且使用联网硬件经由网络耦接。
在反映示例NVM权重阵列加速LSTM单元的架构的图2所示的具体实施中,遗忘门218a可连接到乘法器226,输入门218b和新候选存储器单元218c可耦接到乘法器228,并且输出门218n可耦接到乘法器230。乘法器226、228和230分别执行乘法运算,并且将其输出提供给与其耦接的下游部件。具体地讲,乘法器226和228将其输出提供给加法器232,加法器继而对输出执行加法并将其提供给缩放部件220(例如,tanh函数)。Tanh函数可以缩放输出并将其输出为新存储器单元状态222。新存储器单元状态被发送到乘法器230,该乘法器将其与输出门218n的输出相乘。乘法器230的输出体现了新隐藏状态224,该新隐藏状态被提供作为下一个操作循环(206)的输入。新存储器单元状态222也被提供作为到乘法器226的输入以用于下一个操作循环。
如图2中的阴影所示,量化的LSTM设备200的某些元素可被量化。下面进一步描述各种示例量化水平。在更具体的非限制性示例中,如本文所述的两个示例自然语言处理任务所示,LSTM单元中的4位NVM权重单元连同至少2位ADC/DAC可以递送与浮点基线相当的性能。对于用于字符级预测的更简单的数据集,2位NVM权重单元连同2位ADC/DAC也不显示性能的明显下降。虽然ADC读取噪声和NVM权重噪声均可以损害训练结果,但这些问题可以使用滤波器和/或采用冗余运行来解决,该冗余运行使用多个并行NVM单元作为一个突触权重元素,这可以使由设备变化引起的权重噪声平均化。
在训练或推断期间,可在量化的LSTM设备200中使用前向和后向传播。例如但不限于,在训练和推断期间,前向传播可用于量化权重、内部激活(例如,ADC)和输入/输出(例如,DAC)。附加地或另选地,在训练期间,可使用直通估计器(STE)来实现后向传播以传播梯度(使用浮点数来进行权重更新)。
在示例硬件加速量化的LSTM实施方案中,LSTM单元的前向传播操作包含4个矢量矩阵乘法、5个非线性激活、3个元素级乘法和1个元素级加法。如公式(1)至(4)所示,将先前时间步长ht-1的隐藏状态与当前步长xt的输入级联,以形成总输入矢量,该总输入矢量被馈送到权重阵列Wf、Wi、Wo和Wc中以执行VMM。VMM结果可以分别传递到4个非线性激活函数单元218中,以得到遗忘门ft、输入门it、输出门ot和新候选存储器单元c_ct的值。新存储器单元ct由新信息和旧信息构成,该新信息期望通过将新候选存储器c_ct与输入门it相乘来添加,并且旧信息期望通过将旧存储器单元ct-1与遗忘门ft相乘而不被遗忘,如公式(5)所示。最终隐藏状态ht由乘法器230通过将输出门ot和新存储器单元ct的激活相乘来计算,如公式(6)所示。在反向传播期间,Wf、Wi、Wo和Wc的值通常基于随机梯度下降根据训练算法进行更新。
ft=sigmoid([xt,ht-1]Wf) (1)
it=sigmoid([xt,ht-1]Wi) (2)
ot=sigmoid([xt,ht-1]Wo) (3)
c_ct=tanh([xt,ht-1]Wc) (4)
ct=ft·ct-1+it·c_ct (5)
ht=ot·tanh(ct) (6)
在示例NVM权重阵列加速LSTM单元中,用于计算遗忘门、输入门、输出门和新候选存储器单元的4矢量矩阵乘法可以由NVM权重阵列加速,如图2所示。可以将表示Wf、Wi、Wo和Wc的四(4)个权重阵列级联到整个NVM阵列中,以并行计算VMM结果。由于在DAC 208之后处理的输入xt和先前隐藏状态ht-1206为模拟电压形式,NVM权重阵列212为电阻性交叉点阵列,因此VMM结果为模拟电流形式,其可以通过ADC216以被转换成数字电压。然后可以将表示VMM结果的数字电压馈送到不同的激活函数单元218(sigmoid或tanh)中,以得到遗忘门ft、输入门it、输出门ot和新候选存储器单元c_ct的最终值,其随后可在其它硬件部件中处理以生成新隐藏状态ht(224),然后可以在下一个循环中将该新隐藏状态馈送到一个或多个DAC 208中作为总输入矢量的一部分。
有利地,即使在使用较低位宽的NVM单元连同ADC/DAC时,基于NVM阵列架构的量化的LSTM神经网络也可以提供与浮点基线(32位)具体实施相当的准确性能。这可以有利地降低成本和资源利用率,因为通常ADC或DAC的位宽越高,成本和面积/功率消耗就越高。此外,在可能对单个NVM单元上的可用数量的稳定电阻状态存在限制的NVM特定具体实施中,本文所述的技术可以降低权重的量化位精度。这使得能够使用更宽类别的NVM,包括通常不适用于高精度位水平(例如,32位)具体实施的那些NVM。如上所述,即使ReRAM和PCM可以实现几乎连续的增量电导变化,但是实现32位权重精度是不现实的,而MRAM和NOR闪存主要是二进制型存储器单元。
根据具体实施,图2中突出显示的块(与底部的“量化”标签相关联)中的一些或全部的输出可以被量化成小于32位的值,诸如在1位和16位之间,诸如8位、4位、2位或任何其它合适的值。在一些实施方案中,使用4位或小于4位的值。需注意,在一些实施方案中,激活单元218还可自然量化为数字电路以实现此类激活函数,诸如通过查找表(LUT)。
对LSTM权重阵列和电路部件的示例位精度要求。
为了基于NVM阵列架构评估所公开的量化的LSTM神经网络的示例具体实施的性能,可使用各种自然语言处理任务,诸如Penn Treebank和国家名称预测。如本文所述,使用权重和ADC/DAC的各种不同示例位精度,并将其与浮点基线进行比较。取决于使用案例,输入嵌入和输出嵌入可以量化或可以不量化。
Penn Treebank。
在以下示例中,Penn Treebank数据集包含以Treebank样式注释的来自《华尔街日报》(Wall Street Journal)材料的10K个唯一单词。与Treebank语料库一样,任务是预测下一个单词,从而以每单词的困惑度(PPW)来测量性能。困惑度大致为正确预测的概率的倒数。隐藏状态大小固定在300。
图3示出了曲线图300中的Penn Treebank数据集结果。从图3中可以看出,随着训练进行,对于浮点(FP)基线、2位权重2位ADC/DAC和4位权重4位ADC/DAC案例,验证困惑度继续减小。1位权重2位ADC/DAC示例案例显示,由于验证困惑度波动且无法收敛,因此训练效果较差,而4位权重4位ADC/DAC案例则与FP基线产生竞争性的训练结果,而没有明显的劣化。换句话讲,图3示出了对于1位权重2位ADC/DAC案例,困惑度不收敛,而其它位宽配置产生成功的训练。其还示出了4位权重4位ADC/DAC可以与FP生成接近等效的训练结果。
为了完全探索对权重和ADC/DAC的位宽要求,测试了从1位到4位的位精度的所有组合。图4示出了曲线图400中的Penn Treebank数据集结果,其完全探索权重的位宽和ADC/DAC,并且其中PPW被测量为10个训练期之后的验证困惑度。如图所示,4位权重连同至少2位ADC/DAC可能是期望的,以实现与浮点基线相当的结果(小于5%的困惑度增加)。还可以粗略地推断,对于LSTM网络的一般性能,权重的高位精度比ADC/DAC的高位精度发挥相对更重要的作用,因为在1位权重2位ADC/DAC处实现的PPW高于在2位权重1位ADC/DAC处实现的PPW。通过比较2位权重4位ADC/DAC案例性能与4位权重2位ADC/DAC案例性能,可以观察到类似的现象。因此,与使用高精度外围设备相比,提高NVM单元的电导水平的分辨率可能具有更高的优先级,尽管两者在一些情况下都可适用。
字符预测。
比Penn Treebank更简单的任务是国家名称预测,其中预测下一个字符而不是下一个单词。这里的困惑度度量是针对每个字符的。隐藏状态大小固定在256。在8,000次训练迭代之后,测量训练困惑度和准确性。从表I中可以看出,就训练困惑度和准确性而言,与浮点基线(32位)情况相比,2位权重2位ADC/DAC足以在5%劣化内产生结果。与Penn Treebank的结果相比,在该示例情况下,对于更简单的字符预测任务,需要对权重和ADC/DAC的较低位精度要求。为了从这两个任务得出结论和总结,4位权重4位ADC/DAC可以确保在线训练性能的几乎为零的劣化。此类位宽要求也自然地有助于确保结果在此未示出的推断的性能,但较低位权重和位ADC/DAC值的其它组合也可以根据具体实施在可接受的参数内产生结果。
表I.国家名称预测结果。在不同位宽配置下的训练困惑度和准确性
设备和电路噪声的示例影响。
除了NVM权重单元和ADC/DAC电路部件的低位精度之外,还可考虑来自硬件的非理想影响。例如,硬件噪声可以广义地分类为读取噪声和写入噪声。当在前向传播期间执行读出操作时,读取噪声可以反映在ADC噪声上,而当在反向传播期间执行权重更新之后,写入噪声可以反映在权重噪声上。
ADC噪声的示例影响。
ADC读取噪声可以使正确的VMM结果失真。为了简单地对主要来自ADC内的晶体管的ADC噪声进行建模,可在ADC量化和激活函数单元之前将附加噪声项添加到遗忘门、输入门、输出门和新候选存储器单元处的值。噪声遵循高斯分布,其中标准偏差与总输入电流范围成比例。例如,在遗忘门处:
ft=sigmoid([xt,ht-1]Wf+Z) (7)
Z~N(0,σ2),σ=α(Imax-Imin) (8)
Z是具有与[xt,ht-1]Wf相同尺寸的ADC噪声矢量。其遵循高斯分布,均值为零,标准偏差σ介于最大输入信号范围Imax至Imin的0%到20%之间。输入VMM信号范围α的百分比被定义为ADC噪声比。对于实际ADC硬件情况,使用0至20%的α可能是现实的,这取决于使用情况,但也可应用其它值。
图5示出了显示ADC噪声对Penn Treebank实施方案的影响的曲线图500。在这些结果中考虑了权重和ADC/DAC的一些示例位宽配置以与浮点基线进行比较。从图5中可以看出,ADC噪声对训练性能的影响相当小,尤其是当ADC位宽低时,诸如2位。该实验在PennTreebank语料库上进行,该语料库测量10个训练期后的验证困惑度。
权重噪声的影响。
类似地,还可考虑由NVM设备变化引起的权重噪声的影响。由于主要是外部制造问题或固有的设备随机性质,因此当涉及NVM阵列操作时,空间设备到设备的变化可能是相关的。代替将电阻编程到期望值,不同单元的实际电阻值可能会偏离理想值,尤其是当编程后不存在读取验证时。并且这可能潜在地损害训练或推断结果。为了对权重噪声进行建模,可将附加噪声项添加到权重阵列的值。噪声遵循高斯分布,其中标准偏差与总权重范围成比例。例如,在遗忘门处:
ft=sigmoid([xt,ht-1](Wf+Z)) (9)
Z~N(0,σ2),σ=β(wmax-wmin) (10)
Z为具有与Wf相同的尺寸的权重噪声矩阵。其遵循高斯分布,均值为零,标准偏差σ介于总权重范围wmax至wmin的0%到20%之间。权重范围β的百分比被定义为权重噪声比。在一些情况下,对于实际NVM设备性能,使用0%到20%的β可能是现实的,但也可应用其它值。
图6示出了显示权重噪声对Penn Treebank实施方案的影响的曲线图600。在结果中考虑了权重和ADC/DAC的一些示例位宽配置以与浮点基线进行比较。从图6中可以看出,在相同的Penn Treebank实验设置下,权重噪声似乎比ADC噪声对LSTM网络训练性能具有更有害的影响。
示例噪声容忍技术。
有利的是,虽然不是必需的并且取决于使用案例,但可以使用以下方法,而无需修改训练算法或使用任何错误校正后的方法,该错误校正后的方法通常在需要时引入显著的延迟、空间和功率开销。具体地,该方法可反而增加运行循环或区域中的合理冗余以换取更好的LSTM性能,但其它混合方法也可根据使用案例来应用和使用。
使用冗余运行。
为了解决ADC读取噪声,可以添加ADC噪声分量,诸如平均分量。在一些实施方案中,冗余运行可以用于对ADC量化和激活函数单元之前的结果进行平均,如图7中的平均块(例如,模拟积分和平均)块702所示,其示出了使用冗余运行来解决ADC噪声的NVM权重阵列加速LSTM设备的另一示例架构的示意图。如图所示,模拟积分和平均单元702被添加在存储器阵列212和ADC 216之间(例如,在NVM阵列212之后并且在ADC 702之前),使得遗忘门、输入门、输出门和新候选存储器单元的值可为冗余运行的平均结果,并且然后可以用于后续元素级计算。在一些另外的实施方案中,合适的平均块可位于其它地方,诸如在激活单元和元素级计算之间。
使用具有4位权重4位ADC/DAC配置的Penn Treebank语料库测试该方法,并且表明对于20%ADC噪声,使用3或5个冗余运行足以在一定程度上改善训练性能。图8示出了显示使用冗余运行来解决ADC噪声影响的方法的结果的示例曲线图800。虽然在示出的情况下,改善是适度的,但开始时性能劣化并不严重。在严重的情况下,改善可相应地更大。
使用多个并行NVM单元作为一个突触。
为了解决权重噪声/设备变化问题,可并行连接多个NVM单元以表示一个突触权重元素,而不是仅使用一个NVM单元作为一个突触权重元素。电阻性交叉点阵列中的此种具体实施在图9中示出,图9示出了用于抑制权重噪声的各种示例配置900和950(例如,并行NVM权重单元)。具体地讲,(a)示出了使用一个NVM单元来表示一个突触权重的第一方法,并且(b)示出了使用三个并行NVM单元来表示一个权重元素的另一方法作为示例具体实施(仅作为示例示出3个,因为可以使用其它数字)。可以通过从多个并行单元获取总电流来统计平均变化或噪声影响。
从对10%权重噪声示例案例的模拟测试可以看出,仅使用3个或5个并行NVM单元可以显著改善训练性能。图10示出了显示通过使用每权重多个并行NVM单元来解决权重噪声影响而获得的示例结果的曲线图1000。在具有4位权重4位ADC/DAC配置的Penn Treebank语料库上运行该模拟。通过优化这些并行NVM设备的布局,诸如通过共享图9所示的字线(WL)和位线(BL),面积开销可有利地减少到相对较小的量。
图11示出了用于对输入进行量化处理的示例方法1100的流程图。在框1102中,方法1100将数字输入信号转换成模拟输入信号。在一些实施方案中,数字信号可包括来自耦接到例如DAC 208(例如,直接地或经由中间部件)的一个或多个传感器的传感器数据。在框1104中,方法1100将数字先前隐藏状态(PHS)信号转换成模拟PHS信号。例如,DAC 208可从缓冲器阵列1402和/或直接从算术逻辑单元(例如,1414)接收先前状态。在框1106中,方法1100使用多个非易失性存储器(NVM)权重阵列(例如,212)基于模拟输入信号和模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列。在一些具体实施中,NVM权重阵列具有小于32位的位宽和/或可包括电阻性交叉点阵列。在框1108中,方法1100将VMM阵列转换成数字VMM值,并且在框1110中,方法1100将数字VMM值处理成新隐藏状态。在一些具体实施中,将VMM阵列转换成数字VMM值可包括添加ADC噪声分量。
图12示出了用于计算隐藏状态的示例方法1200的流程图。在框1202中,方法1200将数字VMM值处理成遗忘门值、输入门值、输出门值和新候选存储器单元值。在框1204中,方法1200基于遗忘门值、输入门值、输出门值和新候选存储器单元值来计算新隐藏状态。在后续循环中,方法1200可在方法1100的后续迭代中将新隐藏状态输入为先前隐藏状态,诸如在框1104中。
出于解释的目的,已参考各种实施方案和示例描述了前面描述。然而,以上例示性论述并非旨在为穷举性的或者将要求保护的发明限制于所公开的精确形式。鉴于以上教导,许多修改和变型是可能的。选择并描述了各种实施方案和示例以便最好地解释本文所述的创新技术的原理及其实际应用,从而使本领域的其它技术人员能够利用创新技术进行各种修改,以适合预期的特定用途。
Claims (24)
1.一种方法,包括:
将数字输入信号转换成模拟输入信号;
将数字先前隐藏状态(PHS)信号转换成模拟PHS信号;
使用多个非易失性存储器(NVM)权重阵列,基于所述模拟输入信号和所述模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列;
将所述VMM阵列转换成数字VMM值;以及
将所述数字VMM值处理成新隐藏状态。
2.根据权利要求1所述的方法,其中将所述数字VMM值处理成所述新隐藏状态还包括:
将所述数字VMM值处理成遗忘门值、输入门值、输出门值和新候选存储器单元值;以及
基于所述遗忘门值、所述输入门值、所述输出门值和所述新候选存储器单元值来计算所述新隐藏状态。
3.根据权利要求1所述的方法,其中所述NVM权重阵列具有小于32位的位宽。
4.根据权利要求1所述的方法,其中所述NVM权重阵列包括电阻性交叉点阵列。
5.根据权利要求1所述的方法,其中将所述VMM阵列转换成所述数字VMM值包括添加模数转换(ADC)噪声分量。
6.根据权利要求5所述的方法,其中添加所述ADC噪声分量包括在ADC量化之前或之后添加所述ADC噪声分量。
7.根据权利要求1所述的方法,其中所述模拟输入信号、所述模拟PHS信号、所述多个NVM权重阵列和所述数字VMM值中的一者或多者被量化为约4位或更少。
8.根据权利要求1所述的方法,还包括在所述方法的后续迭代中将所述新隐藏状态输入作为所述数字PHS。
9.根据权利要求1所述的方法,其中将所述数字VMM值处理成所述新隐藏状态还包括:
计算新存储器单元状态;以及
基于所述新存储器单元状态计算所述新隐藏状态。
10.一种设备,包括:
第一数模转换器(DAC),所述第一DAC被配置成将数字输入信号转换成模拟输入信号;
第二DAC,所述第二DAC被配置成将数字先前隐藏状态(PHS)信号转换成模拟PHS信号;
多个非易失性存储器(NVM)权重阵列,所述多个NVM权重阵列被配置成基于所述模拟输入信号和所述模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列,所述多个NVM权重阵列耦接到所述第一DAC和所述第二DAC;
耦接到所述多个NVM权重阵列的一个或多个模数转换器(ADC),所述一个或多个ADC被配置成将所述VMM阵列转换成数字VMM值;和
神经电路,所述神经电路被配置成将所述数字VMM值处理成新隐藏状态。
11.根据权利要求10所述的设备,其中所述多个NVM权重阵列包括多个电阻性交叉点阵列。
12.根据权利要求10所述的设备,其中:
来自所述多个NVM权重阵列的阵列包括多个结点;并且
所述多个结点中的每个结点包括一个或多个NVM单元。
13.根据权利要求10所述的设备,其中:
所述一个或多个ADC包括多个ADC;并且
所述神经电路包括耦接到所述多个ADC的多个激活部件,所述多个激活部件被配置成接收和处理数字VMM值。
14.根据权利要求13所述的设备,其中所述神经电路还包括耦接到所述多个激活部件的算术电路,所述算术电路被配置成基于从所述多个激活部件中的每一个激活部件接收的输出来生成所述新隐藏状态。
15.根据权利要求13所述的设备,还包括位于所述多个NVM权重阵列与所述多个ADC之间的多个模拟积分和平均部件。
16.根据权利要求13所述的设备,还包括位于所述多个激活部件之后的多个模拟积分和平均部件。
17.根据权利要求10所述的设备,其中所述神经电路被进一步配置成计算新存储器单元状态,其中所述新隐藏状态由所述神经电路基于所述新存储器单元状态生成。
18.根据权利要求10所述的设备,其中所述第一DAC、所述第二DAC、所述多个NVM权重阵列和所述一个或多个ADC中的一者或多者的输出被量化为约4位或更少。
19.一种电路,包括:
用于将数字输入信号转换成模拟输入信号的装置;
用于将数字先前隐藏状态(PHS)信号转换成模拟PHS信号的装置;
用于基于所述模拟输入信号和所述模拟PHS信号来计算多个矢量矩阵乘法(VMM)阵列的装置;
用于将所述VMM阵列转换成数字VMM值的装置;和
用于将所述数字VMM值处理成新隐藏状态的装置。
20.根据权利要求19所述的电路,其中用于将所述数字VMM值处理成所述新隐藏状态的所述装置还包括:
用于将所述数字VMM值处理成遗忘门值、输入门值、输出门值和新候选存储器单元值的装置;以及
用于基于所述遗忘门值、所述输入门值、所述输出门值和所述新候选存储器单元值来计算所述新隐藏状态的装置。
21.根据权利要求19所述的电路,其中所述模拟输入信号、所述模拟PHS信号和所述数字VMM值中的一者或多者被量化为约4位或更少。
22.根据权利要求19所述的电路,还包括用于在后续循环中将所述新隐藏状态输入为所述数字PHS的装置。
23.根据权利要求19所述的电路,其中用于将所述数字VMM值处理成所述新隐藏状态的所述装置还包括:
用于计算新存储器单元状态的装置;以及
用于基于所述新存储器单元状态计算所述新隐藏状态的装置。
24.根据权利要求19所述的电路,其中使用多个非易失性存储器(NVM)权重阵列来进一步计算所述多个VMM阵列。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862780083P | 2018-12-14 | 2018-12-14 | |
US62/780,083 | 2018-12-14 | ||
US16/452,110 | 2019-06-25 | ||
US16/452,110 US11074318B2 (en) | 2018-12-14 | 2019-06-25 | Hardware accelerated discretized neural network |
PCT/US2019/046924 WO2020122994A1 (en) | 2018-12-14 | 2019-08-16 | Hardware accelerated discretized neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111656368A true CN111656368A (zh) | 2020-09-11 |
CN111656368B CN111656368B (zh) | 2024-01-23 |
Family
ID=71071590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006345.9A Active CN111656368B (zh) | 2018-12-14 | 2019-08-16 | 硬件加速的离散式神经网络 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11074318B2 (zh) |
EP (1) | EP3704637A4 (zh) |
CN (1) | CN111656368B (zh) |
WO (1) | WO2020122994A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181895A (zh) * | 2020-09-02 | 2021-01-05 | 上海交通大学 | 可重构架构、加速器、电路部署和计算数据流方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018137177A1 (zh) * | 2017-01-25 | 2018-08-02 | 北京大学 | 一种基于nor flash阵列的卷积运算方法 |
US11348002B2 (en) * | 2017-10-24 | 2022-05-31 | International Business Machines Corporation | Training of artificial neural networks |
US11580365B2 (en) * | 2019-07-03 | 2023-02-14 | Honda Motor Co., Ltd. | Sensor fusion |
US11610125B2 (en) | 2019-07-03 | 2023-03-21 | Honda Motor Co., Ltd. | Sensor fusion |
CN110475119A (zh) * | 2019-08-12 | 2019-11-19 | 北京大学 | 基于flash存算阵列的图像压缩系统和方法 |
US11449577B2 (en) * | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
US11615304B1 (en) * | 2020-03-05 | 2023-03-28 | Ambarella International Lp | Quantization aware training by constraining input |
US11430516B2 (en) | 2020-04-06 | 2022-08-30 | Crossbar, Inc. | Distinct chip identifier sequence utilizing unclonable characteristics of resistive memory on a chip |
US11823739B2 (en) * | 2020-04-06 | 2023-11-21 | Crossbar, Inc. | Physically unclonable function (PUF) generation involving high side programming of bits |
US11727986B2 (en) * | 2020-04-06 | 2023-08-15 | Crossbar, Inc. | Physically unclonable function (PUF) generation involving programming of marginal bits |
KR20210143614A (ko) * | 2020-05-20 | 2021-11-29 | 삼성전자주식회사 | 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법 |
TWI782288B (zh) * | 2020-06-29 | 2022-11-01 | 大陸商珠海興芯存儲科技有限公司 | 仿類比記憶體運算電路 |
WO2022006733A1 (en) * | 2020-07-07 | 2022-01-13 | NeoNexus Pte. Ltd. | Apparatus and method for matrix multiplication using processing-in-memory |
US20220013239A1 (en) * | 2020-07-12 | 2022-01-13 | International Business Machines Corporation | Time-window based attention long short-term memory network of deep learning |
WO2022015967A1 (en) * | 2020-07-15 | 2022-01-20 | Spero Devices, Inc. | High endurance memory circuitry |
CN113760703A (zh) * | 2020-09-07 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种Mock数据的生成方法、装置、设备及存储介质 |
CN112396176B (zh) * | 2020-11-11 | 2022-05-20 | 华中科技大学 | 一种硬件神经网络批归一化系统 |
US20220180156A1 (en) * | 2020-12-03 | 2022-06-09 | International Business Machines Corporation | FeFET UNIT CELLS FOR NEUROMORPHIC COMPUTING |
JP2024518884A (ja) * | 2021-05-18 | 2024-05-08 | シリコン ストーリッジ テクノロージー インコーポレイテッド | 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用のスプリットアレイアーキテクチャ |
CN115964458B (zh) * | 2021-10-13 | 2024-06-14 | 本源量子计算科技(合肥)股份有限公司 | 文本的量子线路确定方法、装置、存储介质及电子设备 |
US20240160348A1 (en) * | 2022-11-14 | 2024-05-16 | International Business Machines Corporation | Accurate programming of analog memory devices of in-memory processing devices having a crossbar array structure |
US20240168844A1 (en) * | 2022-11-22 | 2024-05-23 | Silicon Storage Technology, Inc. | Grouping and error correction for non-volatile memory cells |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258934A (en) * | 1990-05-14 | 1993-11-02 | California Institute Of Technology | Charge domain bit serial vector-matrix multiplier and method thereof |
US7822698B1 (en) * | 2007-03-23 | 2010-10-26 | Hrl Laboratories, Llc | Spike domain and pulse domain non-linear processors |
CN106372723A (zh) * | 2016-09-26 | 2017-02-01 | 上海新储集成电路有限公司 | 基于神经网络芯片的存储结构及其存储方法 |
CN107679622A (zh) * | 2017-09-06 | 2018-02-09 | 清华大学 | 一种面向神经网络算法的模拟感知计算架构 |
CN108734271A (zh) * | 2017-04-14 | 2018-11-02 | 三星电子株式会社 | 神经形态权重单元及其形成的方法以及人工神经网络 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2983664B1 (fr) | 2011-12-05 | 2013-12-20 | Commissariat Energie Atomique | Convertisseur analogique-numerique et circuit neuromorphique utilisant un tel convertisseur |
US10373050B2 (en) | 2015-05-08 | 2019-08-06 | Qualcomm Incorporated | Fixed point neural network based on floating point neural network quantization |
JP6702596B2 (ja) | 2016-01-18 | 2020-06-03 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法 |
US10496855B2 (en) * | 2016-01-21 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Analog sub-matrix computing from input matrixes |
US10831444B2 (en) | 2016-04-04 | 2020-11-10 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
US9910827B2 (en) * | 2016-07-01 | 2018-03-06 | Hewlett Packard Enterprise Development Lp | Vector-matrix multiplications involving negative values |
US10565493B2 (en) | 2016-09-22 | 2020-02-18 | Salesforce.Com, Inc. | Pointer sentinel mixture architecture |
KR20180077689A (ko) | 2016-12-29 | 2018-07-09 | 주식회사 엔씨소프트 | 자연어 생성 장치 및 방법 |
EP3652680A4 (en) | 2017-07-11 | 2021-04-21 | Technion Research & Development Foundation Limited | RECONFIGURABLE DAC IMPLEMENTED BY A MEMRISTOR BASED NEURAL NETWORK |
US11526728B2 (en) * | 2018-04-09 | 2022-12-13 | Microsoft Technology Licensing, Llc | Deep learning model scheduling |
US11443175B2 (en) * | 2018-07-11 | 2022-09-13 | Silicon Storage Technology, Inc. | Compensation for reference transistors and memory cells in analog neuro memory in deep learning artificial neural network |
-
2019
- 2019-06-25 US US16/452,110 patent/US11074318B2/en active Active
- 2019-08-16 EP EP19888250.8A patent/EP3704637A4/en active Pending
- 2019-08-16 WO PCT/US2019/046924 patent/WO2020122994A1/en unknown
- 2019-08-16 CN CN201980006345.9A patent/CN111656368B/zh active Active
-
2021
- 2021-07-08 US US17/370,716 patent/US11741188B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258934A (en) * | 1990-05-14 | 1993-11-02 | California Institute Of Technology | Charge domain bit serial vector-matrix multiplier and method thereof |
US7822698B1 (en) * | 2007-03-23 | 2010-10-26 | Hrl Laboratories, Llc | Spike domain and pulse domain non-linear processors |
CN106372723A (zh) * | 2016-09-26 | 2017-02-01 | 上海新储集成电路有限公司 | 基于神经网络芯片的存储结构及其存储方法 |
CN108734271A (zh) * | 2017-04-14 | 2018-11-02 | 三星电子株式会社 | 神经形态权重单元及其形成的方法以及人工神经网络 |
CN107679622A (zh) * | 2017-09-06 | 2018-02-09 | 清华大学 | 一种面向神经网络算法的模拟感知计算架构 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181895A (zh) * | 2020-09-02 | 2021-01-05 | 上海交通大学 | 可重构架构、加速器、电路部署和计算数据流方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210334338A1 (en) | 2021-10-28 |
US11741188B2 (en) | 2023-08-29 |
EP3704637A4 (en) | 2021-02-17 |
CN111656368B (zh) | 2024-01-23 |
WO2020122994A1 (en) | 2020-06-18 |
EP3704637A1 (en) | 2020-09-09 |
US11074318B2 (en) | 2021-07-27 |
US20200192970A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111656368B (zh) | 硬件加速的离散式神经网络 | |
Marinella et al. | Multiscale co-design analysis of energy, latency, area, and accuracy of a ReRAM analog neural training accelerator | |
Long et al. | ReRAM-based processing-in-memory architecture for recurrent neural network acceleration | |
CN108009640B (zh) | 基于忆阻器的神经网络的训练装置及其训练方法 | |
US11348002B2 (en) | Training of artificial neural networks | |
US11501130B2 (en) | Neural network hardware accelerator architectures and operating method thereof | |
Stromatias et al. | Robustness of spiking deep belief networks to noise and reduced bit precision of neuro-inspired hardware platforms | |
US10818344B1 (en) | Artificial neural network functionality using dynamic random-access memory | |
US11531898B2 (en) | Training of artificial neural networks | |
US11386319B2 (en) | Training of artificial neural networks | |
Cai et al. | Training low bitwidth convolutional neural network on RRAM | |
CN113837371A (zh) | 用于实现神经网络的神经形态装置和方法 | |
Cho et al. | An on-chip learning neuromorphic autoencoder with current-mode transposable memory read and virtual lookup table | |
Kang et al. | Flash-based computing in-memory scheme for IOT | |
Spoon et al. | Accelerating deep neural networks with analog memory devices | |
Ma et al. | Non-volatile memory array based quantization-and noise-resilient LSTM neural networks | |
Agarwal et al. | Designing an analog crossbar based neuromorphic accelerator | |
Sheikhfaal et al. | Energy-efficient recurrent neural network with MRAM-based probabilistic activation functions | |
García-Redondo et al. | Training DNN IoT applications for deployment on analog NVM crossbars | |
Okazaki et al. | Analog-memory-based 14nm Hardware Accelerator for Dense Deep Neural Networks including Transformers | |
Oshio et al. | A Compressed Spiking Neural Network Onto a Memcapacitive In-Memory Computing Array | |
Babu et al. | SpinAPS: A high-performance spintronic accelerator for probabilistic spiking neural networks | |
Dampfhoffer | Models and algorithms for implementing energy-efficient spiking neural networks on neuromorphic hardware at the edge | |
Kim | Energy efficient and error resilient neuromorphic computing in VLSI | |
KR102672586B1 (ko) | 인공신경망의 훈련 방법 및 장치 |
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 |