CN113191488A - 一种面向lstm网络模型的硬件加速系统 - Google Patents
一种面向lstm网络模型的硬件加速系统 Download PDFInfo
- Publication number
- CN113191488A CN113191488A CN202110484974.1A CN202110484974A CN113191488A CN 113191488 A CN113191488 A CN 113191488A CN 202110484974 A CN202110484974 A CN 202110484974A CN 113191488 A CN113191488 A CN 113191488A
- Authority
- CN
- China
- Prior art keywords
- data
- convolution
- subunit
- parallel
- function
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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
-
- 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/08—Learning methods
-
- 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
Abstract
本发明公开了一种面向LSTM网络模型的硬件加速系统,属于深度学习硬件加速技术领域。本发明公开了一种面向深度学习长短期记忆(LSTM)网络模型的硬件加速系统,包括网络推理计算核心和网络数据存储核心。网络推理计算核心作为LSTM网络模型的计算加速器,按照网络模型部署计算单元,实现卷积运算、矩阵点乘、矩阵加法、激活函数等计算单元的计算加速;网络数据存储核心作为LSTM网络模型的数据缓存和交互控制器,按照网络模型部署片上缓存单元,实现计算核心和片外存储器的数据交互纽带。本发明提高了LSTM网络模型的计算并行度,减少了处理延时,降低了访存时间,提高了访存效率。
Description
技术领域
本发明属于深度学习硬件加速领域,更具体地,涉及一种面向LSTM网络模型的硬件加速系统。
背景技术
长短期记忆网络(Long Short-Term Memory,LSTM)作为深度学习循环神经网络(Recurrent Neural Network,RNN)的一种变种,广泛应用于语音识别、自然语言处理、图像压缩等序列模型处理任务中。LSTM通过引入门控机制和用于存储长短期历史信息的状态值,有效解决RNN训练过程中出现的梯度爆炸和梯度消失问题,相对的也大幅增加了其计算复杂度和空间复杂度。其密集的计算量和访存量限制了其在资源有限的嵌入式硬件平台的应用,因此对LSTM模型进行面向硬件平台的设计及加速优化是一个极具意义的研究。
目前对深度学习进行硬件加速设计主要在计算和存储两个层面上进行优化,计算层面上一方面针对网络本身进行并行计算和流水线的架构设计;另一方面针对网络中占据大量计算的卷积运算进行优化设计,典型的包括快速卷积算法、通用矩阵乘法和快速傅里叶变化等。存储层面着手于合理分配片上和片外资源,降低片上-片外数据的交互频率,隐藏数据传输延时,例如“乒-乓”的片上双缓存策略和“FIFO+片外缓存”的两级缓存结构。以上这些优化方法已在卷积神经网络模型中得到了广泛的应用。对于LSTM模型而言由于其网络结构的特殊性,通用的优化方案往往无法取得较好的加速效果,往往需要面向模型特性进行定制加速设计。
在中国专利CN108805273A中公开了一种LSTM中门控单元计算运算的硬件实现,其采用模块复用思想设计设计硬件电路用于对LSTM中门控单元进行硬件加速,其中每个硬件电路由数据传输、输入层累加、隐藏层累加和非线性激活四个模块组成。该方法虽然实现了门控单元的优化加速,但对于LSTM单元中后续计算步骤未进行设计说明。
在中国专利CN108763159A中公开了一种基于FPGA的LSTM前向运算加速器,采用CPU软件和FPGA硬件协同模式工作,其中FPGA中设计了单DMA模型、双DMA模型和稀疏模式三种加速器架构。该方法虽然实现了LSTM模型系统加速,但其主要针对存储资源消耗的瓶颈进行优化,计算层面优化效果一般。
综上,虽然面向硬件平台的LSTM模型加速任务研究意义巨大,但该方面的研究成果仍相对匮乏,迫切需要一种通用性好、加速效果优异的LSTM网络加速设计。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种面向LSTM网络模型的硬件加速系统,其目的在于提高了LSTM网络模型的计算并行度,减少了处理延时,降低了访存时间,提高了访存效率。
为实现上述目的,本发明提供了一种面向LSTM网络模型的硬件加速系统,所述系统中包括网络推理计算核心,所述网络推理计算核心用于LSTM网络模型的计算加速器,按照网络模型部署计算单元,实现卷积运算、矩阵点乘、矩阵加法以及激活函数计算单元的计算加速;具体包括:
多路并行卷积计算单元,用于对输入特征图和外部状态特征图并行进行卷积运算;
多路并行矩阵加法计算单元,用于对多路并行卷积计算单元的输出两两进行矩阵加法运算;
多路并行激活函数计算单元,用于对多路并行矩阵加法计算单元的输出进行非线性激活函数运算,得到遗忘门、输入门、输出门和候选状态;
多路并行矩阵点乘计算单元,用于对多路并行激活函数计算单元输入门和内部状态进行矩阵点乘,并行的对遗忘门和历史内部状态进行矩阵点乘;
矩阵加法计算单元,用于对多路并行矩阵点乘计算单元的输出进行矩阵加法运算;
激活函数计算单元,用于对矩阵加法计算单元的输出进行激活函数计算;
矩阵点乘计算单元,用于对激活函数计算单元的输出和输出门进行矩阵点乘运算。
进一步地,所述多路并行卷积计算单元包括:
卷积模块获取子单元,用于输入特征图像素以数据流形式流入,采用卷积核大小的寄存器缓存卷积模板,两级串联行缓存FIFO缓存相邻行数据,FIFO的深度为特征图的列数,当行缓存FIFO实现预填充后,随着像素的不断流入不断生成新的卷积模板;
卷积计算子单元,用于将获得到的特征图卷积模板和权重矩阵进行流水乘累加运算,计算卷积输出;
卷积运算封装子单元,用于将卷积模块获取子单元和卷积计算子单元封装成模块IP;
并行卷积结构子单元,用于根据输入特征图并行和输出特征图并行粒度调用卷积运算IP,部署并行卷积结构。
进一步地,所述多路并行激活函数计算单元包括:
分段线性拟合子单元,用于使用基于最小二乘法的非均匀分段线性拟合法将非线性激活函数分段线性化;
分段线性激活函数子单元,用于实现分段线性激活函数的硬件电路部署。
进一步地,所述分段线性拟合子单元具体包括:
第一功能块,用于确定满足误差拟合的阈值点t,使得:
1-sigmoid(t)<ε
第二功能块,用于将待拟合的非线性函数[0,t]划分成一组较高精度的小区间:
α1=[s1,h1],α2=[s2,h2],α3=[s3,h3]……αn=[sn,hn]
第三功能块,用于将小区间均匀划分在一组大区间中:
β1={α1,α2……αi},β2={αi+1,αi+2……α2i}……βj={αn-i+1,αn-i+2……αn}
第四功能块,用于对每个大区间采用最小二乘法进行线性拟合,获得原始函数的线性拟合函数:
y1=k1x+b1,y2=k2x+b2……yj=kjx+bj
第五功能块,用于输入一组序列数,评估计算原始函数和分段线性拟合函数的误差:
{e1,e2,e3,e4……em}
第六功能块,用于绘制误差分布曲线,评估拟合误差分布是否均匀,对于误差较大的区间βi进行细分成更小区间{μ1,μ2,μ3……μk}提高精度,重新进行拟合,直到整个拟合后的函数误差分布较为均匀,获得非线性函数的激活函数:
其中,sigmoid()表示非线性激活函数;ε表示拟合误差;α1,2,3,..,n表示n个均匀划分的高精度小区间;s1,2,3,..,n表示n个小区间的左端点;h1,2,3,..,n表示n个小区间的右端点;β1,2,3,..,n表示n个合并的大区间;k1,2,3,..,j表示j个线性拟合的斜率;b1,2,3,..,j表示j个线性拟合的截距;e1,e2,e3,e4……em表示m个原始函数和线性拟合函数的误差;μ1,μ2,μ3……μk表示k个非均匀划分的小区间。
进一步地,所述分段线性激活函数子单元具体包括:
比较功能块,用于待激活的数据与分段区间点进行比较,获得其所处区间的索引值;
读取功能块,用于根据索引值读取斜率缓存Ram和截距缓存Ram中缓存的线性函数的斜率和截距;
计算功能块,用于将斜率值和待激活数据进行乘法运算,结果和截距值相加,得到待激活数据的激活值。
进一步地,所述系统还包括网络数据存储核心,所述网络数据存储核心用于LSTM网络模型的数据缓存和交互控制器,按照网络模型部署片上缓存单元,实现计算核心和片外存储器的数据交互纽带;其中包括:
片上多通道数据缓存阵列单元,用于分布在网络推理核心周围和其进行数据交互,缓存中间数据、输入特征图数据、输出特征图数据、状态特征图数据和权重数据;
多通道数据存储控制器单元,用于实现片内和外部存储器多通道数据并行交互。
进一步地,所述片上多通道数据缓存阵列单元包括:
中间数据缓存buffer子单元,用于两级流水间的逻辑粘合和数据平滑,分布在并行流水推理核心中,以寄存器或小容量的FIFO形式存在流水线结构中;
输入缓存阵列子单元,用于缓存推理核心输入特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输入特征图的并行度,输入缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输入并行计算结构对应;
输出缓存阵列子单元,用于缓存推理核心输出特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输出特征图的并行度,输出缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输出并行计算结构对应;
状态缓存阵列子单元,用于缓存推理核心内部状态和外部状态数据,由多个独立的缓存器Ram组成,Ram的个数对应于状态特征图的并行度,状态缓存阵列的存储映射方式和计算单元的状态特征图卷积的输入并行结构对应;
权重缓存阵列子单元,用于缓存推理核心的权重数据,由独立的缓存器Ram组成对应于并行的卷积计算单元,每个权重缓存阵列的的权重映射形式和输入特征图和状态特征图卷积运算的并行形式对应。
进一步地,所述多通道数据存储控制器单元包括:
读/写FIFO缓存模块子单元,用于片内-片外异步时钟域隔离、数据平滑缓存,适应多通道下数据读写;
存储器接口控制器子单元,用于根据片外存储器的读写时序要求,建立片内、片外数据交互的时序关系,保证和外部存储器建立有效的通信;
读/写通道仲裁器子单元,用于多通道数据并行读写仲裁,仲裁通过固定优先级+水位判断实现,通过统计各个通道的水位,包括读/写FIFO缓存模块的水位和外部存储器中该通道数据的水位,当某个通道的水位高于设定的阈值时则该通道获得数据交互的权限,若同时存在多个通道的水位高于设定的阈值则根据设定的固定优先级,优先级高的水位优先进行数据交互;
读/写地址产生子单元,用于产生各通道读写外部存储器数据的地址,通过计数器控制。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1)本发明设计网络计算推理核心,该计算核心采用并行流水架构,采用全局流水+局部并行的思想对LSTM模型进行加速,提高了LSTM单元的并行度,减少了处理延时;
(2)本发明针对推理计算核心中的卷积计算部分单独进行并行加速处理。由于LSTM模型中卷积计算单元的计算量远超过其他计算计算,对卷积模块单独进行输入并行+输出并行+卷积乘累加流水的并行结构设计,以减低卷积计算单元的处理延时,保证负载均衡;
(3)本单元针对推理计算核心中非线性激活函数进行分段线性拟合。非线性函数在硬件实现过程中资源占用多、延时大,为此提出基于最小二乘法的非均匀分段线性拟合方法对非线性激活函数进行线性拟合,和均匀分段线性拟合方法相比降低了拟合误差;
(4)本发明设计网络数据存储核心,该存储核心采用多通道memory-cache架构,按照计算核心架构合理分配片上缓存和片外存储,降低访存时间,提高访存效率;
(5)本发明针对数据存储核心中的片上缓存设计缓存阵列,面向计算核心架构进行缓存阵列部署,按照计算单元的并行结构进行数据存储映射,提高片上访存效率;
(6)本发明针对数据存储核心的片上-片外交互设计多通道数据控制器,控制器以标准FIFO的形式对片内交互提高控制器的通用性,并设计读写仲裁器实现多通道数据仲裁,提高带宽利用率。
附图说明
图1是本发明实施例中面向LSTM网络的硬件加速架构;
图2是本发明实施例中网络推理计算核心架构;
图3是本发明实施例中的网络数据存储核心架构;
图4是本发明实施例中3*3滑窗卷积模板生成示意图;
图5是本发明实施例中3*3卷积流水乘累加示意图;
图6是本发明实施例中“2输入并行+4输出并行”卷积计算示意图;
图7是本发明实施例中分段线性激活函数硬件结构;
图8是本发明实施例中片上多通道数据缓存阵列存储映射方式示意图;
图9是本发明实施例中多通道数据存储控制器示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示为本发明实施例公开的一种面向LSTM网络的硬件加速架构,其中“片外存储器”为外挂的片外存储器件,“片内处理单元”为本申请中架构的主体部分,主要包括:
网络推理计算核心:作为LSTM网络模型的计算加速器,按照网络模型部署计算单元,实现卷积运算、矩阵点乘、矩阵加法、激活函数等计算单元的计算加速,如图2所示为本发明实施例提供的网络推理计算核心架构;
网络推理计算核心包括:
八路并行卷积计算单元:对输入特征图xt和外部状态特征图ht-1并行进行卷积运算:
八路并行卷积计算单元包括以下子单元:
输入特征图卷积模块获取子单元,用于输入特征图像素以数据流形式流入,采用卷积核大小的寄存器缓存卷积模板,两级串联行缓存FIFO缓存相邻行数据,FIFO的深度为特征图的列数,当行缓存FIFO实现预填充后,随着像素的不断流入不断生成新的卷积模板,如图4所示为本发明实施例提供的3*3滑窗卷积模板生成示意图;
卷积计算子单元,将获得到的特征图卷积模板和权重矩阵进行流水乘累加运算,计算卷积输出,如图5所示为本发明实施例提供的3*3卷积流水乘累加示意图;
卷积运算封装子单元,用于将输入特征图卷积模块获取子单元和卷积计算子单元封装成模块IP;
并行卷积结构子单元,用于根据进行输入特征图并行和输出特征图并行粒度调用卷积运算IP,部署并行卷积结构。如图6所示为本发明实施例提供的“2输入并行+4输出并行”卷积计算示意图;
四路并行矩阵加法计算单元,用于对八路并行卷积计算的输出两两进行矩阵加法运算:
o_ft=Conv1+Conv5+bf
o_it=Conv2+Conv6+bi
o_ot=Conv3+Conv7+bo
o_ct=Conv4+Conv8+bc
四路并行激活函数计算单元,用于对四路并行矩阵加法计算单元的输出进行非线性激活函数运算,得到遗忘门、输入门、输出门和候选状态:
四路并行激活函数计算单元包括:
分段线性拟合子单元,用于使用基于最小二乘法的非均匀分段线性拟合法将非线性激活函数分段线性化,LSTM单元中包含两种激活函数sigmoid(x)和tanh(x),其中tanh(x)可以使用sigmoid(x)来表示:
并且sigmoid(x)关于(0,0.5)中心对称:
sigmoid(x)=1-sigmoid(-x),x<0
因此只需对sigmoid(x)正半轴部分的分段线性拟合,sigmoid(x)的负半轴和tanh(x)可采用模块复用的方式,包括以下功能块:
第一功能块,用于确定满足误差拟合的阈值点t,使得:
1-sigmoid(t)<ε
第二功能块,用于将待拟合的非线性函数[0,t]划分成一组较高精度的小区间:
α1=[s1,h1],α2=[s2,h2],α3=[s3,h3]……αn=[sn,hn]
第三功能块,用于将小区间均匀划分在一组大区间中:
β1={α1,α2……αi},β2={αi+1,αi+2……α2i}……βj={αn-i+1,αn-i+2……αn}
第四功能块,用于对每个大区间采用最小二乘法进行线性拟合,获得原始函数的线性拟合函数:
y=k1x+b1,y=k2x+b2……y=kjx+bj
第五功能块,用于输入一组序列数,评估计算原始函数和分段线性拟合函数的误差:
{e1,e2,e3,e4……em}
第六功能块,用于绘制误差分布曲线,评估拟合误差分布是否均匀,对于误差较大的区间βi进行细分成更小区间{μ1,μ2,μ3……μk}提高精度,重新进行拟合,直到整个拟合后的函数误差分布较为均匀,获得非线性函数的激活函数:
其中,sigmoid()表示非线性激活函数;ε表示拟合误差;α1,2,3,..,n表示均匀划分的高精度小区间;s1,2,3,..,n表示小区间的左端点;h1,2,3,..,n表示小区间的右端点;β1,2,3,..,n表示合并的大区间;k1,2,3,..,j表示线性拟合的斜率;b1,2,3,..,j表示线性拟合的截距;e1,e2,e3,e4……em表示原始函数和线性拟合函数的误差;μ1,μ2,μ3……μk表示非均匀划分的小区间。
分段线性激活函数子单元,用于实现分段线性激活函数的硬件电路部署,如图7所示为本发明实施例提供的分段线性激活函数硬件结构。
分段线性激活函数子单元包括:
比较功能块,用于待激活的数据与分段区间点进行比较,获得其所处区间的索引值;
读取功能块,用于根据索引值读取斜率缓存Ram和截距缓存Ram中缓存的线性函数的斜率和截距;
计算功能块,用于将斜率值和待激活数据进行乘法运算,结果和截距值相加,得到待激活数据的激活值。
多路并行矩阵点乘计算单元,用于对多路并行激活函数计算单元输入门和内部状态进行矩阵点乘:
fct=ft⊙ct-1
ict=it⊙ct
矩阵加法计算单元,用于对多路并行矩阵点乘计算单元的输出进行矩阵加法运算:
ct=fct+ict
激活函数计算单元,用于对矩阵加法计算单元的输出进行激活函数计算:
act=tanh(ct)
矩阵点乘计算单元,用于对激活函数计算单元的输出和输出门进行矩阵点乘运算:
ht=ot⊙act
网络数据存储核心用于LSTM网络模型的数据缓存和交互控制器,按照网络模型部署片上缓存单元,实现计算核心和片外存储器的数据交互纽带,如图3所示为本发明实施例提供的网络数据存储核心架构;其中包括片上多通道数据缓存阵列单元和多通道数据存储控制器单元:
片上多通道数据缓存阵列单元,用于分布在网络推理核心周围和其进行数据交互,缓存中间数据、输入特征图数据、输出特征图数据、状态特征图数据和权重数据;所述片上多通道数据缓存阵列单元包括:
中间数据缓存buffer子单元,用于两级流水间的逻辑粘合和数据平滑,分布在并行流水推理核心中,以寄存器或小容量的FIFO形式存在流水线结构中;
输入缓存阵列子单元,用于缓存推理核心输入特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输入特征图的并行度,输入缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输入并行计算结构对应;如图8所示为本发明实施例提供的片上多通道数据缓存阵列存储映射方式示意图,其中(a)为输入特征图通道数为8,“两路输入并行”的输入缓存阵列存储映射方式。RAM0和RAM1为两个独立的缓存器用来缓存输入特征图;
输出缓存阵列子单元,用于缓存推理核心输出特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输出特征图的并行度,输出缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输出并行计算结构对应;如图8所示为本发明实施例提供的片上多通道数据缓存阵列存储映射方式示意图,其中(b)为输出特征图通道数为16,“四路输出并行”的输出缓存阵列存储映射方式。RAM0-RAM4为五个独立的缓存器,其中RAM0-RAM3用来缓存输出外部状态特征图,RAM4用来缓存输出内部状态特征图;
状态缓存阵列子单元,用于缓存推理核心内部状态和外部状态数据,由多个独立的缓存器Ram组成,Ram的个数对应于状态特征图的并行度,状态缓存阵列的存储映射方式和计算单元的状态特征图卷积的输入并行结构对应;如图8所示为本发明实施例提供的片上多通道数据缓存阵列存储映射方式示意图,其中(c)为状态特征图通道数为8,“两路状态并行”的状态缓存阵列存储映射方式。RAM0-RAM2为三个独立的缓存器,其中RAM0、RAM1用来缓存输入外部状态特征图,RAM2用来缓存输入内部状态特征图;
权重缓存阵列子单元,用于缓存推理核心的权重数据,由独立的缓存器Ram组成对应于并行的卷积计算单元,每个权重缓存阵列的的权重映射形式和输入特征图和状态特征图卷积运算的并行形式对应,如图8所示为本发明实施例提供的片上多通道数据缓存阵列存储映射方式示意图,其中(d)为输入特征图通道数为4,输出特征图通道数为8,“两路输入并行+四路输出并行”的权重缓存阵列存储映射方式。
所述多通道数据存储控制器单元,用于实现片内和外部存储器多通道数据并行交互。如图9为本发明实施例提供的多通道数据存储控制器单元示意图。所述多通道数据存储控制器单元包括:
读/写FIFO缓存模块子单元,用于片内-片外异步时钟域隔离、数据平滑缓存,适应多通道下数据读写;
存储器接口控制器子单元,用于根据片外存储器的读写时序要求,建立片内、片外数据交互的时序关系,保证和外部存储器建立有效的通信;
读/写通道仲裁器子单元,用于多通道数据并行读写仲裁,仲裁通过固定优先级+水位判断实现,通过统计各个通道的水位,包括读/写FIFO缓存模块的水位和外部存储器中该通道数据的水位,当某个通道的水位高于设定的阈值时则该通道获得数据交互的权限,若同时存在多个通道的水位高于设定的阈值则根据设定的固定优先级,优先级高的水位优先进行数据交互;
读/写地址产生子单元,用于产生各通道读写外部存储器数据的地址,通过计数器控制。
以上内容本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种面向LSTM网络模型的硬件加速系统,其特征在于,所述系统中包括网络推理计算核心,所述网络推理计算核心用于LSTM网络模型的计算加速器,按照网络模型部署计算单元,实现卷积运算、矩阵点乘、矩阵加法以及激活函数计算单元的计算加速;具体包括:
多路并行卷积计算单元,用于对输入特征图和外部状态特征图并行进行卷积运算;
多路并行矩阵加法计算单元,用于对多路并行卷积计算单元的输出两两进行矩阵加法运算;
多路并行激活函数计算单元,用于对多路并行矩阵加法计算单元的输出进行非线性激活函数运算,得到遗忘门、输入门、输出门和候选状态;
多路并行矩阵点乘计算单元,用于对多路并行激活函数计算单元输入门和内部状态进行矩阵点乘,并行的对遗忘门和历史内部状态进行矩阵点乘;
矩阵加法计算单元,用于对多路并行矩阵点乘计算单元的输出进行矩阵加法运算;
激活函数计算单元,用于对矩阵加法计算单元的输出进行激活函数计算;
矩阵点乘计算单元,用于对激活函数计算单元的输出和输出门进行矩阵点乘运算。
2.根据权利要求1所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述多路并行卷积计算单元包括:
卷积模块获取子单元,用于输入特征图像素以数据流形式流入,采用卷积核大小的寄存器缓存卷积模板,两级串联行缓存FIFO缓存相邻行数据,FIFO的深度为特征图的列数,当行缓存FIFO实现预填充后,随着像素的不断流入不断生成新的卷积模板;
卷积计算子单元,用于将获得到的特征图卷积模板和权重矩阵进行流水乘累加运算,计算卷积输出;
卷积运算封装子单元,用于将卷积模块获取子单元和卷积计算子单元封装成模块IP;
并行卷积结构子单元,用于根据输入特征图并行和输出特征图并行粒度调用卷积运算IP,部署并行卷积结构。
3.根据权利要求1所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述多路并行激活函数计算单元包括:
分段线性拟合子单元,用于使用基于最小二乘法的非均匀分段线性拟合法将非线性激活函数分段线性化;
分段线性激活函数子单元,用于实现分段线性激活函数的硬件电路部署。
4.根据权利要求3所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述分段线性拟合子单元具体包括:
第一功能块,用于确定满足误差拟合的阈值点t,使得:
1-sigmoid(t)<ε
第二功能块,用于将待拟合的非线性函数[0,t]划分成一组较高精度的小区间:
α1=[s1,h1],α2=[s2,h2],α3=[s3,h3]……αn=[sn,hn]
第三功能块,用于将小区间均匀划分在一组大区间中:
β1={α1,α2……αi},β2={αi+1,αi+2……α2i}……βj={αn-i+1,αn-i+2……αn}
第四功能块,用于对每个大区间采用最小二乘法进行线性拟合,获得原始函数的线性拟合函数:
y1=k1x+b1,y2=k2x+b2……yj=kjx+bj
第五功能块,用于输入一组序列数,评估计算原始函数和分段线性拟合函数的误差:
{e1,e2,e3,e4……em}
第六功能块,用于绘制误差分布曲线,评估拟合误差分布是否均匀,对于误差较大的区间βi进行细分成更小区间{μ1,μ2,μ3……μk}提高精度,重新进行拟合,直到整个拟合后的函数误差分布较为均匀,获得非线性函数的激活函数:
其中,sigmoid()表示非线性激活函数;ε表示拟合误差;α1,2,3,..,n表示n个均匀划分的高精度小区间;s1,2,3,..,n表示n个小区间的左端点;h1,2,3,..,n表示n个小区间的右端点;β1,2,3,..,n表示n个合并的大区间;k1,2,3,..,j表示j个线性拟合的斜率;b1,2,3,..,j表示j个线性拟合的截距;e1,e2,e3,e4……em表示m个原始函数和线性拟合函数的误差;μ1,μ2,μ3……μk表示k个非均匀划分的小区间。
5.根据权利要求3所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述分段线性激活函数子单元具体包括:
比较功能块,用于待激活的数据与分段区间点进行比较,获得其所处区间的索引值;
读取功能块,用于根据索引值读取斜率缓存Ram和截距缓存Ram中缓存的线性函数的斜率和截距;
计算功能块,用于将斜率值和待激活数据进行乘法运算,结果和截距值相加,得到待激活数据的激活值。
6.根据权利要求1所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述系统还包括网络数据存储核心,所述网络数据存储核心用于LSTM网络模型的数据缓存和交互控制器,按照网络模型部署片上缓存单元,实现计算核心和片外存储器的数据交互纽带;其中包括:
片上多通道数据缓存阵列单元,用于分布在网络推理核心周围和其进行数据交互,缓存中间数据、输入特征图数据、输出特征图数据、状态特征图数据和权重数据;
多通道数据存储控制器单元,用于实现片内和外部存储器多通道数据并行交互。
7.根据权利要求6所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述片上多通道数据缓存阵列单元包括:
中间数据缓存buffer子单元,用于两级流水间的逻辑粘合和数据平滑,分布在并行流水推理核心中,以寄存器或小容量的FIFO形式存在流水线结构中;
输入缓存阵列子单元,用于缓存推理核心输入特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输入特征图的并行度,输入缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输入并行计算结构对应;
输出缓存阵列子单元,用于缓存推理核心输出特征图数据,由多个独立的缓存器Ram组成,Ram的个数对应于输出特征图的并行度,输出缓存阵列的存储映射方式和计算单元的输入特征图卷积计算的输出并行计算结构对应;
状态缓存阵列子单元,用于缓存推理核心内部状态和外部状态数据,由多个独立的缓存器Ram组成,Ram的个数对应于状态特征图的并行度,状态缓存阵列的存储映射方式和计算单元的状态特征图卷积的输入并行结构对应;
权重缓存阵列子单元,用于缓存推理核心的权重数据,由独立的缓存器Ram组成对应于并行的卷积计算单元,每个权重缓存阵列的的权重映射形式和输入特征图和状态特征图卷积运算的并行形式对应。
8.根据权利要求6所述的一种面向LSTM网络模型的硬件加速系统,其特征在于,所述多通道数据存储控制器单元包括:
读/写FIFO缓存模块子单元,用于片内-片外异步时钟域隔离、数据平滑缓存,适应多通道下数据读写;
存储器接口控制器子单元,用于根据片外存储器的读写时序要求,建立片内、片外数据交互的时序关系,保证和外部存储器建立有效的通信;
读/写通道仲裁器子单元,用于多通道数据并行读写仲裁,仲裁通过固定优先级+水位判断实现,通过统计各个通道的水位,包括读/写FIFO缓存模块的水位和外部存储器中该通道数据的水位,当某个通道的水位高于设定的阈值时则该通道获得数据交互的权限,若同时存在多个通道的水位高于设定的阈值则根据设定的固定优先级,优先级高的水位优先进行数据交互;
读/写地址产生子单元,用于产生各通道读写外部存储器数据的地址,通过计数器控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110484974.1A CN113191488B (zh) | 2021-04-30 | 2021-04-30 | 一种面向lstm网络模型的硬件加速系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110484974.1A CN113191488B (zh) | 2021-04-30 | 2021-04-30 | 一种面向lstm网络模型的硬件加速系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113191488A true CN113191488A (zh) | 2021-07-30 |
CN113191488B CN113191488B (zh) | 2022-05-20 |
Family
ID=76983852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110484974.1A Active CN113191488B (zh) | 2021-04-30 | 2021-04-30 | 一种面向lstm网络模型的硬件加速系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113191488B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115660035A (zh) * | 2022-12-28 | 2023-01-31 | 南京南瑞信息通信科技有限公司 | 一种用于lstm网络的硬件加速器及lstm模型 |
WO2023202352A1 (zh) * | 2022-04-21 | 2023-10-26 | 北京字跳网络技术有限公司 | 一种语音识别方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
CN108763159A (zh) * | 2018-05-22 | 2018-11-06 | 中国科学技术大学苏州研究院 | 一种基于fpga的lstm前向运算加速器 |
US20190325298A1 (en) * | 2016-12-30 | 2019-10-24 | Sanghai Cambricon Information Technology Co., Ltd. | Apparatus for executing lstm neural network operation, and operational method |
CN111709519A (zh) * | 2020-06-17 | 2020-09-25 | 湖南大学 | 一种深度学习并行计算架构方法及其超参数自动配置优化 |
-
2021
- 2021-04-30 CN CN202110484974.1A patent/CN113191488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190325298A1 (en) * | 2016-12-30 | 2019-10-24 | Sanghai Cambricon Information Technology Co., Ltd. | Apparatus for executing lstm neural network operation, and operational method |
CN108090560A (zh) * | 2018-01-05 | 2018-05-29 | 中国科学技术大学苏州研究院 | 基于fpga的lstm递归神经网络硬件加速器的设计方法 |
CN108763159A (zh) * | 2018-05-22 | 2018-11-06 | 中国科学技术大学苏州研究院 | 一种基于fpga的lstm前向运算加速器 |
CN111709519A (zh) * | 2020-06-17 | 2020-09-25 | 湖南大学 | 一种深度学习并行计算架构方法及其超参数自动配置优化 |
Non-Patent Citations (2)
Title |
---|
SHAORUN WANG等: "《Acceleration of LSTM With Structured Pruning Method on FPGA》", 《 IEEE ACCESS》 * |
徐进 等: "《基于多重门限机制的异步深度强化学习》", 《计算机学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023202352A1 (zh) * | 2022-04-21 | 2023-10-26 | 北京字跳网络技术有限公司 | 一种语音识别方法、装置、电子设备和存储介质 |
CN115660035A (zh) * | 2022-12-28 | 2023-01-31 | 南京南瑞信息通信科技有限公司 | 一种用于lstm网络的硬件加速器及lstm模型 |
CN115660035B (zh) * | 2022-12-28 | 2023-08-11 | 南京南瑞信息通信科技有限公司 | 一种用于lstm网络的硬件加速器及lstm模型 |
Also Published As
Publication number | Publication date |
---|---|
CN113191488B (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263925B (zh) | 一种基于fpga的卷积神经网络前向预测的硬件加速实现装置 | |
CN108416422B (zh) | 一种基于fpga的卷积神经网络实现方法及装置 | |
US20230014783A1 (en) | Processing for multiple input data sets | |
US10459876B2 (en) | Performing concurrent operations in a processing element | |
CN109328361B (zh) | 用于深度神经网络的加速器 | |
CN109948784B (zh) | 一种基于快速滤波算法的卷积神经网络加速器电路 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
CN113191488B (zh) | 一种面向lstm网络模型的硬件加速系统 | |
US20180157969A1 (en) | Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network | |
CN108229671B (zh) | 一种降低加速器外部数据存储带宽需求的系统和方法 | |
CN110543939B (zh) | 一种基于fpga的卷积神经网络后向训练的硬件加速实现装置 | |
CN111178518A (zh) | 一种基于fpga的软硬件协同的加速方法 | |
US11763156B2 (en) | Neural network compression based on bank-balanced sparsity | |
CN110321997B (zh) | 高并行度计算平台、系统及计算实现方法 | |
Chen et al. | A high-throughput and energy-efficient RRAM-based convolutional neural network using data encoding and dynamic quantization | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
Li et al. | Input-aware dynamic timestep spiking neural networks for efficient in-memory computing | |
Li et al. | Optimized data reuse via reordering for sparse matrix-vector multiplication on fpgas | |
CN112183732A (zh) | 卷积神经网络加速方法、装置和计算机设备 | |
CN113869494A (zh) | 基于高层次综合的神经网络卷积fpga嵌入式硬件加速器 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
CN113516236A (zh) | 基于zynq平台的vgg16网络并行加速处理方法 | |
US11900239B2 (en) | Systems and methods for accelerating sparse neural network execution | |
CN111382854B (zh) | 一种卷积神经网络处理方法、装置、设备及存储介质 | |
CN113762480A (zh) | 一种基于一维卷积神经网络的时间序列处理加速器 |
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 |