当前位置: 首页 > 专利查询>复旦大学专利>正文

一种LSTM中门控单元加速运算的硬件实现电路制造技术

技术编号:19426726 阅读:51 留言:0更新日期:2018-11-14 10:52
本发明专利技术属于集成电路设计技术领域,具体为一种LSTM中门控单元加速运算的硬件实现电路。LSTM中包含了三个门控单元:输入门,遗忘门和输出门,LSTM的每个门控单元的硬件电路结构相同,都由四部分组成:数据传输模块、用于完成矩阵向量乘法的输入层乘累加模块和隐藏层乘累加模块以及非线性激活函数模块。该电路通过数据传输模块将门控单元所需要的数据传输到运算单元当中,通过输入层乘累加模块和隐藏层乘累加模块完成矩阵向量乘法,最后通过非线性激活函数模块完成LSTM中完整的门控单元的运算。该电路在乘累加模块中实现了数据的复用和并行,在非线性激活函数模块中采用分段线性近似的方法减少了硬件资源消耗以及电路延时,极大地减小了电路复杂度,提高了电路性能。

【技术实现步骤摘要】
一种LSTM中门控单元加速运算的硬件实现电路
本专利技术属于集成电路设计
,具体涉及针对LSTM中门控单元的加速运算的硬件实现电路。
技术介绍
LSTM(LongShort-TermMemory长短期记忆模块)是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延时相对较长的重要事件。LSTM已经在科技领域有了多种应用,基于LSTM的系统可以学习翻译语言、控制机器人、图像分析、文档摘要、语音识别、预测疾病等等任务。LSTM与传统递归神经网络相比,区别主要在于它在算法中增加了判断信息是否有用的处理器,而一个处理器中包含了三个门控单元:输入门、遗忘门和输出门。一个信息进入到LSTM网络当中,可以根据规则来判断是否有用,可以在反复运算下解决神经网络中长序依赖的问题,也就说即便是非常长远的信息也可以保存下来用于判断当前时刻的是输出。这三个门控单元除了权重矩阵不同,用到的输入向量都是当前时刻的输入以及上一个时刻隐藏层的输出,并且权重矩阵与输入向量结合的方法都一样,具体公式如下:it=sigmoid(W(xi)xt+W(hi)ht-1+bi)ft=sigmoid(W(xf)xt+W(hf)ht-1+bf)ot=sigmoid(W(xo)xt+W(ho)ht-1+bo)其中,it代表输入门的输出,ft代表遗忘门的输出,ot代表输出门的输出,xt代表当前时刻的输入向量,ht-1代表上一时刻的隐藏层的输出向量,W(x)代表与当前时刻输入向量相对应的输入层权重矩阵,W(h)代表与上一时刻隐藏层输出相对应的隐藏层权重矩阵。尽管现在深度神经网络的结构在许多不同领域的任务中都取得了巨大突破,准确度也大幅度上升,但是这些模型结构也越来越复杂,需要巨大的参数量和计算量,传统的商业处理器性能增长缓慢,亟需新的硬件平台加速人工智能算法的部署和应用。在进行LSTM硬件加速器设计时,由于LSTM计算需要的参数量巨大,所需的大量存储量成为了限制硬件实现电路发展的主要原因,门控单元是组成LSTM的重要模块之一,一个门控单元的计算主要由矩阵向量乘法以及非线性激活函数组成,本专利技术提出了一种高效率的LSTM门控单元实现的硬件电路结构,可以复用矩阵向量乘法中的输入向量,并且通过分段线性的方法映射复杂的非线性函数,该专利技术极大地减小了电路的运算复杂度,提高了电路的运行效率。
技术实现思路
为了克服现有技术的不足,本专利技术的目的在于提供一种针对LSTM中门控单元加速运算的硬件实现电路。本专利技术提供的针对LSTM中门控单元的加速运算的硬件实现电路,其包括数据传输模块、输入层乘累加模块、隐藏层乘累加模块以及非线性激活函数模块;其中:所述数据传输模块,用于传输LSTM中一个门控单元所需要的全部数据,包括当前时刻的输入向量、上个时刻隐藏层的输出向量、与输入向量相对应的输入层权重矩阵以及与上一时刻隐藏层输出向量对应的隐藏层权重矩阵。每个数据都通过一个FIFO传入运算单元,内置一个组合逻辑来控制FIFO进行数据传输时的传输长度以及传输次数等参数。所述输入层乘累加模块,包含四个并行的子模块,用于完成LSTM门控单元中与当前时刻输入向量相关的矩阵向量乘法运算。该模块采用两个数据流:当前时刻的输入向量流和输入层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量。所述隐藏层乘累加模块,包含四个并行的子模块,用于完成LSTM门控单元中与上一时刻隐藏层的输出向量相关的矩阵向量乘法运算。该模块采用两个数据流:上一时刻隐藏层输出向量流和隐藏层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量。所述非线性激活函数模块,用于完成LSTM门控单元中非线性函数的硬件实现。LSTM当中用到的非线性函数为sigmoid和tanh,这两个非线性函数中用到了求幂和除法运算,直接映射的话硬件开销很大,该模块通过分段线性近似的方法,在保证精度的同时,利用查找表将非线性函数映射成硬件电路。本专利技术中,所述的两个乘累加模块除了输入数据不同,具体的硬件结构完全相同,乘累加模块在实现矩阵向量乘法时完成数据的复用和数据的并行,具体方式如下:乘累加模块采用两个数据流:输入向量流和权重矩阵流,由于相同的输入向量要与权重矩阵的每一行相乘并进行累加,所以每次获取到当前时刻的输入向量之后,将输入向量存入FIFO中,当完成了该输入向量与矩阵的每一行的乘法之后再去获取下一个时刻的输入向量。输入向量每次与权重矩阵中的一行完成乘法之后会得到输出向量的一个元素,在计算出每个输出元素之后,乘累加模块被置零,以避免累加先行的矩阵行计算。最终乘累加模块得到的输出应该是一个与权重矩阵的高度大小相同的向量。每个乘累加模块中包含四个并行的子模块,将输入向量和矩阵拆分成四部分同时进行乘法运算,四个子模块共同完成一个矩阵向量乘法,极大提高了电路运行的效率。本专利技术中,所述的非线性激活函数模块中,通过分段线性近似的方法完成复杂非线性函数的硬件映射,具体方式如下:由于LSTM当中用到的非线性函数为sigmoid和tanh,这两个非线性函数中用到了求幂和除法运算,直接映射的话硬件开销很大,所以该模块通过分段线性近似的方法在保证精度的同时,完成非线性函数的映射。首先将得到这两个非线性函数的分段线性近似值,共同存入一个文件中,通过产生一个地址去索引其对应的非线性函数的输出,用地址的最高位来判断是sigmoid还是tanh,这样在使用非线性函数的时候可以进行灵活调用。本专利技术中,通过数据传输模块将一个门控单元所需要的数据传输给计算单元,然后通过两个乘累加模块完成输入数据的矩阵向量乘法运算,最后通过非线性激活函数模块得到整个门控单元的运算结果。在乘累加模块中实现了数据的复用和数据的并行,在非线性激活函数模块中采用分段线性近似的方法在不影响精度的情况下完成对复杂函数的拟合,极大地减少了硬件资源消耗,缓解了LSTM在硬件实现时遇到的存储空间消耗量大的问题,提高了电路的工作效率。附图说明图1为LSTM中门控单元电路工作基本框图。图2为乘累加模块电路工作框图。图3为乘累加模块中数据复用和并行原理图。图4为非线性激活函数模块索引地址生成方法。图5为非线性激活函数模块工作框图。具体实施方式本专利技术中,LSTM中门控单元电路的工作基本框图如图1所示。该设计的工作过程如下:首先通过数据传输模块将一个门控单元所需要的全部数据传输给计算单元,包括当前时刻的输入向量、上个时刻隐藏层的输出向量、与输入向量相对应的输入层权重矩阵以及与上一时刻隐藏层输出对应的隐藏层权重矩阵。计算单元获取到所有的输入数据流之后,会经过乘累加模块得到矩阵向量乘法的输出结果,每个门控单元包括两个乘累加模块,输入层乘累加模块和隐藏层乘累加模块,分别计算当前时刻的输入向量xt与输入层权重矩阵W(x)相乘的结果以及上一个时刻隐藏层输出ht-1与隐藏层权重矩阵W(h)相乘的结果。乘累加模块的工作原理为:该模块采用两个数据流:输入向量流和权重矩阵流,数据流中每次获取输入向量和权重矩阵中的一个元素,对于长度为Width的输入向量,总共获取Width次;对于高为Height,宽为Width的权重矩阵,每次获取矩阵中本文档来自技高网
...

【技术保护点】
1.一种LSTM中门控单元加速运算的硬件实现电路,其特征在于,包括数据传输模块、输入层乘累加模块、隐藏层乘累加模块以及非线性激活函数模块;其中:所述数据传输模块,用于传输LSTM中一个门控单元所需要的全部数据,包括当前时刻的输入向量、上个时刻隐藏层的输出向量、与输入向量相对应的输入层权重矩阵以及与上一时刻隐藏层输出向量对应的隐藏层权重矩阵;每个数据都通过一个FIFO传入运算单元,内置一个组合逻辑来控制FIFO进行数据传输时的传输长度以及传输次数等参数;所述输入层乘累加模块,用于完成LSTM门控单元中与当前时刻输入向量相关的矩阵向量乘法运算;该模块采用两个数据流:当前时刻的输入向量流和输入层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量;所述隐藏层乘累加模块,用于完成LSTM门控单元中与上一时刻隐藏层的输出向量相关的矩阵向量乘法运算;该模块采用两个数据流:上一时刻隐藏层输出向量流和隐藏层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量;所述非线性激活函数模块,用于完成LSTM门控单元中非线性函数的硬件实现;LSTM当中用到的非线性函数为sigmoid和tanh,这两个非线性函数中用到求幂和除法运算,直接映射的话硬件开销很大,该模块通过分段线性近似的方法,在保证精度的同时,利用查找表将非线性函数映射成硬件电路。...

【技术特征摘要】
1.一种LSTM中门控单元加速运算的硬件实现电路,其特征在于,包括数据传输模块、输入层乘累加模块、隐藏层乘累加模块以及非线性激活函数模块;其中:所述数据传输模块,用于传输LSTM中一个门控单元所需要的全部数据,包括当前时刻的输入向量、上个时刻隐藏层的输出向量、与输入向量相对应的输入层权重矩阵以及与上一时刻隐藏层输出向量对应的隐藏层权重矩阵;每个数据都通过一个FIFO传入运算单元,内置一个组合逻辑来控制FIFO进行数据传输时的传输长度以及传输次数等参数;所述输入层乘累加模块,用于完成LSTM门控单元中与当前时刻输入向量相关的矩阵向量乘法运算;该模块采用两个数据流:当前时刻的输入向量流和输入层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量;所述隐藏层乘累加模块,用于完成LSTM门控单元中与上一时刻隐藏层的输出向量相关的矩阵向量乘法运算;该模块采用两个数据流:上一时刻隐藏层输出向量流和隐藏层权重矩阵流,将同一个的输入向量与权重矩阵的每一行相乘并进行累加,产生一个与权重矩阵的高长度相同的输出向量;所述非线性激活函数模块,用于完成LSTM门控单元中非线性函数的硬件实现;LSTM当中用到的非线性函数为sigmoid和tanh,这两个非线性函数中用到求幂和除法运算,直接映射的话硬件开销很大,该模块通过分段线性近似的方法,在保证精度的同时,利用查找表将非线性函数映射...

【专利技术属性】
技术研发人员:韩军李晨露曾晓洋
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

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

1