[发明专利]一种基于FPGA的压缩LSTM加速器及加速方法有效
申请号: | 202110563720.9 | 申请日: | 2021-05-24 |
公开(公告)号: | CN113222133B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 葛芬;崔晨晨;张伟枫;岳鑫;李梓瑜;周芳;吴宁 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/082;G06N3/0495;G06N3/0442;G06N3/048;G06F15/78;G06F17/16 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 沈海霞 |
地址: | 211106 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 压缩 lstm 加速器 加速 方法 | ||
本发明公开了一种基于FPGA的压缩LSTM加速器及加速方法,FPGA加速器内部包括多个计算单元、存储单元和控制单元;利用非零检测模块检测隐藏节点稀疏权重矩阵的非零权重元素值及对应的列索引值;利用权重解码模块根据列索引值找到对应的激励值;并将多个非零权重元素值及多个激励值送至矩阵向量乘法模块进行运算得到四个门的结果向量;Element_wise运算模块根据四个门的结果向量计算当前时刻的细胞状态值和输出值。在一个计算周期内仅仅将每个门的非零权重元素值和对应的激励值进行乘运算,从而保证在一个计算周期内每个矩阵向量乘法模块不会闲置,同时缩短了单个计算周期时间,从而提高了加速器的计算性能及吞吐量,同时节约了FPGA的片内缓存。
技术领域
本发明涉及神经网络计算机硬件加速领域,尤其是涉及一种基于FPGA的压缩LSTM加速器及加速方法。
背景技术
当前,LSTM网络在机器翻译、多语言处理、笔迹生成和图像标题生成等多种应用中取得了重大的成功,然而LSTM网络的计算以及存储复杂度随着网络模型规模的扩大也变得越来越高,选择合适的加速器平台就变得尤为重要。FPGA可以设计适应神经网络算法的硬件结构,开发人员可以根据自己的需求通过可编程的连接将FPGA内部的逻辑单元连接起来,来实现相应的功能。同时FPGA又可以在神经网络算法的硬件加速设计时根据算法特性来设计硬件架构。并且在综合计算和功耗这两个方面,FPGA相比于GPU具有更加出色的能耗比。因此,可编程性、可重构性、高并行性以及低功耗等优点使得FPGA很适合作为LSTM网络硬件加速的平台。
LSTM网络作为循环神经网络的一种变体,是一类以序列数据作为输入的递归神经网络,可以有效处理与时序相关的现实任务。主要通过引入门控机制来控制网络中信息累计的速度,相比于一般的循环神经网络,LSTM保存信息的周期更长。但是由于网络规模越来越大,导致神经网络的参数规模量也越来越巨大,运行LSTM网络时需要消耗大量的存储资源和运算资源,这严重制约了它在嵌入式平台或者在一些较小的移动设备上进行部署。由于大规模的LSTM网络模型存在大量的冗余参数,可以通过络剪枝算法对网络模型进行剪枝,合理的去除网络中存在的零值权重参数或者数值接近零的权重参数,再通过对剩余的稀疏权重参数进行重训练微调,使得网络模型的准确率基本保持不变,神经网络剪枝算法可以将LSTM网络模型大小有效的压缩,减少模型的存储量和计算量。
目前,基于FPGA的LSTM加速器一般采用并行运算及并行读书数据来提升加速器的加速性能,如果将上述稀疏权重矩阵直接参与计算,由于存在多个零元素导致一个计算周期内较多运算单元闲置,从而导致整体效率不高。
发明内容
本发明的目的是:提供一种基于FPGA的压缩LSTM加速器及加速方法,在一个计算周期内仅仅将每个门的非零权重元素值和对应的激励值进行乘运算,从而保证在一个计算周期内每个矩阵向量乘法模块不会闲置,同时缩短了单个计算周期时间,从而提高了加速器的计算性能及吞吐量,同时节约了FPGA的片内缓存。
本发明的技术方案是:
一种基于FPGA的压缩LSTM加速器,所述FPGA加速器内部包括多个计算单元、存储单元和控制单元;
所述计算单元包括非零检测模块、权重存储单元、四个权重解码模块、四个矩阵向量乘法模块及Element_wise运算模块,所述非零检测模块用于检测隐藏节点稀疏权重矩阵的非零权重元素值及对应的列索引值;所述权重存储单元用于存储非零权重元素值及列索引值;所述权重解码模块根据列索引值找到输入激励对应的激励值;所述矩阵向量乘法模块将多个非零权重元素值及多个激励值进行乘累加运算得到单个门的结果向量,所述矩阵向量乘法模块并行运算得到四个门的结果向量;所述Element_wise运算模块根据四个门的结果向量计算当前时刻的细胞状态值和输出值;
所述存储单元用于缓存LSTM网络计算所需的权重数据、输入激励值、输出值以及细胞状态值;所述控制单元用于控制LSTM网络计算的状态转换和数据流传输过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110563720.9/2.html,转载请声明来源钻瓜专利网。