【技术实现步骤摘要】
用于执行LSTM运算的装置和方法
本专利技术人工神经网络
,具体涉及LSTM,特别是一种用于执行LSTM的装置和方法。
技术介绍
循环神经网络和LSTM被广泛应用于语音识别,语言建模,翻译,图片描述等领域,近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。一种支持循环神经网络和LSTM的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的循环神经网络和LSTM运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把循环神经网络和LSTM的反向运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销另一种支持循环神经网络和LSTM的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对多层人工神经网络运算的专门支持,仍然需要大量的前端译码工作才 ...
【技术保护点】
1.一种用于执行LSTM运算的装置,包括控制器单元、数据访问单元、互连模块、主运算模块和从运算模块,其中,所述LSTM运算的一个块block包括:输入门、输出门、忘记门和单元cell;所述输入门和所述忘记门,用于控制cell的输出里对于当前时间输入和上一时间cell的权重;所述输出门,用于控制cell的输出;所述数据访问单元,用于访问外部地址空间,完成数据的加载和存储,读入指令;所述控制器单元,用于读取指令,将指令译码成控制其他单元或模块行为的微指令,然后将各自的微指令分发至各个单元或模块;所述互连模块,用于将所述主运算模块的输入向量发送给所述从运算模块,以及将从运算模块的 ...
【技术特征摘要】
1.一种用于执行LSTM运算的装置,包括控制器单元、数据访问单元、互连模块、主运算模块和从运算模块,其中,所述LSTM运算的一个块block包括:输入门、输出门、忘记门和单元cell;所述输入门和所述忘记门,用于控制cell的输出里对于当前时间输入和上一时间cell的权重;所述输出门,用于控制cell的输出;所述数据访问单元,用于访问外部地址空间,完成数据的加载和存储,读入指令;所述控制器单元,用于读取指令,将指令译码成控制其他单元或模块行为的微指令,然后将各自的微指令分发至各个单元或模块;所述互连模块,用于将所述主运算模块的输入向量发送给所述从运算模块,以及将从运算模块的运算结果返回给主运算模块;所述从运算模块,用于将输入数据进行乘加得到部分和并保存,直到神经元数据全都输入后将所有的部分和通过所述互连模块返回给主运算模块;所述主运算模块,用于在正向运算时对计算结果进行插值激活。2.根据权利要求1所述的装置,其特征在于,所述装置还包括:指令存储单元,用于缓存读入的指令。3.根据权利要求1或2所述的装置,其特征在于,所述装置用于执行LSTM单层计算,所述LSTM单层计算包括:所述装置,用于计算出输入门对应的当前时刻输入与权值的乘积和,缓存在神经元缓存单元,再计算上一时刻单元状态与对应权值的乘积和以及上一时刻隐层与对应权值乘积和都存在神经元缓存单元,最后将他们三个相加并且激活得到输入门值;所述装置,用于计算出忘记门对应的当前时刻输入与权值的乘积和,缓存在神经元缓存单元,再计算上一时刻单元状态与对应权值的乘积和以及上一时刻隐层与对应权值乘积和都存在神经元缓存单元;最后将他们三个相加并且激活得到忘记门值;所述装置,用于计算出输入门对应的当前时刻输入与权值的乘积和,缓存在神经元缓存单元,再计算上一时刻隐层与对应权值乘积和都存在神经元缓存单元,最后将他们两个个相加并且激活得到单元状态中间值缓存到神经元缓存单元;然后让中间值和输入门对应相乘,缓存在运算单元的缓存单元内,再让上一时刻的单元状态和忘记门对应相乘,在运算单元与上一次缓存对应相加,得到单元状态值;所述装置,用于计算出输出门对应的当前时刻输入与权值的乘积和,缓存在神经元缓存单元,再计算当前时刻单元状态与对应权值的乘积和以及上一时刻隐层与对应权值乘积和都存在缓存单元,最后将他们三个相加并且激活,得到输出门值;将单元状态和输出门对应相乘得到LSTM单层输出。4.根据权利要求1或2所述的装置,其特征在于,所述装置还用于执行LSTM单层运算的梯度反向运算;具体包括:所述装置计算出下一时刻隐层梯度和对应位置的权值相乘相加,加上本层残差和对应权值相乘之和,得到本层输出梯度;让输出梯度和cell激活值对应乘加,缓存在神经元缓存单元最后乘以激活函数导数得到输出门梯度;所述装置,用于将cell的状态梯度由当前输出梯度乘上当前输出门值和状态激活的导数存入神经元缓存单元,再计算上下一时刻cell的梯度,输入门和忘记门的梯度以及本时刻输出门梯度乘以对应权值都存入神经元缓存单元,最后相加得到单元状态梯度,cell中间值的梯度由当前时刻输入门激活值,cell激活函数导数以及cell状态梯度相乘得到;所述装置,用于将当前时刻所有cell的状态梯度对应乘以上一时刻cell状态输出相加最后与忘记门导数相乘得到忘记门的梯度;将当前时刻所有cell的状态梯度对应乘以本时刻cell中间值的激活值输出相加,最后与输入门导数相乘得到输入门的梯度。5.根据权利要求1-4任意一项所述的装置,其特征在于,所述从处理模块包括多个从运算模块,所述互连模块,将所述主运算模块的输入向量分发给所述从运算模块,以及将从运算模块的运算结果逐级拼接成运算结果返回给主运算模块。6.根据权利要求5所述的装置,其特征在于,所述互连模块包括多个节点构成的二叉树通路;每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据进行合并,并返回给上游的节点。7.根据权利要求6所述的装置,其特征在于,所述主运算模块,还用于在反向运算时,将计算结果进行插值激活并求导得到的导数与梯度相乘。8.如权利要求7所述的装置,其特征在于,所述主运算模块包括:运算单元、数据依赖关系判定单元和神经元缓存单元,其中,所述运算单元,用于接收控制器单元发出的微指令并进行算数逻辑运算;所述数据依赖关系判断单元,用于对神经元缓存单元进行读写操作,保证指令之间所用的数据不存在读写一致性冲突;所述神经元缓存单元,用于缓存输入神经元数据和输出神经元数据。9.如权利要求6所述的用于执行LSTM运算的装置,其特征在于,所述从运算模块包括运算单元、数据依赖关系判定单元、神经元存储单元、权值存储单元和权值梯度存储单元,所述数据依赖关系判断单元,用于对神经元缓存单元进行读写操作,保证指令之间所用的数据不存在读写一致性冲突;所述神经元缓存单元,用于缓存输入神经元数据和输出神经元数据;所述权值缓存单元,用于缓存该从运算模块在计算过程中需要的权值数据;所述权值梯度缓存单元,用于缓存相应从运算模块在更新权值过程中需要的权值梯度数据;所述运算单元,用于接收控制器单元发出的微指令并对输入神经元数据以及权值数据进行算数逻辑运算。10.根据权利要求8或9所述的装置,其特征在于,所述数据依赖关系判断单元,具体用于判断未执行的控制信号的第一数据与正在执行过程中的控制信号的第二数据之间是否存在依赖关系,如果不存在依赖关系,允许该未执行的控制信号立即执行,如果存在依赖关系;在与未执行的控制信号存在依赖关系的所有控制信号全部执行完成后,允许该未执行的控制信号执行。11.一种执行LSTM运算的方法,其特征在于,所述方法应用于LSTM运算装置,所述装置包括控制器单元、互连模块、数据访问单元、主运...
【专利技术属性】
技术研发人员:郭崎,陈峋宇,陈云霁,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。