CN110826710B - 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 - Google Patents
基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 Download PDFInfo
- Publication number
- CN110826710B CN110826710B CN201910996386.9A CN201910996386A CN110826710B CN 110826710 B CN110826710 B CN 110826710B CN 201910996386 A CN201910996386 A CN 201910996386A CN 110826710 B CN110826710 B CN 110826710B
- Authority
- CN
- China
- Prior art keywords
- hidden layer
- calculation
- data
- rnn
- vector
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- 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
本发明公开了基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法,首先配置网络参数,对数据进行初始化后,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果,本方法隐藏层和输出层多维度并行,提高了计算的流水性,同时RNN网络中权重矩阵参数共享的特点,采用分块设计,进一步提高计算的并行度,灵活度高、可扩展性强、存储资源利用率高,加速比高,大大降低了计算。
Description
技术领域
本发明属于人工智能硬件加速的技术领域,具体涉及一种基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法。
背景技术
在人工智能的时代,神经网络算法已经广泛运用于图像识别等不同领域,如卷积神经网络(Convolutional Neural Networks, CNN)、深度神经网络(Deep NeuralNetworks, DNN),在如此广泛而频繁的使用中,神经网络算法也暴露出了一些问题:传统的神经网络只能单独处理一个输入,前后时刻的输入完全没有关系。例如,当我们预测句子的下一个单词时,句子中的前后单词并不独立,CNN或DNN对此就无能为力了,而循环神经网络(Recurrent Neural Network, RNN)引入了定向循环,能够处理那些输入之间前后关联的问题,因此常运用于文本生成、机器翻译、语音识别、图像描述生成等领域。
RNN的输入层、隐藏层以及输出层之间均是全连接计算模式,包含大量的乘累加运算,属于计算密集型算法,通常需要采用硬件加速方法实现,但是传统的CPU逻辑运算单元较少,无法满足日益庞大的计算网络,GPU虽然计算能力较强,可其无法灵活配置硬件结构,ASIC作为专用处理芯片,针对特定的需求,功耗低、面积小、性能高的同时灵活性差且不可配置。综上,如何实现RNN前向传播计算的硬件加速并且使神经网络性能更好、功耗更低、灵活性更好成为了当前人工智能的研究热点之一。
发明内容
本发明正是针对现有问题,提供了基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法,包括初始化步骤、隐藏层神经元计算步骤和输出层神经元计算步骤,配置网络参数,对数据进行初始化后,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果,本方法隐藏层和输出层多维度并行,提高了计算的流水性,同时RNN网络中权重矩阵参数共享的特点,采用分块设计,进一步提高计算的并行度,灵活度高、可扩展性强、存储资源利用率高,加速比高,大大降低了计算。
为了实现上述目的,本发明采用的技术方案是:基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,包括如下步骤:
S1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;
S2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算,其中为当前时刻输入向量,为隐藏层对上一时刻输入向量的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;
S4,依据时间序列长度配置信息,重复步骤S2和步骤S3,依据softmax的配置信息,产生RNN网络所需的输出结果,生成最终结果数据。
作为本发明的一种改进,所述步骤S2中横向脉动阵列数据传输方式为列间脉动、行间广播,操作数以行为单位同时传输到一列中的每个计算单元,权重和偏置以列为单位依次进入一列中的每个计算单元,操作数和权重多次反复使用;所述每个计算过程中多个乘累加运算并行展开。
作为本发明的另一种改进,所述步骤S2中分块设计具体为:隐藏层计算的权重矩阵包括U、W:
作为本发明的另一种改进,所述步骤S2中对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计。
作为本发明的更进一步改进,所述步骤S4中依据时间序列长度配置信息,重复步骤S2和步骤S3获得的结果数据,按照是否经过softmax,分为“不经过”和“经过”两类数据分别存放,同一批次的计算结果以地址递增的方式存入存储器中,数据不随时间序列进行覆盖。
为了实现上述目的,本发明还采用的技术方案是:基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统,包括数据控制单元、前向传播计算单元和数据缓存单元,
所述数据控制单元用于接收和产生控制信号,同时控制数据在各模块之间的传输与计算;
所述前向传播计算单元用于将数据传入横向脉动阵列,依次计算出隐藏层神经元和输出层神经元,完成RNN前向模型运算;
所述数据缓存单元用于为参与计算和获得的计算结果提供存储空间,所述数据均为16位定点数;
所述前向传播计算单元中,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果。
作为本发明的一种改进,所述前向传播计算单元向横向脉动阵列传入的数据至少包括输入向量、权重矩阵和偏置向量,阵列中每个独立计算单元包括16位定点乘法器、加法器、除法器、线性激活函数计算单元以及支持sigmoid函数和tanh函数计算的非线性激活函数计算单元,实现乘累加和神经网络激活函数的计算,最高支持32批次数据的处理。
在进一步的实施例中,提供一种基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,基于硬件加速实现系统,
所述硬件加速实现系统包括:
数据控制单元:接收和产生控制信号,控制数据在各模块之间传输、计算;
所述前向传播计算单元中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,与输入向量、隐藏层输出结果进行乘累加运算,得到隐藏层神经元,每次计算过程中多个乘累加运算并行展开;
所述分块设计具体为:
前向脉动阵列共32行、32列,一批输入神经元传入一行横向脉动阵列,数据依次进入32个计算单元;子权重同时广播至32行脉动阵列,数据依次进入每个计算单元,不同子权重依次传入32列脉动阵列里的计算单元中;随时钟信号,依次与不同子权重 、 、 等进行相乘和累加,再与偏置向量相加后经过激活函数,计算出隐藏层神经元输出结果;
前向传播计算单元对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计;
前向传播计算单元基于横向脉动阵列,多维度并行,多批次输入神经元并行输入:多批次的输入神经元可同时传入横向脉动阵列参与计算,最大可并行输入32批次神经元;隐藏层神经元并行计算:不同批次输入神经元与不同子权重进行数据相乘和累加计算,最大化程度下可实现32×32路并行乘累加;多批输出并行输出:同一个时钟信号下,横向阵列可实现最大32路并行神经元的输出;
所述方法包括如下步骤:
步骤一:初始化步骤,配置网络参数,包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;
步骤二:数据控制单元将数据缓存单元中的数据传入横向脉动阵列,前向传播计算单元开始计算,其中为当前时刻输入向量,为隐藏层对上一时刻输入向量的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;
步骤四:依据时间序列长度配置信息,重复步骤二和步骤三,生成最终结果数据。
与现有技术相比,本发明公开了基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法,采用横向脉动阵列,提高了计算速率;采用分块设计,进一步提高计算的并行度;隐藏层和输出层多维度并行,提高了计算的流水性;网络各层结点数以及时间序列长度可灵活配置,灵活度更高;存储资源利用效率高,可扩展性强;经过本方法的改进后,加速比大大高,很大程度的降低了计算。
附图说明
图1为本发明基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统的硬件系统架构示意图;
图2为本发明实施例1中基于横向脉动阵列的RNN前向传播模型的网络模型结构示意图;
图3为本发明实施例1中基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统中数据存储的示意图;
图4为本发明实施例2步骤S2中的分块设计示意图。
具体实施方式
以下将结合附图和实施例,对本发明进行较为详细的说明。
实施例1
基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统,如图1所示,包括数据控制单元、前向传播计算单元和数据缓存单元,所述数据控制单元用于接收和产生控制信号,同时控制数据在各模块之间的传输与计算;所述前向传播计算单元用于将数据传入横向脉动阵列,依次计算出隐藏层神经元和输出层神经元,完成RNN前向模型运算;所述数据缓存单元用于为参与计算和获得的计算结果提供存储空间,所述数据均为16位定点数。
所述前向传播计算单元向横向脉动阵列传入的数据至少包括输入向量、权重矩阵和偏置向量,阵列中每个独立计算单元包括16位定点乘法器、加法器、除法器、线性激活函数计算单元以及支持sigmoid函数和tanh函数计算的非线性激活函数计算单元,实现乘累加和神经网络激活函数的计算,最高支持32批次数据的处理。
如图2所示,本实施例的基于横向脉动阵列的RNN前向传播模型,输入层与隐藏层、隐藏层与输出层之间连接方式均为全连接,网络会将前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的结点存在连接,隐藏层的输入不仅包括输入层的数据还包括上一时刻隐藏层的输出结果;RNN网络中,每一层各自都共享参数U、W、V。
数据控制单元在接收到开始信号后,先后控制数据输入输出、存储地址生成和前向传播计算单元开始计算工作,所述前向传播计算单元中,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最后信号控制模块控制数据输入输出模块将结果存入片外DDR中,依据时间序列配置信息,循环产生RNN网络结果数据并产生结束信号。
该系统的工作流程如下:
步骤1)数据控制单元接收到系统算法开始信号,控制数据输入输出,将源数据、权重、偏置数据从DDR存储器按照一定的顺序传输到SRAM存储器中,如图3所示;
步骤2)数据控制单元控制存储地址生成,产生操作数地址,根据地址将SRAM存储器中的数据传入前向传播计算单元,包括当前时刻的输入数据和前一时刻的隐藏层输出结果数据,若无前一个时刻,则隐藏层输出结果数据为0;
步骤3)前向传播计算单元计算过程:对于每一行,同批次输入数据从左至右广播到阵列的每个计算单元中;对于每一列,不同神经元对应权重、偏置从上到下流动指每个计算单元中,计算过程在每个计算单元中完成;
步骤4)前向传播计算单元产生输出数据有效信号,数据控制单元接收信号,产生隐藏层结果数据地址,将其结果传入SRAM存储器中;
步骤5)重复步骤2)和步骤3),输入数据为当前时刻隐藏层输出数据和其对应的权重、偏置,产生输出层结果数据,数据控制单元接收信号,产生输出层结果数据地址,将其结果传入SRAM存储器中;
步骤6)依据配置时间序列长度,重复步骤2)、3)、4)、5),完成多次计算,依据softmax配置信息,产生RNN网络所需的输出结果;
步骤7)数据控制单元控制数据输入输出,将步骤6)的结果数据从片内SRAM存储器中写入片外DDR存储器中,产生结束信号,完成一次完整的RNN的前向计算。
实施例2
基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,包括如下步骤:
S1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次。
S2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算,其中为当前时刻输入向量,为隐藏层对上一时刻输入向量的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元。
横向脉动阵列数据传输方式为列间脉动、行间广播,操作数以行为单位同时传输到一列中的每个计算单元,权重和偏置以列为单位依次进入一列中的每个计算单元,操作数和权重多次反复使用;所述每个计算过程中多个乘累加运算并行展开。
如图4所示,其中分块设计的思路为:隐藏层计算的权重矩阵包括U、W:U为输入层至隐藏层的权重矩阵,,W为隐藏层之间的权重矩阵,,两个矩阵合并为;输入神经元由组成,矩阵[U|W]按行分块,分为、…子权重。
本实施例中,横向脉动阵列共32行、32列,一批输入神经元传入一行横向脉动阵列,数据依次进入32个计算单元;子权重同时广播至32行脉动阵列,数据依次进入每个计算单元,不同子权重依次传入32列脉动阵列里的计算单元中;随时钟信号,依次与不同子权重、、等进行相乘和累加,再与偏置向量相加后经过激活函数,计算出隐藏层神经元输出结果。前向传播计算单元基于横向脉动阵列,多维度并行,多批次输入神经元并行输入:多批次的输入神经元可同时传入横向脉动阵列参与计算,最大可并行输入32批次神经元;隐藏层神经元并行计算:不同批次输入神经元与不同子权重进行数据相乘和累加计算,最大化程度下可实现32×32路并行乘累加;多批输出并行输出:同一个时钟信号下,横向阵列可实现最大32路并行神经元的输出。
前向传播计算单元对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计。
存储资源统一编址,其中数据存储器由120个8k深度的bank子模块构成,网络输出结果由16个1k深度的bank子模块构成,网络隐藏层输出结果占据的存储位置可覆盖;源数据存储方式为:输入向量存入bank0-31中,每个bank存放一个批次的输入向量;神经元权重存入bank32-95,其中bank32-63存入隐藏层神经元权重U 、W,每个分块子权重存入一个bank中, bank64-95存入输出层神经元权重V,权重按照神经元进行存放,同一个神经元的权重存放在同一个bank中;偏置存入bank96-103,隐藏层神经元偏置存入低地址位空间,输出层神经元偏置存入高地址位空间。计算得到的隐藏层输出结果数据存放方式:依据t的奇偶性存入bank104-119,t为偶数时存入bank104-111,t为奇数时存入bank112-119,一个存储单元存放四个批次的数据,数据存储会随t进行覆盖。
S4,依据时间序列长度配置信息,重复步骤S2和步骤S3,依据softmax的配置信息,产生RNN网络所需的输出结果,生成最终结果数据。
输出层输出结果按照是否经过softmax,分为两类数据分别存放在factor bank0-7和factor bank8-15,前者为不经过softmax,同一批次的计算结果以地址递增的方式存入存储器中,一个存储单元存放四个批次的结果数据,数据不随时间序列进行覆盖。
本方法采用横向脉动阵列,提高了计算速率;采用分块设计,进一步提高计算的并行度;隐藏层和输出层多维度并行,提高了计算的流水性;网络各层结点数以及时间序列长度可灵活配置,灵活度更高;存储资源利用效率高,可扩展性强;经过本方法的改进后,加速比大大高,很大程度的降低了计算。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实例的限制,上述实例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
Claims (8)
1.基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于,包括如下步骤:
S1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;
S2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算,其中为当前时刻输入向量;为隐藏层对上一时刻输入向量的激励值;U为输入层至隐藏层的权重矩阵;W为隐藏层之间的权重矩阵;b代表偏置;Φ代表激活函数,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;
S4,依据时间序列长度配置信息,重复步骤S2和步骤S3,依据softmax的配置信息,产生RNN网络所需的输出结果,生成最终结果数据。
2.如权利要求1所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于所述步骤S2中横向脉动阵列数据传输方式为列间脉动、行间广播,操作数以行为单位同时传输到一列中的每个计算单元,权重和偏置以列为单位依次进入一列中的每个计算单元,操作数和权重多次反复使用;所述每个计算过程中多个乘累加运算并行展开。
4.如权利要求3所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于所述步骤S2中对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计。
5.如权利要求1或4所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于:所述步骤S4中依据时间序列长度配置信息,重复步骤S2和步骤S3获得的结果数据,按照是否经过softmax,分为“不经过”和“经过”两类数据分别存放,同一批次的计算结果以地址递增的方式存入存储器中,数据不随时间序列进行覆盖。
6.基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统,其特征在于包括数据控制单元、前向传播计算单元和数据缓存单元,
所述数据控制单元用于接收和产生控制信号,同时控制数据在各模块之间的传输与计算;
所述前向传播计算单元用于将数据传入横向脉动阵列,依次计算出隐藏层神经元和输出层神经元,完成RNN前向模型运算;
所述数据缓存单元用于为参与计算和获得的计算结果提供存储空间,所述数据均为16位定点数;
所述前向传播计算单元中,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果。
8.基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于,基于硬件加速实现系统,
所述硬件加速实现系统包括:
数据控制单元:接收和产生控制信号,控制数据在各模块之间传输、计算;
所述方法包括如下步骤:
步骤一:初始化步骤,配置网络参数,包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;
步骤二:数据控制单元将数据缓存单元中的数据传入横向脉动阵列,前向传播计算单元开始计算,其中为当前时刻输入向量,为隐藏层对上一时刻输入向量的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;
步骤四:依据时间序列长度配置信息,重复步骤二和步骤三,生成最终结果数据;
所述前向传播计算单元中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,与输入向量、隐藏层输出结果进行乘累加运算,得到隐藏层神经元,每次计算过程中多个乘累加运算并行展开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996386.9A CN110826710B (zh) | 2019-10-18 | 2019-10-18 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910996386.9A CN110826710B (zh) | 2019-10-18 | 2019-10-18 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110826710A CN110826710A (zh) | 2020-02-21 |
CN110826710B true CN110826710B (zh) | 2021-04-23 |
Family
ID=69549875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910996386.9A Active CN110826710B (zh) | 2019-10-18 | 2019-10-18 | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110826710B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460738B (zh) * | 2020-04-16 | 2023-06-16 | 中南大学 | 磁悬浮系统的rnn-arx建模方法、rnn-arx模型 |
CN111723906A (zh) * | 2020-05-29 | 2020-09-29 | 浪潮电子信息产业股份有限公司 | 一种循环神经网络的加速计算方法、系统及相关装置 |
CN111985626B (zh) | 2020-09-25 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种加速rnn网络的系统、方法及存储介质 |
CN113592066B (zh) * | 2021-07-08 | 2024-01-05 | 深圳市易成自动驾驶技术有限公司 | 硬件加速方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621486B2 (en) * | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
KR102487535B1 (ko) * | 2018-02-20 | 2023-01-12 | 삼성전자주식회사 | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 |
US10445638B1 (en) * | 2018-02-28 | 2019-10-15 | Amazon Technologies, Inc. | Restructuring a multi-dimensional array |
CN109887006A (zh) * | 2019-01-29 | 2019-06-14 | 杭州国芯科技股份有限公司 | 一种基于帧差法加速神经网络运算的方法 |
CN110135556A (zh) * | 2019-04-04 | 2019-08-16 | 平安科技(深圳)有限公司 | 基于脉动阵列的神经网络加速方法、装置、计算机设备及存储介质 |
CN110110851B (zh) * | 2019-04-30 | 2023-03-24 | 南京大学 | 一种lstm神经网络的fpga加速器及其加速方法 |
-
2019
- 2019-10-18 CN CN201910996386.9A patent/CN110826710B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110826710A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110826710B (zh) | 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法 | |
US5617512A (en) | Triangular scalable neural array processor | |
CN107578098B (zh) | 基于脉动阵列的神经网络处理器 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
EP0421639B1 (en) | Parallel data processing system | |
US5274832A (en) | Systolic array for multidimensional matrix computations | |
Chang et al. | Recurrent neural networks hardware implementation on FPGA | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN109034373B (zh) | 卷积神经网络的并行处理器及处理方法 | |
US5506998A (en) | Parallel data processing system using a plurality of processing elements to process data and a plurality of trays connected to some of the processing elements to store and transfer data | |
JP2020077298A (ja) | プロセッサおよびプロセッサの制御方法 | |
US5146543A (en) | Scalable neural array processor | |
US11494623B2 (en) | Processing element and operating method thereof in neural network | |
US5148515A (en) | Scalable neural array processor and method | |
US5065339A (en) | Orthogonal row-column neural processor | |
CN108960414B (zh) | 一种基于深度学习加速器实现单广播多运算的方法 | |
CN110689123B (zh) | 基于脉动阵列的长短期记忆神经网络前向加速系统及方法 | |
CN114781632A (zh) | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN110232441B (zh) | 一种基于单向脉动阵列的堆栈式自编码系统及方法 | |
CN107368459B (zh) | 基于任意维数矩阵乘法的可重构计算结构的调度方法 | |
US5146420A (en) | Communicating adder tree system for neural array processor | |
CN114724595B (zh) | 一种卷积运算加速器及卷积运算方法 | |
CN110673824A (zh) | 矩阵向量乘电路以及循环神经网络硬件加速器 | |
US11526305B2 (en) | Memory for an artificial neural network accelerator |
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 |