当前位置: 首页 > 专利查询>南京大学专利>正文

基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法技术方案

技术编号:23400896 阅读:16 留言:0更新日期:2020-02-22 13:03
本发明专利技术公开了基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法,首先配置网络参数,对数据进行初始化后,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果,本方法隐藏层和输出层多维度并行,提高了计算的流水性,同时RNN网络中权重矩阵参数共享的特点,采用分块设计,进一步提高计算的并行度,灵活度高、可扩展性强、存储资源利用率高,加速比高,大大降低了计算。

Hardware accelerated implementation system and method of RNN forward propagation model based on transverse pulse array

【技术实现步骤摘要】
基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法
本专利技术属于人工智能硬件加速的
,具体涉及一种基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法。
技术介绍
在人工智能的时代,神经网络算法已经广泛运用于图像识别等不同领域,如卷积神经网络(ConvolutionalNeuralNetworks,CNN)、深度神经网络(DeepNeuralNetworks,DNN),在如此广泛而频繁的使用中,神经网络算法也暴露出了一些问题:传统的神经网络只能单独处理一个输入,前后时刻的输入完全没有关系。例如,当我们预测句子的下一个单词时,句子中的前后单词并不独立,CNN或DNN对此就无能为力了,而循环神经网络(RecurrentNeuralNetwork,RNN)引入了定向循环,能够处理那些输入之间前后关联的问题,因此常运用于文本生成、机器翻译、语音识别、图像描述生成等领域。RNN的输入层、隐藏层以及输出层之间均是全连接计算模式,包含大量的乘累加运算,属于计算密集型算法,通常需要采用硬件加速方法实现,但是传统的CPU逻辑运算单元较少,无法满足日益庞大的计算网络,GPU虽然计算能力较强,可其无法灵活配置硬件结构,ASIC作为专用处理芯片,针对特定的需求,功耗低、面积小、性能高的同时灵活性差且不可配置。综上,如何实现RNN前向传播计算的硬件加速并且使神经网络性能更好、功耗更低、灵活性更好成为了当前人工智能的研究热点之一。
技术实现思路
本专利技术正是针对现有问题,提供了基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统及方法,包括初始化步骤、隐藏层神经元计算步骤和输出层神经元计算步骤,配置网络参数,对数据进行初始化后,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果,本方法隐藏层和输出层多维度并行,提高了计算的流水性,同时RNN网络中权重矩阵参数共享的特点,采用分块设计,进一步提高计算的并行度,灵活度高、可扩展性强、存储资源利用率高,加速比高,大大降低了计算。为了实现上述目的,本专利技术采用的技术方案是:基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,包括如下步骤:S1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;S2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算ht=Φ(Uxt+Wht-1+b),其中xt为当前时刻输入向量,ht-1为隐藏层对上一时刻输入向量xt-1的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;S3,输出层神经元计算步骤:根据步骤S2中获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果ot=Φ(Vht+b);S4,依据时间序列长度配置信息,重复步骤S2和步骤S3,依据softmax的配置信息,产生RNN网络所需的输出结果,生成最终结果数据。作为本专利技术的一种改进,所述步骤S2中横向脉动阵列数据传输方式为列间脉动、行间广播,操作数以行为单位同时传输到一列中的每个计算单元,权重和偏置以列为单位依次进入一列中的每个计算单元,操作数和权重多次反复使用;所述每个计算过程中多个乘累加运算并行展开。作为本专利技术的另一种改进,所述步骤S2中分块设计具体为:隐藏层计算的权重矩阵包括U、W:U为输入层至隐藏层的权重矩阵,U=(u1,u2,…,uh)T;W为隐藏层之间的权重矩阵,W=(w1,w2,…,wh)T;两个矩阵合并为[U|W]=(u1|w1,u2|w2,…,uh|wh)T;输入神经元由(xt|ht-1)组成,矩阵[U|W]按行分块,分为(u1|w1)、(u2|w2)…(uh|wh)子权重。作为本专利技术的另一种改进,所述步骤S2中对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计。作为本专利技术的更进一步改进,所述步骤S4中依据时间序列长度配置信息,重复步骤S2和步骤S3获得的结果数据,按照是否经过softmax,分为“不经过”和“经过”两类数据分别存放,同一批次的计算结果以地址递增的方式存入存储器中,数据不随时间序列进行覆盖。为了实现上述目的,本专利技术还采用的技术方案是:基于横向脉动阵列的RNN前向传播模型的硬件加速实现系统,包括数据控制单元、前向传播计算单元和数据缓存单元,所述数据控制单元用于接收和产生控制信号,同时控制数据在各模块之间的传输与计算;所述前向传播计算单元用于将数据传入横向脉动阵列,依次计算出隐藏层神经元和输出层神经元,完成RNN前向模型运算;所述数据缓存单元用于为参与计算和获得的计算结果提供存储空间,所述数据均为16位定点数;所述前向传播计算单元中,基于横向脉动阵列,计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,经过矩阵乘向量和向量求和运算和激活函数运算,计算得到隐藏层神经元,随后根据获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果,最终依据时间序列长度配置信息,产生RNN网络所需的输出结果。作为本专利技术的一种改进,所述前向传播计算单元向横向脉动阵列传入的数据至少包括输入向量x、权重矩阵U、W、V和偏置向量b,阵列中每个独立计算单元包括16位定点乘法器、加法器、除法器、线性激活函数计算单元以及支持sigmoid函数和tanh函数计算的非线性激活函数计算单元,实现乘累加和神经网络激活函数的计算,最高支持32批次数据的处理。在进一步的实施例中,提供一种基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,基于硬件加速实现系统,所述硬件加速实现系统包括:数据控制单元:接收和产生控制信号,控制数据在各模块之间传输、计算;前向传播计算单元:将输入向量x、权重矩阵U、W、V和偏置向量b,传入横向脉动阵列,依次计算隐藏层神经元ht和输出层神经元ot,完成RNN前向模型运算;数据缓存单元:为参与计算的输入向量x、权重矩阵U、W、V和偏置向量b和隐藏层神经元ht、输出层神经元ot,提供片上存储空间,数据均为16位定点数;所述前向传播计算单元中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,与输入向量、隐藏层输出结果进行乘累加运算,得到隐藏层神经元,每次计算过程中多个乘累加运算并行展开;所述分块本文档来自技高网...

【技术保护点】
1.基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于,包括如下步骤:/nS1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;/nS2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算h

【技术特征摘要】
1.基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于,包括如下步骤:
S1,初始化步骤:配置网络参数,所述参数至少包括输入层、隐藏层、输出层结点数目,时间序列长度和待处理批次;
S2,隐藏层神经元计算步骤:将数据传入横向脉动阵列,基于横向脉动阵列,计算得到隐藏层神经元;所述计算中权重采用分块设计,隐藏层计算的权重矩阵按行进行分块,计算ht=Φ(Uxt+Wht-1+b),其中xt为当前时刻输入向量,ht-1为隐藏层对上一时刻输入向量xt-1的激励值,经过矩阵乘向量和向量求和运算和激活函数运算,生成RNN网络隐藏层神经元;
S3,输出层神经元计算步骤:根据步骤S2中获得的隐藏层神经元,经过矩阵乘向量、向量求和运算和激活函数运算,产生RNN输出层结果ot=Φ(Vht+b);
S4,依据时间序列长度配置信息,重复步骤S2和步骤S3,依据softmax的配置信息,产生RNN网络所需的输出结果,生成最终结果数据。


2.如权利要求1所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于所述步骤S2中横向脉动阵列数据传输方式为列间脉动、行间广播,操作数以行为单位同时传输到一列中的每个计算单元,权重和偏置以列为单位依次进入一列中的每个计算单元,操作数和权重多次反复使用;所述每个计算过程中多个乘累加运算并行展开。


3.如权利要求1或2所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于所述步骤S2中分块设计具体为:隐藏层计算的权重矩阵包括U、W:
U为输入层至隐藏层的权重矩阵,U=(u1,u2,...,uh)T;
W为隐藏层之间的权重矩阵,W=(w1,w2,...,wh)T;
两个矩阵合并为[U|W]=(u1|w1,u2|w2,...,uh|wh)T;
输入神经元由(xt|ht-1)组成,矩阵[U|W]按行分块,分为(u1|w1)、(u2|w2)…(uh|wh)子权重。


4.如权利要求3所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于所述步骤S2中对隐藏层输出结果采用缓存交替接收和输出,即存在两个存储子单元,其中当第一个子存储单元接收当前隐藏层计算结果时,第二个子存储单元输出前一时刻的隐藏层计算结果神经元,作为当前时刻神经元部分源数据,参与RNN网络计算,实现输出与RNN网络模型间的反馈设计。


5.如权利要求1或4所述的基于横向脉动阵列的RNN前向传播模型的硬件加速实现方法,其特征在于:所述步骤S4中依据时间序列长度配置信息,重复步骤S2和步骤S3获得的结果数据,按照是否经过softmax,分为“不经过”和“经过”两类数据分别存放,同一批次的计算结果以地址递增的方式存入...

【专利技术属性】
技术研发人员:傅玉祥高珺李丽宋文清黄延李伟
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1