CN116384454A - 一种基于fpga的长短期记忆网络硬件加速方法 - Google Patents
一种基于fpga的长短期记忆网络硬件加速方法 Download PDFInfo
- Publication number
- CN116384454A CN116384454A CN202310079953.0A CN202310079953A CN116384454A CN 116384454 A CN116384454 A CN 116384454A CN 202310079953 A CN202310079953 A CN 202310079953A CN 116384454 A CN116384454 A CN 116384454A
- Authority
- CN
- China
- Prior art keywords
- module
- input
- calculation
- similarity
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000001133 acceleration Effects 0.000 title claims abstract description 13
- 230000007787 long-term memory Effects 0.000 title claims abstract description 13
- 230000006403 short-term memory Effects 0.000 title abstract description 8
- 238000004364 calculation method Methods 0.000 claims abstract description 55
- 239000011159 matrix material Substances 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 40
- 230000004913 activation Effects 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 230000015654 memory Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 235000019800 disodium phosphate Nutrition 0.000 claims description 5
- 230000000873 masking effect Effects 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000013138 pruning Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
Abstract
本发明属于计算机硬件加速技术领域,公开了一种基于FPGA的长短期记忆网络硬件加速方法,在LSTM计算之前,先用当前时间步输入与上一时间步输入进行比较,得到输入相似度,根据相似度划分高相似、低相似、不相似三个等级,分别对应相似跳跃计算、输入稀疏计算、LSTM基础计算三种计算方法。本发明设计了一种通用LSTM硬件加速方法,此方法在高相似跳跃时,可以直接跳过一个时间步的计算,在输入稀疏计算时,可以省去一半的矩阵乘法,将部署应用于FPGA的算法运行速度提高了一倍,从而有效提高了长短期记忆网络推理速度。本领域技术人员可根据本方法的架构进行拓展和裁剪,以便于对应更高和更低资源的FPGA。
Description
技术领域
本发明属于计算机硬件加速技术领域,具体涉及一种基于FPGA的长短期记忆网络硬件加速方法。
背景技术
目前在各种RNN架构中,长短期记忆(LSTM)网络由于其优越的识别精度而被广泛应用于语音识别和时序信号预测领域。然而高精度LSTM网络通常需要极低的计算延迟以及大量的计算成本和内存开销,从而难以在嵌入式平台部署,目前,结构化剪枝仍是最有效的压缩方法,但是,随着网络复杂度和规模的增加,只依靠剪枝无法有效的加速硬件计算。
Junseo Jo在Similarity-Based LSTM Architecture for Energy-EfficientEdge-Level Speech Recognition中提到了一种相似跳跃方法,该方法比较两个时间步的输入相似度,跳过计算得到近似解,如果当前时间步输入与上一时间步输入高相似,则跳过当前时间步的计算,用上一时间步的解代替当前时间步解,当判断为低输入相似度时,使用DeltaRnn方法得到近似解,该方法可与剪枝协作减少硬件计算时间。
然而直接使用DeltaRnn,输入向量的稀疏性是不可预测的,由于DeltaRnn依靠阈值判断输入元素是否更新,无法确定输入向量维度,不规则的数据对硬件部署造成了极大的麻烦。
发明内容
为了解决上述问题,本发明提出一种基于FPGA的长短期记忆网络硬件加速方法,实现一种高相似跳跃、低相似输入稀疏的加速方法,该发明解决了输入向量维度不确定的问题,在保证较高精度的同时,减少了长短期记忆网络的计算成本,降低计算延迟。
本发明的技术方案:
一种基于FPGA的长短期记忆网络硬件加速方法,其包括相似跳跃模块(skip_top)、LSTM模块和全连接模块(FC),硬件平台采用XILINX的ZYNQ系列FPGA,在LSTM计算之前,先用当前时间步输入与上一时间步输入进行比较,得到输入相似度,根据相似度划分高相似、低相似、不相似三个等级,相似度大于90%为高相似,相似度在90%至50%之间为低相似,相似度低于50%为不相似,分别对应相似跳跃计算、输入稀疏计算、LSTM基础计算三种计算方法;
其中,相似跳跃计算:对比两个时间步输入的相似度,若判断为高相似,则跳过该时间步的计算,用上一时间步的解代替该时间步解,该方法直接跳过多个时间步的计算,得到近似解;
其中,输入稀疏计算包括以下步骤:
步骤1、将当前时间步输入与上一时间步输入求差,得到外输入差值向量ΔX和自输入差值向量ΔH,差值向量接近0的元素说明该元素前后时间步的变化量不大,不更新;
步骤2、对差值进行分组,分别对每一组的ΔX和ΔH进行排序,删除靠近0的一半的差值,保留变化较大的另一半差值;
步骤3、根据剩余差值的位置,得到包含位置信息的掩码向量;
步骤4、根据掩码,在LSTM计算时对输入和权重进行稀疏化,再进行计算,得到输入门i、遗忘门f、候选值c、输出门o四个门的更新值;
步骤5、在上一时间步对应门值的基础上加上更新值后,再进行后续的计算,此方法可以省去一半的矩阵乘法,只需要一半的计算成本就可以得到一个近似解。
其中,基础LSTM计算:片上ROM取出权值与偏置,权值与输入相乘后加上偏置得到门值,输入激活函数进行激活,计算得到各个门向量,根据门向量计算输出。
所述相似度计算模块主要由Xt-1/Ht-1缓存模块、相似度比较模块(cpr)、差值计算模块(delta_in)、排序模块(sort)和掩码模块(mask)构成;
Xt-1/Ht-1缓存模块:用于存储上一时间步t-1的外输入X和自输入H,若上一时间步不进行任何相似跳跃计算,则存储上一时间步输入X和H,否则,不更新Xt-1和Ht-1;
相似度比较模块(cpr):用于比较两个时间步的输入的相似度,采用16位定点数,具体步骤如下:
步骤1:根据参数ω屏蔽两个时间步输入的低ω位,只比较第15位到ω位,若相等,则输出1,否则输出0;ω1为X的对应屏蔽位数参数,ω2为H的对应屏蔽位数参数;
步骤2:根据步骤1输出结果的总和除以总元素个数,得到输入相似度;
步骤3:根据相似度划分等级,相似度大于90%,进行高相似跳跃;相似度在90%至50%之间,进行输入稀疏跳跃;相似度低于50%,进行基础LSTM计算;
差值计算模块(delta_in):该模块在输入稀疏计算中使用,用于计算X与Xt-1以及H与Ht-1的差值;
排序模块(sort):该模块在输入稀疏计算中使用,将输入向量分组,每组四个元素,每组元素按绝对值大小输出其排序序号;
掩码模块(mask):该模块在输入稀疏计算中使用,根据排序模块模块的结果,计算包含位置信息的掩码向量,方便后续对输入和权重进行稀疏化,该模块对2和3序号输出1,1和0序号输出0;
所述LSTM模块主要由以下模块构成:
权重存储模块(WX_rom):用于存储外输入权值WX;
权重存储模块(WH_rom):用于存储自输入权值WH;
偏置存储模块(b_rom):用于存储偏置;
X差值存储模块(ΔX):用于存储外输入差值ΔX;
H差值存储模块(ΔH):用于存储自输入差值ΔH;
X掩码存储模块(mask_X):用于存储外输入X的掩码向量;
H掩码存储模块(mask_H):用于存储自输入H的掩码向量;
稀疏化模块(mask_mux):该模块为多路选择器,根据掩码向量置1元素的位置,分别提取出对应位置的输入和权重元素;
乘法器模块(DSP):该模块为乘法器阵列,使用128个16位有符号DSP,会依次进行c、f、i、o四个门的矩阵乘法运算,以及c·i、f·ct-1和o·ct,其中ct-1为记忆值,ct为候选值,乘法器模块由两个多路选择器控制其输入,计算得到32位有符号数,截取最高位符号位、整数位低两位和小数位的高13位,对截去的小数进行四舍五入操作,保证截取精度。
门累加模块(gate_add):该模块实现矩阵加法操作,分别累加矩阵每一行的乘法结果,再与对应的偏置求和,得到该门向量的一个元素。
激活函数模块(ACT):该模块包括Tanh和Sigmoid两个激活函数子模块,采用查找表方法,对四个门向量依次进行激活。
门模块(Gate):用于存储当前时刻激活后的c、f、i、o四个门向量。
记忆模块(Ct):用于存储上一时刻cell的记忆值ct-1。
Ut模块:用于存储上一时刻激活前的c、f、i、o四个门向量。
输出模块(Ht):用于存储输出Ht,以便下一时间步调用。
与现有技术相比,本发明的有益效果在于:设计了一种通用LSTM硬件加速方法,此方法在高相似跳跃时,可以直接跳过一个时间步的计算,在输入稀疏计算时,可以省去一半的矩阵乘法,将部署应用于FPGA的算法运行速度提高了一倍,从而有效提高了长短期记忆网络推理速度。本领域技术人员可根据本方法的架构进行拓展和裁剪,以便于对应更高和更低资源的FPGA。
附图说明
图1(a)是加速器相似跳跃模块架构图。
图1(b)是加速器LSTM模块架构图。
图2是加速器计算流程图。
具体实施方式
以下结合附图和技术方案,进一步说明本发明的具体实施方式。这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
PC端训练好的网络参数无法直接使用,本发明采用16位有符号定点数,最高位为符号位,接着为两位整数位和13位小数位,提取参数后,先对参数进行定点数量化,量化公式为:
numfix=floor(numfloat·2n)
其中numfloat为32位浮点数,numfix为量化后定点数,n为小数位数,floor为向下取整。
若得到的numfix位数不足15位,说明浮点数数值大小没有到达定点数整数位的最高位,所以在高位补0,补足15位,根据浮点数符号,在定点数最高位补0或1。
在FPGA运算时,负数需要以补码的形式出现,若得到的定点数为负数,则对其除符号位的剩余位进行取反加1操作,若得到的定点数为正数,则不对其进行任何操作。
量化完成后,将参数以.coe文件存入片上ROM,即W_rom模块和b_rom模块。
对于输入特征,本发明采用步长为1,时间步为20的滑窗输入,这说明一次完整的LSTM推理需要20个时间步。
如图2所示,当前期工作完成后,进入LSTM计算流程:
步骤1:进行输入相似度计算,该步骤比较两个时间步输入的相似度,在二进制存储中,高位往往可以表示该元素数值的绝大部分,所以高位相同,就可以近似认为两个元素数值相似。
步骤1.1:前后两个时间步的输入进入cpr模块中,cpr模块会根据参数ω,屏蔽输入的低ω位,比较剩余位,若剩余位相等则输出1,否则输出0。
步骤1.2:将全部的比较结果相加,再除以总元素个数,就可以得到相似度。
步骤1.3:根据相似度划分等级,相似度大于90%,进行高相似跳跃,相似度在90%至50%之间,进行输入稀疏跳跃,相似度低于50%,进行基础LSTM计算,高相似跳跃时skip_flag信号输出2,输入稀疏跳跃时skip_flag信号输出1,基础LSTM计算时skip_flag信号输出0。
步骤1.4:判断skip_flag信号,若为0,则Xt-1/Ht-1缓存模块更新Xt-1/Ht-1,否则不进行任何操作,只与不跳跃的时间步输入做对比,防止连续跳跃,可以减少误差。
步骤1.5:判断skip_flag信号,若为0,执行步骤2,若为1,执行步骤3,若为2,执行步骤4。
步骤2:基础LSTM计算。
步骤2.1:WX_rom提取.coe文件的第一行权值,该权值为输入X对应权值WX,WH_rom提取.coe文件的第一行权值,该权值为输入H对应权值WH。
步骤2.2:将WX和输入X送入乘法器模块,进行乘法运算,同时WX_rom提取.coe文件的下一行权值。
步骤2.3:将WH和输入H送入乘法器模块,进行乘法运算,同时WH_rom提取.coe文件的下一行权值。
步骤2.4:b_rom提取.coe文件的偏置,将得到的WX·X加上WH·H和偏置,得到未激活的门值。
步骤2.5:将该值送入ACT模块激活,同时将该值存入Ut模块中,以便输入稀疏方法使用。
步骤2.6:重复步骤2.2至步骤2.5,直至c、f、i、o四个门计算完毕,将四个门的结果存入Gate模块。
步骤2.7:从Ct模块中提取出记忆值ct-1,分别将ct-1与遗忘门f和输入门i与候选值c送入乘法器模块,再将结果相加,得到ct,将ct存入Ct模块中,作为下一时间步的ct-1。
步骤2.8:将ct送入ACT模块进行激活。
步骤2.9:将激活后的值与输出门o送入乘法器模块得到结果Ht。
步骤2.10:将Ht存入Ht模块中,作为下一时间步的输入H,判断时间步是否到达20,若时间步没达到20,则返回步骤1,若时间步到达20,则进入步骤5。
步骤3:进行输入稀疏跳跃方法。
步骤3.1:输入差值计算,在delta_in模块中计算前后时间步输入差值,输出差值向量。
步骤3.2:在sort模块中排序得到掩码向量,该步骤目的在于删去变化量较小的一半输入差值,减少矩阵计算的乘法次数,由于非结构化的修剪会对后续计算带来索引上的麻烦,处理不当可能会降低运算速度,所以本发明采用了一种结构化修剪,具体操作如下。
步骤3.2.1:对差值向量进行分组,每四个差值为一组,分别对每组中的四个元素按照绝对值大小输出排序序号。
步骤3.2.2:根据序号,生成掩码向量,序号2和3输出1,序号1和0输出0,该掩码向量包含了每组绝对值最大的两个差值的位置信息,为后续稀疏化做准备。
步骤3.3:对输入差值和权值进行稀疏化。
步骤3.3.1:将差值ΔX、权值WX和与其对应的掩码向量mask_x输入mask_mux模块,将差值ΔH、权值WH和与其对应的掩码向量mask_h输入mask_mux模块。
步骤3.3.2:将稀疏化后的ΔX与ΔH拼接,WX与WH拼接,送入乘法器模块,同时WX_rom提取.coe文件的下一行权值,WH_rom提取.coe文件的下一行权值。
步骤3.4:将得到的WX·ΔX加上WH·ΔH、偏置和Ut,得到未激活的门值。
步骤3.5:将该值送入ACT模块激活,同时将该值存入Ut模块中,以便下一次输入稀疏方法使用。
步骤3.6:重复步骤3.3至步骤3.5,直至c、f、i、o四个门计算完毕,将四个门的结果存入Gate模块。
步骤3.7:进入步骤2.7,后续操作与基础LSTM计算相同。
步骤4:进行高相似跳跃方法,跳过该时间步所有的计算,用上一时间步的结果代替当前时间步结果,判断时间步是否到达20,若时间步没达到20,则返回步骤1,若时间步到达20,则进入步骤5
步骤5:将LSTM模块的输出送入FC模块进行全连接,最后得到最终解。
如表1所示,加速器共占用60572个LUT,其中LSTM模块占用33629个LUT、322个DSP、213个BRAM,skip_top模块占用26943个LUT、1.5个BRAM。
表2为加速器加速结果,整个系统运行在200MHz频率下,当ω为0时,只进行基础LSTM计算,参数ω选取越大,速度提升越快,对应的误差也会有所增加,需注意若ω选取过小,反而会降低计算速度。
以上所述仅是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
表1加速器资源占用数据
资源 | 使用个数 | 可用个数 | 利用率% |
LUT | 60572 | 70560 | 85.84 |
LUTRAM | 92 | 28800 | 0.32 |
FF | 114094 | 141120 | 80.85 |
BRAM | 214.50 | 216 | 99.31 |
DSP | 322 | 360 | 89.44 |
IO | 2 | 252 | 0.79 |
BUFG | 15 | 196 | 7.65 |
表2加速器结果
ω1 | ω2 | RMSE | 计算时间(μs) |
0 | 0 | 0.0019534 | 118.535 |
6 | 4 | 0.0020925 | 117.875 |
7 | 4 | 0.0021746 | 115.195 |
8 | 4 | 0.0023195 | 112.515 |
9 | 4 | 0.0024406 | 110.850 |
10 | 4 | 0.0032199 | 106.160 |
11 | 4 | 0.0032340 | 105.505 |
12 | 4 | 0.0032653 | 104.765 |
5 | 4 | 0.0020689 | 119.305 |
Claims (6)
1.一种基于FPGA的长短期记忆网络硬件加速方法,其特征在于,该加速方法包括相似跳跃模块、LSTM模块和全连接模块,硬件平台采用XILINX的ZYNQ系列FPGA;在LSTM计算之前,先用当前时间步输入与上一时间步输入进行比较,得到输入相似度,根据相似度划分高相似、低相似、不相似三个等级,相似度大于90%为高相似,相似度在90%至50%之间为低相似,相似度低于50%为不相似,分别对应相似跳跃计算、输入稀疏计算、LSTM基础计算三种计算方法。
2.根据权利要求1所述的基于FPGA的长短期记忆网络硬件加速方法,其特征在于,所述的相似跳跃计算:对比两个时间步输入的相似度,若判断为高相似,则跳过该时间步的计算,用上一时间步的解代替该时间步解,该方法直接跳过多个时间步的计算,得到近似解。
3.根据权利要求2所述的基于FPGA的长短期记忆网络硬件加速方法,其特征在于,所述的输入稀疏计算包括以下步骤:
步骤1、将当前时间步输入与上一时间步输入求差,得到外输入差值向量ΔX和自输入差值向量ΔH,差值向量接近0的元素说明该元素前后时间步的变化量不大,不更新;
步骤2、对差值进行分组,分别对每一组的ΔX和ΔH进行排序,删除靠近0的一半的差值,保留变化较大的另一半差值;
步骤3、根据剩余差值的位置,得到包含位置信息的掩码向量;
步骤4、根据掩码,在LSTM计算时对输入和权重进行稀疏化,再进行计算,得到输入门i、遗忘门f、候选值c、输出门o四个门的更新值;
步骤5、在上一时间步对应门值的基础上加上更新值后,再进行后续的计算,得到近似解。
4.根据权利要求3所述的基于FPGA的长短期记忆网络硬件加速方法,其特征在于,所述的基础LSTM计算:片上ROM取出权值与偏置,权值与输入相乘后加上偏置得到门值,输入激活函数进行激活,计算得到各个门向量,根据门向量计算输出。
5.根据权利要求4所述的基于FPGA的长短期记忆网络硬件加速方法,其特征在于,所述相似度计算模块主要由Xt-1/Ht-1缓存模块、相似度比较模块、差值计算模块、排序模块和掩码模块构成;
Xt-1/Ht-1缓存模块:用于存储上一时间步t-1的外输入X和自输入H,若上一时间步不进行任何相似跳跃计算,则存储上一时间步的外输入X和自输入H,否则,不更新Xt-1和Ht-1;
相似度比较模块:用于比较两个时间步的输入的相似度,采用16位定点数,具体步骤如下:
步骤1:根据参数ω屏蔽两个时间步输入的低ω位,只比较第15位到ω位,若相等,则输出1,否则输出0;ω1为X的对应屏蔽位数参数,ω2为H的对应屏蔽位数参数;
步骤2:根据步骤1输出结果的总和除以总元素个数,得到输入相似度;
步骤3:根据相似度划分等级,相似度大于90%,进行高相似跳跃;相似度在90%至50%之间,进行输入稀疏跳跃;相似度低于50%,进行LSTM基础计算;
差值计算模块:该模块在输入稀疏计算中使用,用于计算X与Xt-1以及H与Ht-1的差值;
排序模块:该模块在输入稀疏计算中使用,将输入向量分组,每组四个元素,每组元素按绝对值大小输出其排序序号;
掩码模块:该模块在输入稀疏计算中使用,根据排序模块模块的结果,计算包含位置信息的掩码向量,方便后续对输入和权重进行稀疏化,该模块对2和3序号输出1,1和0序号输出0。
6.根据权利要求4所述的基于FPGA的长短期记忆网络硬件加速方法,其特征在于,所述LSTM模块主要由以下模块构成:
权重存储模块:用于存储外输入权值WX;
权重存储模块:用于存储自输入权值WH;
偏置存储模块:用于存储偏置;
X差值存储模块:用于存储外输入差值ΔX;
H差值存储模块:用于存储自输入差值ΔH;
X掩码存储模块:用于存储外输入X的掩码向量;
H掩码存储模块:用于存储自输入H的掩码向量;
稀疏化模块:该模块为多路选择器,根据掩码向量置1元素的位置,分别提取出对应位置的输入和权重元素;
乘法器模块:该模块为乘法器阵列,使用128个16位有符号DSP,会依次进行c、f、i、o四个门的矩阵乘法运算,以及c·i、f·ct-1和o·ct,其中ct-1为记忆值,ct为候选值,乘法器模块由两个多路选择器控制其输入,计算得到32位有符号数,截取最高位符号位、整数位低两位和小数位的高13位,对截去的小数进行四舍五入操作,保证截取精度;
门累加模块:该模块实现矩阵加法操作,分别累加矩阵每一行的乘法结果,再与对应的偏置求和,得到该门向量的一个元素;
激活函数模块:该模块包括Tanh和Sigmoid两个激活函数子模块,采用查找表方法,对四个门向量依次进行激活;
门模块:用于存储当前时刻激活后的c、f、i、o四个门向量;
记忆模块:用于存储上一时刻cell的记忆值ct-1;
Ut模块:存储上一时刻激活前的c、f、i、o四个门向量;
输出模块:用于存储输出Ht,以便下一时间步调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079953.0A CN116384454B (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的长短期记忆网络硬件加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310079953.0A CN116384454B (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的长短期记忆网络硬件加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116384454A true CN116384454A (zh) | 2023-07-04 |
CN116384454B CN116384454B (zh) | 2023-09-29 |
Family
ID=86971976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310079953.0A Active CN116384454B (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的长短期记忆网络硬件加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116384454B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107121679A (zh) * | 2017-06-08 | 2017-09-01 | 湖南师范大学 | 用于雷达回波外推的循环神经网络预测法及记忆单元结构 |
CN108763159A (zh) * | 2018-05-22 | 2018-11-06 | 中国科学技术大学苏州研究院 | 一种基于fpga的lstm前向运算加速器 |
US20190272465A1 (en) * | 2018-03-01 | 2019-09-05 | International Business Machines Corporation | Reward estimation via state prediction using expert demonstrations |
CN110576336A (zh) * | 2019-09-11 | 2019-12-17 | 大连理工大学 | 基于ssae-lstm模型的深孔加工刀具磨损量监测方法 |
CN110689123A (zh) * | 2019-09-27 | 2020-01-14 | 南京大学 | 基于脉动阵列的长短期记忆神经网络前向加速系统及方法 |
CN110717577A (zh) * | 2019-09-09 | 2020-01-21 | 广东工业大学 | 一种注意区域信息相似性的时间序列预测模型构建方法 |
WO2020072205A1 (en) * | 2018-10-01 | 2020-04-09 | Google Llc | Systems and methods for providing a machine-learned model with adjustable computational demand |
CN111221939A (zh) * | 2019-11-22 | 2020-06-02 | 华中师范大学 | 评分方法、装置和电子设备 |
CN111382860A (zh) * | 2019-11-13 | 2020-07-07 | 南京航空航天大学 | 一种lstm网络的压缩加速方法及fpga加速器 |
CN113222133A (zh) * | 2021-05-24 | 2021-08-06 | 南京航空航天大学 | 一种基于fpga的压缩lstm加速器及加速方法 |
CN113537465A (zh) * | 2021-07-07 | 2021-10-22 | 深圳市易成自动驾驶技术有限公司 | Lstm模型优化方法、加速器、装置及介质 |
CN114896481A (zh) * | 2022-05-05 | 2022-08-12 | 重庆理工大学 | 基于改进lstm和位置跳跃的兴趣点推荐方法 |
-
2023
- 2023-02-08 CN CN202310079953.0A patent/CN116384454B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107121679A (zh) * | 2017-06-08 | 2017-09-01 | 湖南师范大学 | 用于雷达回波外推的循环神经网络预测法及记忆单元结构 |
US20190272465A1 (en) * | 2018-03-01 | 2019-09-05 | International Business Machines Corporation | Reward estimation via state prediction using expert demonstrations |
CN108763159A (zh) * | 2018-05-22 | 2018-11-06 | 中国科学技术大学苏州研究院 | 一种基于fpga的lstm前向运算加速器 |
WO2020072205A1 (en) * | 2018-10-01 | 2020-04-09 | Google Llc | Systems and methods for providing a machine-learned model with adjustable computational demand |
CN110717577A (zh) * | 2019-09-09 | 2020-01-21 | 广东工业大学 | 一种注意区域信息相似性的时间序列预测模型构建方法 |
CN110576336A (zh) * | 2019-09-11 | 2019-12-17 | 大连理工大学 | 基于ssae-lstm模型的深孔加工刀具磨损量监测方法 |
CN110689123A (zh) * | 2019-09-27 | 2020-01-14 | 南京大学 | 基于脉动阵列的长短期记忆神经网络前向加速系统及方法 |
CN111382860A (zh) * | 2019-11-13 | 2020-07-07 | 南京航空航天大学 | 一种lstm网络的压缩加速方法及fpga加速器 |
CN111221939A (zh) * | 2019-11-22 | 2020-06-02 | 华中师范大学 | 评分方法、装置和电子设备 |
CN113222133A (zh) * | 2021-05-24 | 2021-08-06 | 南京航空航天大学 | 一种基于fpga的压缩lstm加速器及加速方法 |
CN113537465A (zh) * | 2021-07-07 | 2021-10-22 | 深圳市易成自动驾驶技术有限公司 | Lstm模型优化方法、加速器、装置及介质 |
CN114896481A (zh) * | 2022-05-05 | 2022-08-12 | 重庆理工大学 | 基于改进lstm和位置跳跃的兴趣点推荐方法 |
Non-Patent Citations (4)
Title |
---|
APPLE^?: "稀疏LSTM硬件结构", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/anpingbo/article/details/88902753> * |
CHANG GAO等: "Spartus: A 9.4 TOp/s FPGA-based LSTM Accelerator Exploiting Spatio-Temporal Sparsity", 《ARXIV》, pages 1 - 16 * |
张为森 等: "一种应用于CMOS图像传感器的列级高精度ADC设计", 《半导体光电》, vol. 43, no. 5, pages 867 - 872 * |
王瀚泽: "基于FPGA的神经网络加速器运算与访存优化设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 1, pages 135 - 1248 * |
Also Published As
Publication number | Publication date |
---|---|
CN116384454B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190034784A1 (en) | Fixed-point training method for deep neural networks based on dynamic fixed-point conversion scheme | |
US8019594B2 (en) | Method and apparatus for progressively selecting features from a large feature space in statistical modeling | |
CN110991631A (zh) | 一种基于fpga的神经网络加速系统 | |
CN113741858B (zh) | 存内乘加计算方法、装置、芯片和计算设备 | |
Fromm et al. | Heterogeneous bitwidth binarization in convolutional neural networks | |
WO2021056180A1 (en) | Cursor-based adaptive quantization for deep neural networks | |
Pereira et al. | An efficient extension to mixture techniques for prediction and decision trees | |
US20210256389A1 (en) | Method and system for training a neural network | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN113918882A (zh) | 可硬件实现的动态稀疏注意力机制的数据处理加速方法 | |
CN111522953B (zh) | 一种针对朴素贝叶斯分类器的边际攻击方法、装置及存储介质 | |
CN111582229A (zh) | 一种网络自适应半精度量化的图像处理方法和系统 | |
CN116384454B (zh) | 一种基于fpga的长短期记忆网络硬件加速方法 | |
Fuketa et al. | Image-classifier deep convolutional neural network training by 9-bit dedicated hardware to realize validation accuracy and energy efficiency superior to the half precision floating point format | |
CN113902109A (zh) | 一种神经网络规则化位串行计算的压缩方法及装置 | |
Jo et al. | Similarity-based LSTM architecture for energy-efficient edge-level speech recognition | |
CN114444686A (zh) | 一种卷积神经网络的模型参数量化方法、装置及相关装置 | |
GB2256737A (en) | A learning system for a neural network | |
Temenos et al. | A stochastic computing sigma-delta adder architecture for efficient neural network design | |
CN111753251A (zh) | 候选选择的方法和执行候选选择的加速器 | |
CN116415144A (zh) | 一种基于循环神经网络的模型压缩和加速方法 | |
US20240054369A1 (en) | Ai-based selection using cascaded model explanations | |
Erkut et al. | Distance‐constrained multifacility minimax location problems on tree networks | |
CN116187416A (zh) | 一种基于层剪枝灵敏度的迭代式重训练方法及一种图像处理器 | |
Sasao et al. | Handwritten digit recognition based on classification functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |