[发明专利]一种基于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 加速器 加速 方法 | ||
1.一种基于FPGA的压缩LSTM加速器,其特征在于,所述FPGA加速器内部包括多个计算单元、存储单元和控制单元;
所述计算单元包括非零检测模块、权重存储单元、四个权重解码模块、四个矩阵向量乘法模块及Element_wise运算模块,所述非零检测模块用于检测隐藏节点稀疏权重矩阵的非零权重元素值及对应的列索引值;所述权重存储单元用于存储非零权重元素值及列索引值;所述权重解码模块根据列索引值找到输入激励对应的激励值;所述矩阵向量乘法模块将多个非零权重元素值及多个激励值进行乘累加运算得到单个门的结果向量,所述矩阵向量乘法模块并行运算得到四个门的结果向量;所述Element_wise运算模块根据四个门的结果向量计算当前时刻的细胞状态值和输出值;
所述存储单元用于缓存LSTM网络计算所需的权重数据、输入激励值、输出值以及细胞状态值;所述控制单元用于控制LSTM网络计算的状态转换和数据流传输过程;
所述Element_wise运算模块,采用时分复用的策略,将运算过程分成三个不同的状态周期,实际消耗的资源只有一个 sigmoid 激活函数模块,一个 tanh 激活函数模块,一个加法器和一个乘法器,最终得到当前时刻的细胞状态值以及输出值,具体包括以下计算步骤:
步骤S1.第一个周期将输入门对应的结果向量进行sigmoid函数激活计算得到输入门i,同时将记忆门对应的结果向量进行tanh函数激活计算得到记忆门g,然后将输入门i和记忆门g相乘;
步骤S2.第二个周期将遗忘门对应的结果向量进行sigmoid函数激活计算得到遗忘门f,将遗忘门f与上一时刻的细胞状态值Ct-1相乘后,再加上第一周期的输出i×g,更新当前时刻新的细胞状态值Ct;
步骤S3.第三个周期将输出门对应的结果向量进行sigmoid函数激活计算得到输出门o,同时将新的细胞状态值Ct进行tanh函数激活计算,然后将两者进行乘法运算得到当前时刻的输出值ht。
2.根据权利要求1所述的一种基于FPGA的压缩LSTM加速器的加速方法,其特征在于,包括以下计算步骤:采用块平衡剪枝算法对LSTM网络的权重矩阵进行剪枝,从而每个隐藏节点稀疏权重矩阵的每一行具有相同的剪枝率,将稀疏权重矩阵按照行序依次查找非零权重元素,将第一行中每个非零权重元素值及对应的列索引值记录在不同的地址空间中,后面每行非零权重元素值及对应的列索引值依次写入前面划分的地址空间中,从同一个地址空间内依次读取四个门对应的非零权重元素值及列索引值,根据列索引值找到输入激励对应的激励值,将四个门所有的非零权重元素值及对应的激励值并行乘累积运算得到四个门的结果向量,最后利用四个门的结果向量得到当前时刻的细胞状态值和输出数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110563720.9/1.html,转载请声明来源钻瓜专利网。