【CN110110851A】一种LSTM神经网络的FPGA加速器及其加速方法【专利】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910359395.7
(22)申请日 2019.04.30
(71)申请人 南京大学
地址 210046 江苏省南京市栖霞区仙林大
道163号
(72)发明人 潘红兵 查羿 郭良蛟 秦子迪
苏岩 朱杏伟
(74)专利代理机构 江苏法德东恒律师事务所
32305
代理人 李媛媛
(51)Int.Cl.
G06N 3/063(2006.01)
G06N 3/04(2006.01)
G06N 3/08(2006.01)
(54)发明名称一种LSTM神经网络的FPGA加速器及其加速方法(57)摘要本发明提供了一种LSTM神经网络的FPGA加速器及其加速方法。加速器包括数据分发单元、运算单元、控制单元和存储单元;运算单元包括稀疏矩阵向量乘模块、非线性激活函数模块和按元素乘加计算模块;控制单元发出控制信号给数据分发单元,数据分发单元从存储单元中读取输入激励值和神经网络权重参数,并输入到运算单元进行运算。本发明按非零权重值的个数均匀地分配给每个运算单元,这样不会造成运算资源的闲置,从而提高整个网络的运算性能。同时,采用稀疏网络的形式存储剪枝后的神经网络,每一列的权重值存储在同一个地址空间,并根据行索引对其进行编码,在保证精度的情况下,提高了运
算性能和数据吞吐率。权利要求书1页 说明书3页 附图2页CN 110110851 A 2019.08.09
C N 110110851
A
权 利 要 求 书1/1页CN 110110851 A
1.一种LSTM神经网络的FPGA加速器,其特征在于,包括数据分发单元、运算单元、控制单元和存储单元;
所述运算单元包括:稀疏矩阵向量乘模块,用于权重与激励向量的点乘运算;非线性激活函数模块,用于获得最终的输入门、侯选门、遗忘门和输出门;以及按元素乘加计算模块,用于计算t时刻的状态和t时刻的隐藏层的值;
所述存储单元用于缓存输入激励值、神经网络权重参数值、LSTM神经网络当前时刻状态值以及当前时刻的输出值;
所述控制单元发出控制信号给数据分发单元,所述数据分发单元从存储单元中读取输入激励值和神经网络权重参数,并输入到运算单元进行运算。
2.根据权利要求1所述的一种LSTM神经网络的FPGA加速器,其特征在于,稀疏矩阵向量乘模块包括非零检测模块和多个计算单元,每一个计算单元包括激励值存储模块、权重解码模块和运算模块;所述非零检测模块用于检索激励数据的非零激励值和相对索引值;所述激励值存储模块用于存储非零激励值和相对索引值;所述权重解压缩模块用于根据激励数据的相对索引值进行权重的寻址,找出相对应的整列权重值;所述运算模块用于对非零激励值和整列权重值进行乘加运算。
3.如权利要求1所述一种LSTM神经网络的FPGA加速器的加速方法,其特征在于,具体步骤如下:
采用剪枝量化的方式对LSTM神经网络模型进行压缩,使得神经网络模型的权重矩阵稀疏化;对压缩后的稀疏矩阵按行进行重排,由上至下,每一行的非零权重个数逐渐递减;将重排后的矩阵内的非零元素值进行编码,即对每一个非零元素值标出其数值以及行索引值;将所有的非零权重的数值按列进行存储,即每一列的非零值的数值存到一个地址空间,用标识符将其间隔开来,并标明其行索引指针。
2