CN108734270A - 一种兼容型神经网络加速器及数据处理方法 - Google Patents
一种兼容型神经网络加速器及数据处理方法 Download PDFInfo
- Publication number
- CN108734270A CN108734270A CN201810244109.8A CN201810244109A CN108734270A CN 108734270 A CN108734270 A CN 108734270A CN 201810244109 A CN201810244109 A CN 201810244109A CN 108734270 A CN108734270 A CN 108734270A
- Authority
- CN
- China
- Prior art keywords
- module
- neural network
- unit
- data
- 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.)
- Granted
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/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/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
Abstract
本发明涉及一种兼容型神经网络加速器,包括存储单元,用于存储神经元数据、权值数据及控制指令并输出;矩阵运算单元,用于根据所述控制指令从所述存储单元接收数据并针对所述接收的数据执行矩阵运算并输出运算结果;模式运算单元,包括多个功能模块,所述功能模块可用于从所述矩阵运算单元和/所述激活单元和/或所述存储单元或接收数据,并根据所述控制指令针对所述接收的数据执行与网络对应的特定运算并输出运算结果;激活单元,用于从所述模式运算单元和/或所述存储单元接收数据,并针对所述接收的数据执行激活操作并输出激活结果。
Description
技术领域
本发明涉及计算领域,特别涉及一种面向LSTM与CNN的兼容型神经网络加速器及数据处理方法。
背景技术
神经网络是人工智能领域具有高发展水平的感知模型之一,一经出现就成为了学术界和工业界的研究热点,随着研究的不断深入,不同类型的神经网络被相继提出,例如,卷积神经网络(CNN,Convolutional Neural Network)和长短期记忆网络(LSTM,LongShort-Term Memory)。
CNN是一种包含了卷积层的前馈神经网络,常被用于语音识别、人脸识别、运动分析、自然语言处理等;LSTM网络是一种时间递归的循环神经网络,常被用于学习语言翻译、机器人控制、图像分析等。由于这两种网络的运算过程存在差异,通常需要使用专用的神经网络加速器进行数据处理,这就限制了神经网络加速器的普适性。
因此,需要一种既适用于CNN又适用于LSTM网络的神经网络加速器及数据处理方法。
发明内容
本发明提供一种面向LSTM与CNN的兼容型神经网络加速器,包括存储单元,用于存储神经元数据、权值数据及控制指令并输出;矩阵运算单元,用于根据所述控制指令从所述存储单元接收数据并针对所述接收的数据执行矩阵运算并输出运算结果;模式运算单元,包括多个功能模块,所述功能模块可用于从所述矩阵运算单元和/所述激活单元和/或所述存储单元或接收数据,并根据所述控制指令针对所述接收的数据执行与网络对应的特定运算并输出运算结果;激活单元,用于从所述模式运算单元和/或所述存储单元接收数据,并针对所述接收的数据执行激活操作并输出激活结果。
优选的,所述特定神经网络是LSTM网络及其变异体网络或者CNN。
优选的,所述功能模块是用于执行部分加操作的累加模块、用于执行向量平行乘法和累加运算的向量平行乘累加模块、用于执行向量取反或减法的多功能运算模块和执行池化操作的池化模块。
优选的,若所述神经网络是LSTM网络及其变异体,所述控制单元将调用所述模式运算单元中的累加模块、向量平行乘累加模块以及多功能运算模块中的若干模块进行运算。
优选的,若所述神经网络是CNN,所述控制单元将调用所述模式运算单元中的池化模块进行运算。
优选的,矩阵运算单元包括用于执行向量乘法结果相互累加运算的相互累加运算模块和用于执行多组向量乘法结果平行自累加运算的自累加运算模块。
优选的,所述神经网络加速器还包括控制单元,用于控制所述存储单元、所述矩阵运算单元、所述激活单元以及所述模式运算单元针对特定神经网络的运算。
根据本发明的一个方面,还提供一种利用如上所述的神经网络加速器进行数据处理的方法,包括以下步骤:
接收并分析神经网络参数,确定计算模式;
根据所述计算模式调用矩阵运算单元、激活单元和相应的功能模块;
利用所述调用的单元及模块执行相应运算并输出计算结果。
优选的,若所述计算模式为LSTM网络计算模式,可利用所述功能模块执行与LSTM或LSTM变异体模型相关的运算。
优选的,若所述计算模式为CNN计算模式,可利用所述功能模块执行池化运算。
相对于现有技术,本发明取得了如下有益技术效果:本发明提供的面向LSTM与CNN的兼容型神经网络加速器及数据处理方法,可根据相应的网络模式组合不同的运算模块进行运算,例如,针对LSTM及其变异体模型,可组合用于进行累加或乘累加计算的功能模块;针对CNN模型,可组合用于池化运算的功能模块,从而实现了针对不同网络模型的神经网络加速器及数据处理方法。
附图说明
图1是本发明提供的兼容型神经网络加速器结构示意图。
图2是针对LSTM网络计算模式的功能模块组合示意图。
图3是针对CNN计算模式的功能模块组合示意图。
图4是利用图1所示神经网络加速器进行数据处理的方法流程图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对本发明的实施例中提供的兼容型神经网络加速器及数据处理方法进一步详细说明。
CNN计算过程的主要时间占据部分为卷积的过程,该过程主要是将输入的神经元或像素与相应卷积核的权值进行乘累加处理;LSTM网络计算过程的主要时间占据为各门值向量乘累加运算与各层迭代运算过程,该过程主要是将门值向量与权值进行乘累加等处理,将结果传输作为下一层网络的输入,并执行相同的运算。
为了满足实际应用中对上述两种网络结构与数据处理的需求,发明人对上述两种网络在运算操作方式与数据调度方式上的差异进行了研究,提出一种能够同时兼容CNN与LSTM网络的神经网络加速器及数据处理方法。
图1是本发明提供的神经网络加速器结构示意图,如图1所示,该神经网络加速器1包括控制单元11、存储单元12、矩阵运算单元13、激活单元14以及模式运算单元15。
存储单元12包括用于存储输入神经元数据的数据存储模块121、用于暂存输入数据及部分中间计算结果的数据缓存模块122、用于存储神经网络权值的权值存储模块123、用于暂存神经网络权值的权值缓存模块124以及用于存储控制指令的指令存储模块125。其中,数据存储模块121与数据缓存模块122相连并可进行数据交换,可存储待处理的输入神经元数据,并接收部分网络模型各层的运算结果;权值存储模块123与权值缓存模块124相连并可进行数据交换,可存储已训练好的权值。
矩阵运算单元13可用于完成神经网络模型内部的向量乘累加运算,该单元包含多个相互累加运算模块131和自累加运算模块132,可用于针对不同的网络特性分别调度上述两种运算模块执行向量乘累加运算,其中,相互累加运算模块131可用于执行向量乘法结果的相互累加运算,自累加运算模块132可用于执行多组向量乘法结果平行自累加运算;另外,矩阵运算单元13还分别与上述数据缓存模块121、权值缓存模块124相连,其中数据缓存模块121可用于为矩阵运算单元13提供输入神经元或拼接的输入向量;权值缓存模块可用于为矩阵运算单元13提供权值;
模式运算单元15可用于针对不同类型的神经网络执行相应的运算操作,包括用于执行部分加法操作的累加模块151、用于执行向量的平行乘法与累加运算的向量平行乘累加模块152、用于执行针对神经元值或向量值的取反、减法等操作的多功能运算模块153和用于执行池化任务的池化模块154。其中,累加模块151与上述矩阵运算单元13相连,包含多个用于执行偏移量累加等额外加法操作任务的加法运算器;向量平行乘累加模块152与激活单元14相连,包含多个用于执行针对LSTM网络模型向量平行乘法及累加任务的乘法及累加运算器;多功能运算模块153包含多种运算器,可用于完成针对神经网络的取反、减法等操作;池化模块154包含面向多种池化方法的池化运算器,用于执行针对CNN网络的池化操作。
激活单元14包括多种激活函数功能模块,用于完成神经网络的激活操作;
控制单元11可用于接收并分析神经网络参数,控制完成计算模式切换以及模块调度等任务。
在本发明的一个实施例中,图2是针对LSTM网络计算模式的功能模块组合示意图,如图2所示,在执行针对LSTM网络的计算时,控制单元11控制神经网络加速器进入相应计算模式,同时控制存储单元12中的数据存储模块121和权值存储模块123分别与数据缓存模块122和权值缓存模块124进行数据交换;然后通过总线调用矩阵运算单元13、激活单元14以及模式运算单元15中的累加模块151、向量平行乘累加模块152以及多功能运算模块153针对数据缓存模块122和权值缓存模块124的数据进行计算。
在本发明的一个实施例中,图3是针对CNN计算模式的功能模块组合示意图,如图3所示,在执行针对CNN的计算时,控制单元11控制神经网络加速器进入相应计算模式,同时控制存储单元12中的数据存储模块121和权值存储模块123分别与数据缓存模块122和权值缓存模块124进行数据交换;然后通过总线调用阵运算单元13、激活单元14以及模式运算单元15中的池化模块154进行计算。
本发明还提供一种面向LSTM与CNN的兼容型神经网络加速器的数据处理方法,图4是利用图1所示神经网络加速器进行数据处理的方法流程图,如图4所示,该方法具体包括以下步骤:
步骤S10、根据神经网络参数选择计算模式
利用控制单元11对神经网络加速器接收的神经网络参数进行分析,确定相应的网络计算模式并切换,同时调用并组合该相应模式下的功能模块,根据分析神经网络参数获得的数据处理指令对相应的功能模块进行初始化以及指令加载。
若为LSTM网络计算模式,控制单元11需调用的功能模块为存储单元12中的各模块、矩阵运算单元13中的各模块、激活单元14中的各模块以及模式运算单元15中的累加模块151、向量平行乘累加模块152以及多功能运算模块153;
若为CNN计算模式,控制单元11需调用的功能模块为存储单元12中的各模块、矩阵运算单元13中的各模块、激活单元14中的各模块以及模式运算单元15中的池化模块154。
步骤S20、利用功能模块执行运算
首先将权值与输入神经元向量数据分别载入权值缓存模块124和数据缓存模块121进行数据拼接,再将拼接后的数据传输至矩阵运算单元13执行向量的乘累加运算。
若为LSTM网络计算模式,可利用步骤S10调用的相关模式运算单元15中的累加模块151、向量平行乘累加模块152以及多功能运算模块153针对LSTM或其变异体模型进行运算,以LSTM存在输出门值Ot依赖关系的“窥孔连接(peephole connection)”变异体为例进行说明。
已知LSTM“窥孔连接”变异体模型的公式为:
It=δ(Wxi·Xt+Whi·Y(t-1)+Wic·Ct-1+bi) 1.1
Ft=δ(Wxf·Xt+Whf·Y(t-1)+Wfc·Ct-1+bf) 1.2
Gt=δ(Wxg·Xt+Whg·Y(t-1)+bc) 1.3
Ct=Ft×Ct-1+It×Gt 1.4
Ot=δ(Wxo·Xt+Who·Y(t-1)+Woc·Ct+bo) 1.5
Mt=Ot×h(Ct) 1.6
Yt=Wym×Mt 1.7
其中,“·”表示矩阵与向量的乘操作,“×”表示向量元素的平行乘操作矩阵与向量的乘操作,“δ”表示sigmoid激活操作,“h”表示tanh激活操作,Xt为输入向量,Yt-1为上一级输出向量,Ct-1为上一级记忆门向量,It为输入门,Ft为遗忘门,Ct为记忆门,Ot为输出门,上述向量针对各门的对应权值分别为Wi、Wf、Wc和Wo,bt为各门对应的偏移量,Gt和Mt为中间门向量,Wi为输出向量。
将利用矩阵运算单元13获得向量乘累加运算结果和偏移量向量值传输至累加模块151执行偏移量加法,并将获得的结果传输至激活单元14进行各门值向量的激活操作。首先可利用激活单元14根据上述公式1.1-1.3,获得门值It、Ft以及Gt;再将上述结果以及上一级记忆门向量Ct-1输入至向量平行乘累加模块152,根据公式1.4-1.6获得门值Ct、Ot以及Mt,最后将Mt输出至矩阵运算单元13,根据公式1.7获得输出向量Mt。
若为CNN计算模式,可利用步骤S10调用的相关模式运算单元15中的池化模块154针对CNN模型进行运算。首先将利用矩阵运算单元13获得向量乘累加运算结果传输至激活单元14对神经元数据进行激活处理,根据CNN各层网络的需求情况判断是否执行池化操作,如无需池化,则将上述经过激活处理的数据直接存入数据缓存模块122;如需池化,则将上述经过激活处理的数据传输至池化模块154执行池化操作,并将池化结果存入数据缓存模块122;若数据缓存模块122中的神经元数据规模达到边界值,可将数据存入数据存储模块121。
步骤S30、执行迭代运算
迭代循环执行步骤S20中的运算过程,直到完成所有网络层的数据处理。若为LSTM网络计算模式,可迭代执行各层网络门值向量的运算过程;若为CNN网络计算模式,可将CNN上一层网络的输出特征图作为下一层执行卷积操作的输入数据,迭代进行各层卷积神经网络的运算过程。
在本发明的一个实施例中,LSTM网络计算模式中调用矩阵运算单元13进行乘累加运算时,可同时调用相互累加运算模块131和自累加运算模块132两种模块进行运算,以便缓解由LSTM变异体模型针对单门值向量计算存在数据依赖性所导致的硬件利用率低的问题。
尽管在上述实施例中,采用了LSTM的“窥孔连接”变异体模型为例对本发明提供的神经网络加速器及数据处理方法进行了说明,但本领域普通技术人员应理解,上述神经网络加速器还可适用于其它的LSTM及LSTM变异体模型,例如LSTM的耦合遗忘和输入门变异体模型、LSTM的门限重复单元(GRU)变异体模型,其中,可利用上述多功能运算模块153针对变异体模型中的减法或取反等操作执行相应的运算。
相对于现有技术,在本发明实施例中所提供的神经网络加速器及数据处理方法,采用能够根据不同计算模式进行组合的多种运算模块,实现了可同时兼容LSTM网络计算和CNN计算的神经网络加速器和数据处理方法。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
Claims (10)
1.一种兼容型神经网络加速器,包括
存储单元,用于存储神经元数据、权值数据及控制指令并输出;
矩阵运算单元,用于根据所述控制指令从所述存储单元接收数据并针对所述接收的数据执行矩阵运算并输出运算结果;
模式运算单元,包括多个功能模块,所述功能模块可用于从所述矩阵运算单元和/所述激活单元和/或所述存储单元或接收数据,并根据所述控制指令针对所述接收的数据执行与网络对应的特定运算并输出运算结果;
激活单元,用于从所述模式运算单元和/或所述存储单元接收数据,并针对所述接收的数据执行激活操作并输出激活结果。
2.根据权利要求1所述的神经网络加速器,其特征在于,所述特定神经网络是LSTM网络及其变异体网络或者CNN。
3.根据权利要求2所述的神经网络加速器,其特征在于,所述功能模块是用于执行部分加操作的累加模块、用于执行向量平行乘法和累加运算的向量平行乘累加模块、用于执行向量取反或减法的多功能运算模块和执行池化操作的池化模块。
4.根据权利要求3所述的神经网络加速器,其特征在于,若所述神经网络是LSTM网络及其变异体,所述控制单元将调用所述模式运算单元中的累加模块、向量平行乘累加模块以及多功能运算模块中的若干模块进行运算。
5.根据权利要求3所述的神经网络加速器,其特征在于,若所述神经网络是CNN,所述控制单元将调用所述模式运算单元中的池化模块进行运算。
6.根据权利要求1所述的神经网络加速器,其特征在于,矩阵运算单元包括用于执行向量乘法结果相互累加运算的相互累加运算模块和用于执行多组向量乘法结果平行自累加运算的自累加运算模块。
7.根据权利要求1所述的神经网络加速器,其特征在于,所述神经网络加速器还包括控制单元,用于控制所述存储单元、所述矩阵运算单元、所述激活单元以及所述模式运算单元针对特定神经网络的运算。
8.一种利用如权利要求1至7任一项所述的神经网络加速器进行数据处理的方法,包括以下步骤:
接收并分析神经网络参数,确定计算模式;
根据所述计算模式调用矩阵运算单元、激活单元和相应的功能模块;
利用所述调用的单元及模块执行相应运算并输出计算结果。
9.根据权利要求8所述的数据处理方法,其特征在于,若所述计算模式为LSTM网络计算模式,可利用所述功能模块执行与LSTM或LSTM变异体模型相关的运算。
10.根据权利要求8所述的数据处理方法,其特征在于,若所述计算模式为CNN计算模式,可利用所述功能模块执行池化运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810244109.8A CN108734270B (zh) | 2018-03-23 | 2018-03-23 | 一种兼容型神经网络加速器及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810244109.8A CN108734270B (zh) | 2018-03-23 | 2018-03-23 | 一种兼容型神经网络加速器及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108734270A true CN108734270A (zh) | 2018-11-02 |
CN108734270B CN108734270B (zh) | 2020-11-10 |
Family
ID=63940553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810244109.8A Active CN108734270B (zh) | 2018-03-23 | 2018-03-23 | 一种兼容型神经网络加速器及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108734270B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396174A (zh) * | 2019-08-12 | 2021-02-23 | 美光科技公司 | 具有用于汽车预测性维护的神经网络加速器的存储装置 |
CN112580787A (zh) * | 2020-12-25 | 2021-03-30 | 北京百度网讯科技有限公司 | 神经网络加速器的数据处理方法、装置、设备及存储介质 |
WO2021189209A1 (zh) * | 2020-03-23 | 2021-09-30 | 深圳市大疆创新科技有限公司 | 加速器的检测方法和验证平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161991A1 (en) * | 2013-12-10 | 2015-06-11 | Google Inc. | Generating representations of acoustic sequences using projection layers |
CN106485317A (zh) * | 2016-09-26 | 2017-03-08 | 上海新储集成电路有限公司 | 一种神经网络加速器以及神经网络模型的实现方法 |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
-
2018
- 2018-03-23 CN CN201810244109.8A patent/CN108734270B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150161991A1 (en) * | 2013-12-10 | 2015-06-11 | Google Inc. | Generating representations of acoustic sequences using projection layers |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN106485317A (zh) * | 2016-09-26 | 2017-03-08 | 上海新储集成电路有限公司 | 一种神经网络加速器以及神经网络模型的实现方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112396174A (zh) * | 2019-08-12 | 2021-02-23 | 美光科技公司 | 具有用于汽车预测性维护的神经网络加速器的存储装置 |
WO2021189209A1 (zh) * | 2020-03-23 | 2021-09-30 | 深圳市大疆创新科技有限公司 | 加速器的检测方法和验证平台 |
CN112580787A (zh) * | 2020-12-25 | 2021-03-30 | 北京百度网讯科技有限公司 | 神经网络加速器的数据处理方法、装置、设备及存储介质 |
CN112580787B (zh) * | 2020-12-25 | 2023-11-17 | 北京百度网讯科技有限公司 | 神经网络加速器的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108734270B (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107862374B (zh) | 基于流水线的神经网络处理系统和处理方法 | |
CN108446761A (zh) | 一种神经网络加速器及数据处理方法 | |
CN108376285A (zh) | 一种面向多变异体lstm神经网络加速器及数据处理方法 | |
US11488000B2 (en) | Operation apparatus and method for acceleration chip for accelerating deep neural network algorithm | |
CN109901878B (zh) | 一种类脑计算芯片及计算设备 | |
CN107992486A (zh) | 一种信息处理方法及相关产品 | |
CN108090560A (zh) | 基于fpga的lstm递归神经网络硬件加速器的设计方法 | |
CN108510065A (zh) | 应用于长短时记忆神经网络的计算装置和计算方法 | |
TWI417797B (zh) | A Parallel Learning Architecture and Its Method for Transferred Neural Network | |
CN108734270A (zh) | 一种兼容型神经网络加速器及数据处理方法 | |
CN109359730A (zh) | 面向固定输出范式Winograd卷积的神经网络处理器 | |
CN108960414B (zh) | 一种基于深度学习加速器实现单广播多运算的方法 | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
CN112529166A (zh) | 融合神经元模型、神经网络结构及训练、推理方法、存储介质和设备 | |
CN108763159A (zh) | 一种基于fpga的lstm前向运算加速器 | |
CN111191769B (zh) | 自适应的神经网络训练与推理装置 | |
CN111178545B (zh) | 一种动态强化学习决策训练系统 | |
CN108320018B (zh) | 一种人工神经网络运算的装置及方法 | |
CN108304925A (zh) | 一种池化计算装置及方法 | |
CN113469891A (zh) | 一种神经网络架构搜索方法、训练方法、图像补全方法 | |
CN104834216B (zh) | 一种基于bp神经网络调节pi控制器参数的电路及方法 | |
CN115293227A (zh) | 一种模型训练方法及相关设备 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN112836793A (zh) | 浮点可分离卷积计算加速装置、系统以及图像处理方法 | |
Eliasmith et al. | Continuous then discrete: A recommendation for building robotic brains |
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 |