CN111652361B - 长短时记忆网络的复合粒度近存储近似加速结构系统和方法 - Google Patents
长短时记忆网络的复合粒度近存储近似加速结构系统和方法 Download PDFInfo
- Publication number
- CN111652361B CN111652361B CN202010501118.8A CN202010501118A CN111652361B CN 111652361 B CN111652361 B CN 111652361B CN 202010501118 A CN202010501118 A CN 202010501118A CN 111652361 B CN111652361 B CN 111652361B
- Authority
- CN
- China
- Prior art keywords
- address
- configuration
- module
- storage
- data
- 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.)
- Active
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Abstract
本发明提出长短时记忆网络的复合粒度近存储近似加速结构系统和方法,属于长短时记忆网络加速技术领域。其核心是基于复合粒度的划分策略对计算任务进行并行划分,该加速结构包括:矩阵向量运算模块、近存储近似加速存储模块、近存储近似加速运算模块、近存储近似加速运算的功能配置模块。本发明提出长短时记忆网络的复合粒度近存储近似加速结构和方法,将存储结构和近似计算单元结构进行了紧耦合的设计,通过复合粒度的任务划分和并行计算策略,针对长短时记忆神经网络设计了更高效、更灵活的加速结构。
Description
技术领域
本发明属于长短时记忆网络加速技术领域,具体涉及长短时记忆网络的复合粒度近存储近似加速结构系统和方法。
背景技术
近年来,随着深度学习的不断发展,长短时记忆网络(LSTM)作为一种特殊的循环神经网络,因其对长序列有非常好的表现,在许多领域得到了广泛的应用,比如声音、视频等。但是,随着神经网络应用的快速增加,网路规模不断扩大,需要处理的数据流急剧增加,以及对处理延迟和功耗要求的进一步提高,会对内存和带宽带来极大的挑战,同时数据间的依赖关系,集中计算要求极大的限制了网络加速器的性能。这使得传统结构的长短时记忆网络很难满足设计要求。
因此,针对长短时记忆网络中对内存带宽要求高、计算功耗大的问题,需要对现有技术进行改进,以提高长短时记忆神经网络的的处理并行度与运算速度。
发明内容
本发明的目的是为了克服现有技术所存在的不足而提出了长短时记忆网络的复合粒度近存储近似加速结构系统和方法,基于复合粒度网络模型实现长短时记忆网络调度策略的划分,并使用近存储近似加速运算模块来执行运算,可以更好地提高运算的并行性与运算速度。
为了解决上述技术问题,本发明提出如下技术方案:
本发明基于复合粒度任务划分策略,提出长短时记忆网络的复合粒度近存储近似加速结构。复合粒度由粗粒度和细粒度构成,粗粒度为细胞级别的并行加速,细粒度为细胞内部的矩阵加速。
本发明提出的长短时记忆网络的复合粒度近存储近似加速结构系统包括:近存储近似加速存储模块、矩阵向量运算模块、近存储近似加速运算模块、近存储近似加速运算的功能配置模块。
首先矩阵向量运算模块用于进行矩阵与向量之间的计算,所获得的计算中间向量数据存储在近存储近似加速存储模块中,并由近存储近似加速存储模块向近存储近似加速运算模块提供各种向量数据,近存储近似加速运算模块用于进行向量与向量之间的计算,近存储近似加速运算的功能配置模块用于对近存储近似加速运算模块进行配置。
进一步,近存储近似加速运算模块进行的向量与向量之间的计算任务包括若干不同的向量计算类型,近存储近似加速运算的功能配置模块实现对不同的向量计算类型的支持。
进一步,矩阵向量运算模块主要用来计算乘加操作,近存储近似加速运算模块用来计算激活函数或者是加法操作。
对长短时记忆网络的采用复合粒度任务划分策略来对计算任务进行划分,实现矩阵与向量之间的计算任务发送给矩阵向量运算模块、向量与向量之间的计算任务发送给近存储近似加速运算模块,并且两个运算模块同时并行计算任务,从而实现计算加速,使得执行效率更高、功耗也更低。
本发明提出的长短时记忆网络的复合粒度近存储近似加速结构中,近存储近似加速运算模块包括:第一数据存储模块、第二数据存储模块、数据处理单元。需要进行运算的数据分别输入到第一数据存储模块和第二数据存储模块中,运算得到的数据由第一数据存储模块输出。
第一数据存储模块和第二数据存储单元模块都是大小为1KB的地址存储区,其位宽均为16×16bit,深度均为32。第一部分和S0i(i=1,2,......9,A,B)、第二部分和S1i(i=1,2,......9,A,B)分别存储在第一数据存储模块和第二数据存储模块。
进一步,基于复合粒度任务划分策略下,LSTM的第一部分和S0i、第二部分和S1i计算步骤具体如下:
步骤A01,设在第t时刻,网络读入第t个输入xt,同时配置输入门i、遗忘门f、记忆单元c及输出门o响应的权值b和偏置值W,第一部分和、第二部分和满足以下公示:
步骤A02,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻隐层的状态值ht-1,第一部分和、第二部分和满足以下公示:
步骤A03,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻记忆单元向量值ct-1,第一部分和、第二部分和满足以下公示:
步骤A04,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A05,计算得到输入门i、遗忘门f的向量值it和ft,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
上式中,it=σ(Wixxt+Wihht-1+Wicct-1+bi),ft=σ(Wfxxt+Wfhht-1+Wfcct-1+bf),其中σ为sigmoid函数。
步骤A06,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A07,计算得到记忆单元c的向量值ct,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
上式中,ct=ft⊙ct-1+it⊙φ(Wcxxt+Wchht-1+bc),其中⊙表示逐元素乘法操作,φ为双曲正切函数。
步骤A08,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A09,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A10,计算得到输出门o的向量值,第一部分和、第二部分和满足以下公示:
上式中,ot=σ(Woxxt+Wohht-1+Wocct-1+bo)。
步骤A11,计算得到第t时刻隐层的状态值ht,第一部分和、第二部分和满足以下公示:
上式中,ht=ot⊙φ(ct)。
近存储近似加速运算模块中的数据处理单元包括:配置文件缓存、配置文件解析器、第一地址发生器、第二地址发生器、多路选择器、多功能阵列处理器。
配置环境文件装载到配置文件缓存中,然后由配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址,第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址,被灌入第一地址发生器的第一地址、被灌入第二地址发生器的第二地址均输入到多路选择器中;配置文件解析器还对多路选择器进行配置,最终由多路选择器从第一地和第二地址中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址一并被输入到多功能阵列处理器中;同时,配置文件解析器还对多功能阵列处理器进行计算配置,对多路选择器的输出数据进行计算,然后将计算结果存储到第一地址中。
进一步,配置文件缓存是配置环境文件专用的高速缓存阵列;多功能阵列处理器是一种可重构的多功能阵列处理器,其输入为16bit定点数,可以完成加法、乘法以及sigmoid运算。
本发明提出的长短时记忆网络的复合粒度近存储近似加速结构中,由近存储近似加速运算的功能配置模块实现功能配置,近存储近似加速运算的功能配置模块位宽是16,功能配置模块包括:地址配置单元、多路选择器配置单元、计算配置单元。
进一步,功能配置模块的第0位到第7位是地址配置单元;其中,功能配置模块的第0位到第2位是地址发生器选择单元,用于选择地址发生器;功能配置模块的第3位到第7位是地址选择单元,用于选择地址发生器中的地址。
进一步,功能配置模块的第8位到第11位是多路选择器配置单元,用于乘法器选择运算的数据。
进一步,功能配置模块的第12位到15位是计算配置单元,用于表示进行运算的种类,计算配置单元可表示加法、乘法、逻辑运算、sigmoid运算以及近似乘法运算时,计算配置单元的最后两位用于配置近似乘法的迭代次数,迭代次数越多计算结果越精确。
本发明还提出的长短时记忆网络的复合粒度近存储近似加速方法,该加速方法的步骤具体如下:
步骤S1,加载配置文件:将配置环境的文件装载到配置配置文件缓存;
步骤S2,对所装载的配置文件进行解析,具体包括如下三个并行开展的步骤:
步骤S2-1,解析地址配置:
配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,用来进行选择是取第一地址发生器中的地址或者是选择第二地址发生器中的地址;
进一步,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址并灌入到第一地址发生器,第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址并灌入到第二地址发生器;
步骤S2-2,解析多路选择器配置:
配置文件解析器进行多路选择器配置分析操作,获得多路选择器配置文件,由多路选择器选择数据源;
进一步,被灌入第一地址发生器的第一地址、被灌入第二地址发生器的第二地址均输入到多路选择器中;
经过配置,多路选择器从第一地和第二地址中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址一并被输入到多功能阵列处理器中;
步骤S2-3,解析计算配置:
配置文件解析器进行多功能阵列处理器的计算配置,通过计算配置可重构的多功能阵列处理器(RMPA),对多路选择器的输出数据进行RMPA计算,然后将计算结果存储到第一地址中;
步骤S3,判断还有没有更多的配置文件,如果有返回步骤S1,如果没有则结束。
本发明提出的面向长短时记忆神经网络的近存储近似加速结构,相比现有技术,具有以下效益:
存储结构和近似计算单元结构进行了紧耦合的设计,通过复合粒度的任务划分和并行计算策略,针对长短时记忆神经网络设计了更高效、更灵活的加速结构。在具体计算中,通过复合粒度的任务划分和并行计算策略,将任务的并行度提升了30%以上,通过近存储近似加速结构和方法,进一步降低了功耗上的表现,可以提升20%以上的系统能效。
附图说明
图1为本发明提出长短时记忆网络的复合粒度近存储近似加速结构中,近存储近似加速运算模块的结构框架图;
图2为本发明提出长短时记忆网络的复合粒度近存储近似加速结构中,近存储近似加速运算模块电路的工作流程图;
图3为本发明提出长短时记忆网络的复合粒度近存储近似加速结构中,近存储近似加速运算的功能配置模块结构示意图。
具体实施方式
以下结合实施例子对本发明作进一步的详细描述。
实施例1。传统长短时记忆网络的加速结构,是基于单一粒度任务划分策略开展设计,而本发明提出长短时记忆网络的复合粒度近存储近似加速结构,是基于复合粒度任务划分策略开展设计。
进一步,复合粒度由粗粒度和细粒度构成,粗粒度为细胞级别的并行加速,细粒度为细胞内部的矩阵加速。基于复合粒度任务划分策略能够打破细胞级和门级之间的隔断关系。
基于复合粒度任务划分策略下,LSTM的计算具体步骤如下:
步骤A01,设在第t时刻,网络读入第t个输入xt,同时配置输入门i、遗忘门f、记忆单元c及输出门o响应的权值b和偏置值W,第一部分和、第二部分和满足以下公示:
步骤A02,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻隐层的状态值ht-1,第一部分和、第二部分和满足以下公示:
步骤A03,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻记忆单元向量值ct-1,第一部分和、第二部分和满足以下公示:
步骤A04,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A05,计算得到输入门i、遗忘门f的向量值it和ft,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
上式中,it=σ(Wixxt+Wihht-1+Wicct-1+bi),ft=σ(Wfxxt+Wfhht-1+Wfcct-1+bf),其中σ为sigmoid函数。
步骤A06,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A07,计算得到记忆单元c的向量值ct,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
上式中,ct=ft⊙ct-1+it⊙φ(Wcxxt+Wchht-1+bc),其中⊙表示逐元素乘法操作,φ为双曲正切函数。
步骤A08,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A09,计算输出门o的响应值,第一部分和、第二部分和满足以下公示:
步骤A10,计算得到输出门o的向量值,第一部分和、第二部分和满足以下公示:
上式中,ot=σ(Woxxt+Wohht-1+Wocct-1+bo)。
步骤A11,计算得到第t时刻隐层的状态值ht,第一部分和、第二部分和满足以下公示:
上式中,ht=ot⊙φ(ct)。
基于复合粒度的LSTM的计算任务并行划分策略,能够更好的实现细粒度下的数据级运算的并行性和粗粒度下的细胞级运算的并行性,通过重组、再分配LSTM中的任务,来提高并行性。在复合粒度网络分配模型中,在不同门和细胞中相同的操作会只执行一次。它将细粒度模型中的门和细胞之间以及粗粒度模型中的阶段之间的依赖操作转换为独立操作。
实施例2。本发明提出的长短时记忆网络的复合粒度近存储近似加速结构包括:近存储近似加速存储模块、矩阵向量运算模块、近存储近似加速运算模块、近存储近似加速运算的功能配置模块。
其中,首先矩阵向量运算模块用于进行矩阵与向量之间的计算,所获得的计算中间向量数据存储在近存储近似加速存储模块中,并由近存储近似加速存储模块向近存储近似加速运算模块提供各种向量数据,近存储近似加速运算模块用于进行向量与向量之间的计算,近存储近似加速运算的功能配置模块用于对近存储近似加速运算模块进行配置。
进一步,近存储近似加速运算模块进行的向量与向量之间的计算任务包括若干不同的向量计算类型,近存储近似加速运算的功能配置模块实现对不同的向量计算类型的支持。
进一步,矩阵向量运算模块主要用来计算乘加操作,近存储近似加速运算模块用来计算激活函数或者是加法操作。
对长短时记忆网络的采用复合粒度任务划分策略来对计算任务进行划分,实现矩阵与向量之间的计算任务发送给矩阵向量运算模块、向量与向量之间的计算任务发送给近存储近似加速运算模块,并且两个运算模块同时并行计算任务,从而实现计算加速,使得执行效率更高、功耗也更低。
实施例3。本发明提出的长短时记忆网络的复合粒度近存储近似加速结构中,近存储近似加速运算模块的结构如图1所示,该运算模块包括:第一数据存储模块、第二数据存储模块、数据处理单元。需要进行运算的数据分别输入到第一数据存储模块和第二数据存储模块中,运算得到的数据由第一数据存储模块输出。图1中,实线表示数据流,虚线表示配置流。
第一数据存储模块和第二数据存储单元模块都是大小为1KB的地址存储区,其位宽均为16×16bit,深度均为32,与复合粒度模型相对应。第一部分和S0i(i=1,2,......9,A,B)、第二部分和S1i(i=1,2,......9,A,B)分别存储在第一数据存储模块和第二数据存储模块。
数据处理单元包括:配置文件缓存、配置文件解析器、第一地址发生器、第二地址发生器、多路选择器、多功能阵列处理器。
配置环境文件装载到配置文件缓存中,然后由配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址Add_0_x(x=0,1,2,......,30,31),第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址Add_1_x(x=0,1,2,......,30,31),被灌入第一地址发生器的第一地址Add_0_x、被灌入第二地址发生器的第二地址Add_1_x均输入到多路选择器中;配置文件解析器还对多路选择器进行配置,最终由多路选择器从第一地Add_0_x和第二地址Add_1_x中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址Add_0_x一并被输入到多功能阵列处理器中;同时,配置文件解析器还对多功能阵列处理器进行计算配置,对多路选择器的输出数据进行计算,然后将计算结果存储到第一地址Add_0_x中。
进一步,配置文件缓存是配置环境文件专用的高速缓存阵列;多功能阵列处理器是一种可重构的多功能阵列处理器,其输入为16bit定点数,可以完成加法、乘法以及sigmoid运算。
基于复合粒度的网络模型,通过对长短时记忆网络中的任务进行划分和重组,进一步利用细粒度的数据级并行性和粗粒度的单元级并行性。在复合粒度的网络划分模型中,不同门和单元中相同或相似类型的操作被作为一个任务处理,从而将细粒度模型中门和单元之间的依赖操作以及粗粒度模型中阶段之间的依赖操作转换为独立操作。
实施例4。本发明还提出的长短时记忆网络的复合粒度近存储近似加速方法,该加速方法的步骤如图2所示,具体如下:
步骤S1,加载配置文件:将配置环境的文件装载到配置配置文件缓存;
步骤S2,对所装载的配置文件进行解析,具体包括如下三个并行开展的步骤:
步骤S2-1,解析地址配置:
配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,用来进行选择是取第一地址发生器中的地址或者是选择第二地址发生器中的地址;
进一步,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址Add_0_x(x=0,1,2,......,30,31)并灌入到第一地址发生器,第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址Add_1_x(x=0,1,2,......,30,31)并灌入到第二地址发生器;
步骤S2-2,解析多路选择器配置:
配置文件解析器进行多路选择器配置分析操作,获得多路选择器配置文件,由多路选择器选择数据源;
进一步,被灌入第一地址发生器的第一地址Add_0_x、被灌入第二地址发生器的第二地址Add_1_x均输入到多路选择器中;
经过配置,多路选择器从第一地Add_0_x和第二地址Add_1_x中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址Add_0_x一并被输入到多功能阵列处理器中;
步骤S2-3,解析计算配置:
配置文件解析器进行多功能阵列处理器的计算配置,通过计算配置可重构的多功能阵列处理器(RMPA),对多路选择器的输出数据进行RMPA计算,然后将计算结果存储到第一地址Add_0_x中;
步骤S3,判断还有没有更多的配置文件,如果有返回步骤S1,如果没有则结束。
实施例5。本发明提出的长短时记忆网络的复合粒度近存储近似加速结构中,由近存储近似加速运算的功能配置模块实现功能配置,近存储近似加速运算的功能配置模块位宽是16,如图3所示,功能配置模块包括:地址配置单元、多路选择器配置单元、计算配置单元。
进一步,功能配置模块的第0位到第7位是地址配置单元;其中,功能配置模块的第0位到第2位是地址发生器选择单元Bank,用于选择地址发生器;功能配置模块的第3位到第7位是地址选择单元Address,用于选择地址发生器中的地址。
本优选实施例中,地址发生器选择单元Bank为000时,代表选择第一地址发生器,地址选择单元Address为00000时代表选择第一地址Add_0_0,地址选择单元Address为00001时代表选择第一地址Add_0_1,以此类推,地址选择单元Address为11111时代表选择第一地址Add_0_31。
本优选实施例中,地址发生器选择单元Bank为001时,代表选择第二地址发生器,地址选择单元Address为00000时代表选择第二地址Add_1_0,地址选择单元Address为00001时代表选择第二地址Add_1_1,以此类推,地址选择单元Address为11111时代表选择第二地址Add_1_31。
进一步,功能配置模块的第8位到第11位是多路选择器配置单元MUX,用于乘法器选择运算的数据。
进一步,功能配置模块的第12位到15位是计算配置单元OpCode,用于表示进行运算的种类,本优选实施例中,计算配置单元OpCode为0000表示加法,计算配置单元OpCode为0100表示乘法,计算配置单元OpCode为1000表示逻辑运算,计算配置单元OpCode为1100表示sigmoid运算;当表示近似乘法运算时,计算配置单元OpCode的最后两位用于配置近似乘法的迭代次数,计算配置单元OpCode为0100、0101、0110分别表示迭代次数为0、1、2,迭代次数越多计算结果越精确。
以上具体实施方式及实施例是对本发明提出的长短时记忆网络的复合粒度近存储近似加速结构和方法的技术思想的具体支持,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在本技术方案基础上所做的任何等同变化或等效的改动,均仍属于本发明技术方案保护的范围。
Claims (6)
1.长短时记忆网络的复合粒度近存储近似加速结构系统,包括:近存储近似加速存储模块、矩阵向量运算模块、近存储近似加速运算模块、近存储近似加速运算的功能配置模块,其特征在于:
所述复合粒度近存储近似加速结构系统是基于复合粒度的任务划分策略并行开展计算任务,从而实现矩阵与向量之间的计算任务发送给矩阵向量运算模块、向量与向量之间的计算任务发送给近存储近似加速运算模块,矩阵向量运算模块、近存储近似加速运算模块同时并行开展计算任务;所述矩阵向量运算模块主要用来计算乘加操作,所述近存储近似加速运算模块用来计算激活函数或者是加法操作;
所述复合粒度由粗粒度和细粒度构成,粗粒度为细胞级别的并行加速,细粒度为细胞内部的矩阵加速;
所述近存储近似加速运算模块包括:第一数据存储模块、第二数据存储模块、数据处理单元;需要进行运算的数据分别输入到第一数据存储模块和第二数据存储模块中,即第一数据存储模块存储第一部分和、第二数据存储模块存储第二部分和,运算得到的数据由第一数据存储模块输出;
所述近存储近似加速运算的功能配置模块包括:地址配置单元、多路选择器配置单元、计算配置单元;
首先矩阵向量运算模块用于进行矩阵与向量之间的计算,所获得的计算中间向量数据存储在近存储近似加速存储模块中,并由近存储近似加速存储模块向近存储近似加速运算模块提供各种向量数据,近存储近似加速运算的功能配置模块用于对近存储近似加速运算模块进行功能配置。
2.根据权利要求1所述的长短时记忆网络的复合粒度近存储近似加速结构系统,其特征在于:所述第一数据存储模块和第二数据存储单元模块都是大小为1KB的地址存储区,其位宽均为16×16bit,深度均为32bit。
3.根据权利要求1所述的长短时记忆网络的复合粒度近存储近似加速结构系统,其特征在于:所述数据处理单元包括:配置文件缓存、配置文件解析器、第一地址发生器、第二地址发生器、多路选择器、多功能阵列处理器;
配置环境文件装载到配置文件缓存中,然后由配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址,第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址,被灌入第一地址发生器的第一地址、被灌入第二地址发生器的第二地址均输入到多路选择器中;配置文件解析器还对多路选择器进行配置,最终由多路选择器从第一地和第二地址中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址一并被输入到多功能阵列处理器中;同时,配置文件解析器还对多功能阵列处理器进行计算配置,对多路选择器的输出数据进行计算,然后将计算结果存储到第一地址中;
进一步,配置文件缓存是配置环境文件专用的高速缓存阵列;多功能阵列处理器是一种可重构的多功能阵列处理器,其输入为16bit定点数,完成加法、乘法以及sigmoid运算。
4.根据权利要求1所述的长短时记忆网络的复合粒度近存储近似加速结构系统,其特征在于:所述近存储近似加速运算的功能配置模块位宽是16bit;
所述功能配置模块的第0位到第7位是地址配置单元;其中,功能配置模块的第0位到第2位是地址发生器选择单元,用于选择地址发生器;功能配置模块的第3位到第7位是地址选择单元,用于选择地址发生器中的地址;
所述功能配置模块的第8位到第11位是多路选择器配置单元,用于乘法器选择运算的数据;
所述功能配置模块的第12位到15位是计算配置单元,用于表示进行运算的种类,计算配置单元表示加法、乘法、逻辑运算、sigmoid运算以及近似乘法运算时,计算配置单元的最后两位用于配置近似乘法的迭代次数。
5.长短时记忆网络的复合粒度近存储近似加速方法,其特征在于:该加速方法的步骤具体如下:
步骤S1,加载配置文件:将配置环境的文件装载到配置文件缓存;
步骤S2,对所装载的配置文件进行解析,具体包括如下三个并行开展的步骤:
步骤S2-1,解析地址配置:
配置文件解析器进行地址配置分析操作,获得地址配置文件分别装载到第一地址发送器和第二地址发生器,用来进行选择是取第一地址发生器中的地址或者是选择第二地址发生器中的地址;
进一步,第一地址发生器根据地址配置文件决定是否从第一数据存储模块中选择对应的第一地址并灌入到第一地址发生器,第二地址发生器根据地址配置文件决定是否从第二数据存储模块中选择对应的第二地址并灌入到第二地址发生器;
步骤S2-2,解析多路选择器配置:
配置文件解析器进行多路选择器配置分析操作,获得多路选择器配置文件,由多路选择器选择数据源;
进一步,被灌入第一地址发生器的第一地址、被灌入第二地址发生器的第二地址均输入到多路选择器中;
经过配置,多路选择器从第一地址和第二地址中选择一个地址所对应的数据作为多路选择器的输出数据、并且与第一地址一并被输入到多功能阵列处理器中;
步骤S2-3,解析计算配置:
配置文件解析器进行多功能阵列处理器的计算配置,通过计算配置可重构的多功能阵列处理器,对多路选择器的输出数据进行RMPA计算,然后将计算结果存储到第一地址中;
步骤S3,判断还有没有更多的配置文件,如果有返回步骤S1,如果没有则结束。
6.根据权利要求1所述的长短时记忆网络的复合粒度近存储近似加速结构系统,其特征在于:基于复合粒度任务划分策略下,存储于第一数据存储模块的第一部分和S0i、存储于第二数据存储模块的第二部分和S1i计算步骤具体如下,其中i代表计算步骤:
步骤A01,设在第t时刻,网络读入第t个输入xt,同时配置输入门i、遗忘门f、记忆单元c及输出门o响应的权值b和偏置值W,第一部分和、第二部分和满足以下公式:
步骤A02,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻隐层的状态值ht-1,第一部分和、第二部分和满足以下公式:
步骤A03,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,网络读入第t-1时刻记忆单元向量值ct-1,第一部分和、第二部分和满足以下公式:
步骤A04,计算输入门i、遗忘门f、记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公式:
步骤A05,计算得到输入门i、遗忘门f的向量值it和ft,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公式:
上式中,it=σ(Wixxt+Wihht-1+Wicct-1+bi),ft=σ(Wfxxt+Wfhht-1+Wfcct-1+bf),其中σ为sigmoid函数;
步骤A06,计算记忆单元c及输出门o的响应值,第一部分和、第二部分和满足以下公式:
步骤A07,计算得到记忆单元c的向量值ct,计算输出门o的响应值,第一部分和、第二部分和满足以下公式:
上式中,ct=ft⊙ct-1+it⊙φ(Wcxxt+Wchht-1+bc),其中⊙表示逐元素乘法操作,φ为双曲正切函数;
步骤A08,计算输出门o的响应值,第一部分和、第二部分和满足以下公式:
步骤A09,计算输出门o的响应值,第一部分和、第二部分和满足以下公式:
步骤A10,计算得到输出门o的向量值,第一部分和、第二部分和满足以下公式:
上式中,ot=σ(Woxxt+Wohht-1+Wocct-1+bo);
步骤A11,计算得到第t时刻隐层的状态值ht,第一部分和、第二部分和满足以下公式:
上式中,ht=ot⊙φ(ct)。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010501118.8A CN111652361B (zh) | 2020-06-04 | 2020-06-04 | 长短时记忆网络的复合粒度近存储近似加速结构系统和方法 |
PCT/CN2020/106988 WO2021243839A1 (zh) | 2020-06-04 | 2020-08-05 | 长短时记忆网络的复合粒度近存储近似加速结构和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010501118.8A CN111652361B (zh) | 2020-06-04 | 2020-06-04 | 长短时记忆网络的复合粒度近存储近似加速结构系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111652361A CN111652361A (zh) | 2020-09-11 |
CN111652361B true CN111652361B (zh) | 2023-09-26 |
Family
ID=72345026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010501118.8A Active CN111652361B (zh) | 2020-06-04 | 2020-06-04 | 长短时记忆网络的复合粒度近存储近似加速结构系统和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111652361B (zh) |
WO (1) | WO2021243839A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116805155B (zh) * | 2023-08-25 | 2024-01-19 | 太初(无锡)电子科技有限公司 | 一种lstm网络处理方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
CN110664412A (zh) * | 2019-09-19 | 2020-01-10 | 天津师范大学 | 一种面向可穿戴传感器的人类活动识别方法 |
CN111047007A (zh) * | 2019-11-06 | 2020-04-21 | 北京中科胜芯科技有限公司 | 一种针对量化后的lstm的激活函数计算单元 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268939B (zh) * | 2016-12-30 | 2021-09-07 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
CN106951961B (zh) * | 2017-02-24 | 2019-11-26 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
US20190205736A1 (en) * | 2017-12-29 | 2019-07-04 | Intel Corporation | Compute optimization mechanism for deep neural networks |
CN108805273A (zh) * | 2018-05-20 | 2018-11-13 | 复旦大学 | 一种lstm中门控单元加速运算的硬件实现电路 |
CN108763159A (zh) * | 2018-05-22 | 2018-11-06 | 中国科学技术大学苏州研究院 | 一种基于fpga的lstm前向运算加速器 |
US11726950B2 (en) * | 2019-09-28 | 2023-08-15 | Intel Corporation | Compute near memory convolution accelerator |
-
2020
- 2020-06-04 CN CN202010501118.8A patent/CN111652361B/zh active Active
- 2020-08-05 WO PCT/CN2020/106988 patent/WO2021243839A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
CN110664412A (zh) * | 2019-09-19 | 2020-01-10 | 天津师范大学 | 一种面向可穿戴传感器的人类活动识别方法 |
CN111047007A (zh) * | 2019-11-06 | 2020-04-21 | 北京中科胜芯科技有限公司 | 一种针对量化后的lstm的激活函数计算单元 |
Also Published As
Publication number | Publication date |
---|---|
CN111652361A (zh) | 2020-09-11 |
WO2021243839A1 (zh) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | DeltaRNN: A power-efficient recurrent neural network accelerator | |
Wang et al. | C-LSTM: Enabling efficient LSTM using structured compression techniques on FPGAs | |
Qiu et al. | Going deeper with embedded FPGA platform for convolutional neural network | |
Han et al. | Ese: Efficient speech recognition engine with sparse lstm on fpga | |
Luo et al. | Towards efficient deep neural network training by FPGA-based batch-level parallelism | |
Jang et al. | Energy-and time-efficient matrix multiplication on FPGAs | |
Akbari et al. | X-CGRA: An energy-efficient approximate coarse-grained reconfigurable architecture | |
US20180046903A1 (en) | Deep processing unit (dpu) for implementing an artificial neural network (ann) | |
Liu et al. | Hardware acceleration of fully quantized bert for efficient natural language processing | |
Zhao et al. | Serving recurrent neural networks efficiently with a spatial accelerator | |
Dass et al. | Vitality: Unifying low-rank and sparse approximation for vision transformer acceleration with a linear taylor attention | |
Xu et al. | CaFPGA: An automatic generation model for CNN accelerator | |
Chen et al. | A compact and configurable long short-term memory neural network hardware architecture | |
Fan et al. | Adaptable butterfly accelerator for attention-based NNs via hardware and algorithm co-design | |
Li et al. | Dynamic dataflow scheduling and computation mapping techniques for efficient depthwise separable convolution acceleration | |
Park et al. | A neural network training processor with 8-bit shared exponent bias floating point and multiple-way fused multiply-add trees | |
Zamirai et al. | Revisiting BFfloat16 Training | |
Tang et al. | Neurometer: An integrated power, area, and timing modeling framework for machine learning accelerators industry track paper | |
CN111652361B (zh) | 长短时记忆网络的复合粒度近存储近似加速结构系统和方法 | |
Zhang et al. | Achieving full parallelism in LSTM via a unified accelerator design | |
Chiu et al. | Flexibility: FPGAs and CAD in deep learning acceleration | |
WO2020257531A1 (en) | Mixed-signal acceleration of deep neural networks | |
Michalakes | Hpc for weather forecasting | |
Lezar et al. | GPU acceleration of method of moments matrix assembly using Rao-Wilton-Glisson basis functions | |
Xia et al. | Reconfigurable spatial-parallel stochastic computing for accelerating sparse convolutional neural networks |
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 |