长短期记忆LSTM网络计算设备以及计算设备制造技术

技术编号:28625278 阅读:16 留言:0更新日期:2021-05-28 16:21
本申请公开了一种长短期记忆LSTM网络计算设备以及计算设备,属于神经网络技术领域。该LSTM网络计算设备通过将目标输入向量以及对应的目标权值向量存储在任一存储阵列中,点乘求和模块可以从任一存储阵列内读取目标输入向量以及对应的目标权值向量,并获取对任一存储阵列对应的点乘结果的和值,激活运算模块对该和值进行激活操作,得到当前时刻的输出向量,从而在内存中实现了LSTM网络计算,减少了LSTM网络数据在内存和处理器之间的传输,解决了内存墙的问题。

【技术实现步骤摘要】
长短期记忆LSTM网络计算设备以及计算设备
本申请涉及神经网络
,特别涉及一种长短期记忆LSTM网络计算设备以及计算设备。
技术介绍
随着长短期记忆(long-shorttermmemory,LSTM)网络的发展,通过LSTM网络计算可以进行文字识别、手势识别以及语音识别等,由于LSTM网络计算是一种数据量较大的复杂型迭代计算,当计算设备的处理器采用冯诺依曼计算架构进行LSTM网络计算时,处理器会先将LSTM网络的权值存储至内存,通常,内存为动态随机存取存储器(dynamicrandomaccessmemory,DRAM)。然后,数据总线将DRAM中存储的数据转移至神经网络计算节点,在神经网络计算节点中完成LSTM网络的计算。当计算完成后,数据总线将计算结果输出至DRAM。由于LSTM网络计算过程中需要从DRAM中反复读取权值和读写中间计算结果,数据传输量巨大,当处理器工作频率要求较高时,连接处理器和DRAM数据总线带宽将不足以传输处理器要求的数据,就会极易出现内存墙的问题。
技术实现思路
本申请提供了一种长短期记忆LSTM网络计算设备以及计算设备,能够在内存中完成神经网络计算,解决内存墙的问题。该技术方案如下:第一方面,提供了一种长短期记忆LSTM网络计算设备,所述LSTM网络计算设备包括:存储模块,所述存储模块包括第一存储阵列以及第二存储阵列,所述第一存储阵列以及第二存储阵列中的任一存储阵列包括多行多列动态随机存取存储器DRAM单元,所述任一存储阵列的第一行DRAM单元用于存储LSTM网络的隐含层节点的目标输入向量,所述任一存储阵列的第二行DRAM单元用于存储与所述目标输入向量对应的目标权值向量,所述目标输入向量包括第一输入向量或第二输入向量,所述第一输入向量包括所述LSTM网络当前时刻的输入数据,所述第二输入向量包括所述隐含层节点的上一时刻的输出数据;点乘求和模块,与所述存储模块连接,用于对所述目标输入向量以及所述目标输入向量对应的目标权值向量进行点乘计算,得到所述任一存储阵列对应的点乘结果,对每个存储阵列对应的点乘结果进行求和计算,得到和值;激活运算模块,与所述点乘求和模块连接,用于对所述和值进行激活操作,得到所述隐含层节点的当前时刻的输出向量。该LSTM网络计算设备通过将目标输入向量以及对应的目标权值向量存储在任一存储阵列中,点乘求和模块可以从任一存储阵列内读取目标输入向量以及对应的目标权值向量,并获取对任一存储阵列对应的点乘结果的和值,激活运算模块对该和值进行激活操作,得到当前时刻的输出向量,从而在内存中实现了LSTM网络计算,减少了LSTM网络数据在内存和处理器之间的传输,解决了内存墙的问题。在一种可能的实现方式中,所述任一存储阵列的第一行DRAM单元依次存储多个所述目标输入向量,所述目标权值向量包括多个权值向量,所述任一存储阵列的第二行DRAM单元依次存储有多个权值向量,每个权值向量对应所述任一存储阵列的第一行DRAM单元存储的一个目标输入向量;所述任一存储阵列的第一行DRAM单元中的一个DRAM单元用于存储一个目标输入向量中的一个输入数据的一位数值,所述任一存储阵列的第二行DRAM单元中的一个DRAM单元用于存储一个权值向量中的一个权值的一位数值。在一种可能的实现方式中,所述激活运算模块包括:多个激活单元,每个激活单元与所述点乘求和模块连接,用于对所述点乘求和模块输出的一个和值进行激活操作,所述一个和值为一个目标输入向量和所述一个目标输入向量对应的一个权值向量的点乘计算结果;寄存器,用于存储所述隐含节点上一时刻的状态向量,所述上一时刻的状态向量用于指示所述隐含节点在上一时刻的状态;输出单元,与所述多个激活单元以及所述寄存处器连接,用于基于所述多个激活单元的激活结果以及所述寄存器中存储的所述上一时刻的状态向量,获取所述当前时刻的输出向量以及所述隐含节点的当前时刻的状态向量,所述当前时刻的状态向量用于指示所述隐含节点在当前时刻的状态。在一种可能的实现方式中,所述多个激活单元包括输入激活电路、遗忘激活电路、更新激活电路以及输出激活电路,所述输入激活电路用于实现所述隐含层节点中的输入门的激活计算,所述遗忘激活电路用于实现所述隐含层节点中的遗忘门的激活计算,所述更新激活电路用于实现所述隐含层节点中的更新门的激活计算,所述输出激活电路用于实现所述隐含层节点中的输出门的激活计算。在一种可能的实现方式中,所述输出单元包括:乘加电路,与所述输入激活电路、遗忘激活电路以及更新激活电路连接,用于基于所述输入激活电路、遗忘激活电路、更新激活电路的激活结果以及所述隐含层节点上一时刻的状态向量,进行乘法计算和加法计算,得到所述当前时刻的状态向量;目标激活电路,与所述乘加电路连接,用于对所述乘加电路输出的所述当前时刻的状态向量进行激活操作;第一乘法器,与所述目标激活电路以及所述输出激活电路连接,对所述目标激活电路的激活结果与所述输出激活电路输出的激活结果进行乘法运算,得到所述当前时刻的输出向量。在一种可能的实现方式中,所述乘加电路包括:第二乘法器,与所述输入激活电路以及所述更新激活电路的输出端进行连接,用于对所述输入激活电路的激活结果以及所述更新激活电路的激活结果进行乘法计算;第三乘法器,与所述遗忘激活电路以及寄存器连接,用于对所述遗忘激活电路的激活结果以及所述寄存器存储的上一时刻的状态向量进行乘法计算;加法器,与所述第二乘法器以及所述第三乘法器连接,用于对所述第一乘法的输出结果和所述第三乘法器的输出结果进行加法运算,得到所述隐含层节点前时刻的状态向量。在一种可能的实现方式中,所述LSTM网络计算设备还包括:控制器,与驱动器连接,用于控制所述驱动器每经过预设时长,选择所述任一存储阵列的一列DRAM单元;所述驱动器,与所述任一存储阵列连接,用于基于目标电流,每经过所述预设时长,向所述任一存储阵列的每一列的第一行DRAM单元中写入所述目标输入向量中的输入数据,向所述任一存储阵列的每一列的第二行DRAM单元中写入所述目标输入向量对应的权重向量中的权值。在一种可能的实现方式中,所述点乘求和模块包括:多个点乘单元,每个所述点乘单元与所述任一存储阵列中的多列DRAM单元连接,用于对所述多列DRAM单元的第一行的DRAM单元存储的一个目标输入向量以及所述多列DRAM单元的第二行的DRAM单元存储的一个权值向量进行点乘计算;和求单元,与所述点乘单元连接,用于对每个点乘单元输出的点乘结果进行求和计算。在一种可能的实现方式中,所述每个点乘单元包括:多个锁存器,每个锁存器的输入端连接所述多列DRAM单元中的一列DRAM单元,所述每个锁存器的输出端连接多个乘法器中的一个乘法器,所述每个锁存器用于缓存所述任一存储阵列的第二行DRAM单元中的一个DRAM单元中的数值;多个乘法器,每个乘法器的第一输入端分别连接所述多列DRAM单元中的一本文档来自技高网...

【技术保护点】
1.一种长短期记忆LSTM网络计算设备,其特征在于,所述LSTM网络计算设备包括:/n存储模块,所述存储模块包括第一存储阵列以及第二存储阵列,所述第一存储阵列以及第二存储阵列中的任一存储阵列包括多行多列动态随机存取存储器DRAM单元,所述任一存储阵列的第一行DRAM单元用于存储LSTM网络的隐含层节点的目标输入向量,所述任一存储阵列的第二行DRAM单元用于存储与所述目标输入向量对应的目标权值向量,所述目标输入向量包括第一输入向量或第二输入向量,所述第一输入向量包括所述LSTM网络当前时刻的输入数据,所述第二输入向量包括所述隐含层节点的上一时刻的输出数据;/n点乘求和模块,与所述存储模块连接,用于对所述目标输入向量以及所述目标输入向量对应的目标权值向量进行点乘计算,得到所述任一存储阵列对应的点乘结果,对每个存储阵列对应的点乘结果进行求和计算,得到和值;/n激活运算模块,与所述点乘求和模块连接,用于对所述和值进行激活操作,得到所述隐含层节点的当前时刻的输出向量。/n

【技术特征摘要】
1.一种长短期记忆LSTM网络计算设备,其特征在于,所述LSTM网络计算设备包括:
存储模块,所述存储模块包括第一存储阵列以及第二存储阵列,所述第一存储阵列以及第二存储阵列中的任一存储阵列包括多行多列动态随机存取存储器DRAM单元,所述任一存储阵列的第一行DRAM单元用于存储LSTM网络的隐含层节点的目标输入向量,所述任一存储阵列的第二行DRAM单元用于存储与所述目标输入向量对应的目标权值向量,所述目标输入向量包括第一输入向量或第二输入向量,所述第一输入向量包括所述LSTM网络当前时刻的输入数据,所述第二输入向量包括所述隐含层节点的上一时刻的输出数据;
点乘求和模块,与所述存储模块连接,用于对所述目标输入向量以及所述目标输入向量对应的目标权值向量进行点乘计算,得到所述任一存储阵列对应的点乘结果,对每个存储阵列对应的点乘结果进行求和计算,得到和值;
激活运算模块,与所述点乘求和模块连接,用于对所述和值进行激活操作,得到所述隐含层节点的当前时刻的输出向量。


2.根据权利要求1所述的LSTM网络计算设备,其特征在于,所述任一存储阵列的第一行DRAM单元依次存储多个所述目标输入向量,所述目标权值向量包括多个权值向量,所述任一存储阵列的第二行DRAM单元依次存储有多个权值向量,每个权值向量对应所述任一存储阵列的第一行DRAM单元存储的一个目标输入向量;
所述任一存储阵列的第一行DRAM单元中的一个DRAM单元用于存储一个目标输入向量中的一个输入数据的一位数值,所述任一存储阵列的第二行DRAM单元中的一个DRAM单元用于存储一个权值向量中的一个权值的一位数值。


3.根据权利要求2所述的LSTM网络计算设备,其特征在于,所述激活运算模块包括:
多个激活单元,每个激活单元与所述点乘求和模块连接,用于对所述点乘求和模块输出的一个和值进行激活操作,所述一个和值为一个目标输入向量和所述一个目标输入向量对应的一个权值向量的点乘计算结果;
寄存器,用于存储所述隐含节点上一时刻的状态向量,所述上一时刻的状态向量用于指示所述隐含节点在上一时刻的状态;
输出单元,与所述多个激活单元以及所述寄存处器连接,用于基于所述多个激活单元的激活结果以及所述寄存器中存储的所述上一时刻的状态向量,获取所述当前时刻的输出向量以及所述隐含节点的当前时刻的状态向量,所述当前时刻的状态向量用于指示所述隐含节点在当前时刻的状态。


4.根据权利要求3所述的LSTM网络计算设备,其特征在于,所述多个激活单元包括输入激活电路、遗忘激活电路、更新激活电路以及输出激活电路,所述输入激活电路用于实现所述隐含层节点中的输入门的激活计算,所述遗忘激活电路用于实现所述隐含层节点中的遗忘门的激活计算,所述更新激活电路用于实现所述隐含层节点中的更新门的激活计算,所述输出激活电路用于实现所述隐含层节点中的输出门的激活计算。


5.根据权利要求4所述的LSTM网络计算设备,其特征在于,所述输出单元包括:
乘加电路,与所述输入激活电路、遗忘激活电路以及更新激活电路连接,用于基于所述输入激活电路、遗忘激活电路、更新激活电路的激活结果以及所述隐含层节点上一时刻的状态向量,进行乘法计算和加法计算,得到所述当前时刻的状态向量;
目标激活电路,与所述乘加电路连接,用于对所述乘加电路输出的所述当前时刻的状态向量进行激活操作;
第一乘法器,与所述目标激活电路以及所述输出激活电路连接,对所述目标激活电路的激活结果与所述输出激活电路输出的激活结果进行乘法运算,得到所述当前时刻的输出向量。


6.根据权利要求5所述的LSTM网络计算设备,其特征在于,所...

【专利技术属性】
技术研发人员:李诚杨伟韦恩·诺伯特苏尔达山·奇拉格
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1