CN108921288A - 神经网络激活处理装置和基于该装置的神经网络处理器 - Google Patents
神经网络激活处理装置和基于该装置的神经网络处理器 Download PDFInfo
- Publication number
- CN108921288A CN108921288A CN201810417343.6A CN201810417343A CN108921288A CN 108921288 A CN108921288 A CN 108921288A CN 201810417343 A CN201810417343 A CN 201810417343A CN 108921288 A CN108921288 A CN 108921288A
- Authority
- CN
- China
- Prior art keywords
- unit
- linear function
- function parameter
- look
- neural network
- 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.)
- Pending
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种应用于神经网络的激活处理装置。该装置包括查找表单元、多个匹配单元、多个计算单元和缓存单元。查找表单元用于存储反映神经网络中的激活函数的变量区间以及对应的拟合线性函数参数之间的映射关系;多个匹配单元用于基于查找表将与待计算输入变量对应的线性函数参数输出至缓存单元或输出至多个计算单元;缓存单元用于将所存储的线性函数参数输出至多个计算单元;多个计算单元与多个匹配单元和缓存单元连接,多个计算单元根据来自于缓存单元和/或来自于多个匹配单元的线性函数参数完成针对待计算的激活函数的输入变量的线性运算。本发明的激活处理装置能够提高神经网络的激活处理效率并降低功耗。
Description
技术领域
本发明涉及深度学习技术领域,尤其涉及一种应用于神经网络的激活处理装置和基于该装置的神经网络处理器。
背景技术
近年来,深度学习技术得到了飞速发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。
神经网络是人工智能领域具有最高发展水平的感知模型之一,其通过建立模型来模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大规模数据处理任务带来突破性进展。神经网络的数据处理包括卷积过程、池化过程和激活过程等,其中,激活处理的作用是提供神经网络的非线性建模能力,例如,神经网络的每一层均存在激活处理,其通过非线性激活函数完成数据的非线性变换,从而解决了线性模型的表达能力、分类能力不足的问题。
然而,由于激活处理通常作用于神经网络的各层处理中,例如,神经网络中卷积层的操作过程是:将一个K*K大小的二维权重卷积核对输入特征图进行扫描,在扫描过程中权重与特征图内对应的神经元求内积,并将所有内积值求和,得到卷积层的输出特征图或称输出神经元,然后,通过非线性激活函数(如ReLU)进一步把该输出特征图传递到下一层(例如,池化层)。激活处理包含乘法运算、加法运算等一系列运算过程,现有技术中通常采用软件或算术逻辑单元等部件实现激活处理,存在执行速度慢、电路硬件开销大等问题,进而很难实现体积轻便、功耗低的神经网络处理器。
因此,需要对现有技术进行改进,以提高神经网络中激活处理的计算效率和资源利用率,并提供体积小、功耗低的神经网络处理器。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种应用于神经网络的激活处理装置以及基于该装置的神经网络处理器,以提高神经网络的计算效率并降低神经网络处理器的功耗和体积。
根据本发明的第一方面,提供了一种应用于神经网络的激活处理装置。该装置包括查找表单元、多个匹配单元、多个计算单元和缓存单元,所述查找表单元、所述多个匹配单元、所述多个计算单元和所述缓存单元采用统一的时钟驱动,其中:
所述查找表单元用于存储反映神经网络中的激活函数的变量区间以及对应的拟合线性函数参数之间的映射关系,其中,所述线性函数参数包括用于限定线性函数的截距和斜率;
所述多个匹配单元用于基于所述查找表将与待计算输入变量对应的线性函数参数输出至所述缓存单元或输出至所述多个计算单元;
所述缓存单元用于将所存储的线性函数参数输出至所述多个计算单元;
所述多个计算单元与所述多个匹配单元和所述缓存单元连接,所述多个计算单元根据来自于所述缓存单元和/或来自于所述多个匹配单元的线性函数参数完成针对待计算的激活函数的输入变量的线性运算。
在一个实施例中,本发明的激活处理装置包括M个所述匹配单元,2M个所述计算单元,M个所述匹配单元与M个所述计算单元一一对应连接,所述缓存单元与其余M个计算单元连接,其中,M为大于等于2的整数。
在一个实施例中,所述M个匹配单元在时钟脉冲的下降沿将所获得的线性函数参数输出至所述缓存单元,在下一个时钟脉冲的上升沿将所获得的线性函数参数输出至所连接的M个计算单元,并且所述缓存单元在该下一个时钟脉冲的上升沿将所缓存的线性函数参数输出至所连接的M个计算单元;或者
所述M个匹配单元在时钟脉冲的上升沿将获得的线性函数参数输出至所述缓存单元,在下一个时钟脉冲的下降沿将获得的线性函数参数输出至所连接的M个计算单元,并且所述缓存单元在该下一个时钟脉冲的下降沿将所缓存的线性函数参数输出至所连接的M个计算单元。
在一个实施例中,所述激活函数包括函数f(x)=tanh(x)或f(x)=max(0,x)。
在一个实施例中,所述多个匹配单元中的每一个匹配单元由第一数据选择器、第二数据选择器和多个比较器构成,所述第一数据选择器用于接收来自于所述查找表的线性函数参数的斜率,所述第二数据选择器用于接收来自于所述查找表的线性函数参数的截距,所述比较器基于来自于所述查找表的激活函数的变量区间以及待计算的激活函数的输入变量来控制所述第一数据选择器和所述第二数据选择器输出与待计算的激活函数的输入变量对应的线性函数参数。
在一个实施例中,所述计算单元包括乘法器和加法器,所述乘法器接收来自于所连接的匹配单元的线性函数参数的斜率和待计算的激活函数的输入变量,执行乘法计算,所述加法器接收来自于所连接的匹配单元的线性函数参数的截距以及所述乘法器的输出,执行加法计算。
根据本发明的第二方面,提供了一种神经网络处理器。该处理器包括:根据本发明的激活处理装置;控制单元:用于控制所述激活处理装置的计算;存储单元:用于存储待计算数据以及计算过程中的中间结果。
根据本发明的第三方面,提供了一种用于本发明的激活处理装置的神经网络激活处理方法。该方法包括以下步骤:
步骤1:基于查找表将与待计算输入变量对应的线性函数参数输出至所述缓存单元或输出至所述多个计算单元,其中所述查找表存储反映神经网络中的激活函数的变量区间以及对应的拟合线性函数参数之间的映射关系,所述线性函数参数包括用于限定线性函数的截距和斜率;
步骤2:所述多个计算单元根据来自于所述缓存单元和/或来自于所述多个匹配单元的线性函数参数完成针对待计算的激活函数的输入变量的线性运算。
与现有技术相比,本发明的优点在于:提供一种用于处理神经网络中激活处理的装置,通过在神经网络计算过程中动态加载查找表实现针对不同激活函数的处理过程,降低了计算复杂度并提高了计算效率;利用能够基于查找表并行计算激活函数的不同输入变量的函数值的装置进一步提高了激活处理的计算效率;此外,利用复杂度低的电路实现激活处理过程降低了神经网络处理器的体积和运行功耗。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1示出了根据本发明一个实施例的应用于神经网络的激活处理装置的示意框图;
图2示出了根据本发明一个实施例的激活处理装置中匹配单元的电路示意图;
图3示出了根据本发明一个实施例的神经网络处理器中计算单元的电路图;
图4示出了根据本发明一个实施例的激活处理过程中数据加载的时序示意图;
图5示出了基于本发明的激活处理装置的神经网络处理器的示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1示出了根据本发明一个实施例的应用于神经网络的激活处理装置。该处理装置包括查找表单元110、多个匹配单元120(示出了M个匹配单元)、与匹配单元120连接的多个计算单元130(示意了2M个计算单元)、与匹配单元120和多个计算单元130有连接的缓存单元140。需要说明的是,尽管未示出,该激活处理装置中各单元可由统一的时钟驱动,以保证处理过程中的计算时序。
查找表单元110用于存储激活函数的变量区间与该区间对应的拟合线性函数参数的映射关系,其中,线性函数参数包括截距和斜率,利用该线性函数参数可唯一地确定与某一段变量区间对应的线性函数的表达式。查找表可采用寄存器堆的形式构成,即每组变量区间索引和对应的线性函数参数均保存在寄存器中,采用寄存器堆的方式存储能够将查找表的多个输出(即多个变量区间索引和对应线性函数参数)同时接入至多个匹配单元中,从而提高了激活处理装置的并行度。
在本文中,神经网络中应用的激活函数包括但不限于sigmoid函数或f(x)=tanh(x)或ReLU函数f(x)=max(0,x)等非线性函数。
例如,在一个实施例中,基于sigmoid函数构建的查找表参见下表1所示。
表1:查找表
索引 | 斜率 | 截距 |
[0,1] | a1 | b1 |
[1,2] | a2 | b2 |
…… | …… | …… |
[N-1,N] | aN | bN |
在表1中,包括N个索引,每个索引对应的是激活函数的变量区间范围,斜率和截距表示在相应变量区间范围内与该激活函数拟合的线性函数的斜率和截距。例如,表1中激活函数的变量区间范围被划分为等间距的多个分段区间[0,1]、[1,2]等。
本文中的查找表可在进行激活处理时在线构建或动态改变,也可离线构建神经网络中涉及的多个激活函数的查找表,预先存储于存储单元中,以在激活处理过程中动态读取,优选采用离线方式构建查找表,以提高激活处理效率。在一个实施例中,查找表的构建方法是,对于某一变量区间[0,1],利用激活函数计算两个端点0和1对应的函数值,结果表示为和进而计算得出拟合的线性函数的斜率近似表示为0.231,截距表示为0.5,则该变量区间对应的拟合线性函数可表示为f(x)=0.231×x+0.5,类似地,可计算出其它变量区间对应的拟合线性函数的斜率和截距。在本文中,将斜率和截距统称为线性函数的参数或参数组合,其用于限定线性函数。
在另一个实施例中,针对激活函数的分布特征,每个变量区间的间距可设置为相等或不相等。例如,在斜率相对较高的范围内,设置相对小的变量区间,而在斜率较低的变量范围内,可适当地设置较大的变量区间,从而兼顾非线性激活函数拟合为线性函数的计算精度和计算效率。此外,为了兼顾拟合精度和计算效率,需适当地设置变量区间的索引数量,例如,将索引数量设置为8或16。
匹配单元120用于接收来自于查找表的变量区间和对应的线性函数参数以及待计算的激活函数的输入变量(如图1示出的数据1至数据M等),并根据这些输入确定与待计算的激活函数的输入变量对应的线性函数参数,包括斜率和截距。参见图1,示出了M个匹配单元120,表示为匹配单元1至匹配单元M,其中,每个匹配单元接收查找表中的所有N个索引,并且每个匹配单元接收不同的输入变量,M个匹配单元可并行输出不同输入变量对应的线性函数参数,从而提高计算效率。
例如,当输入变量落在第一个索引[0,1]范围内时,由其中一个匹配单元(例如匹配单元1)输出斜率a1和截距b1,当输入变量落在第二个索引[1,2]范围内时,由另外一个匹配单元(例如,匹配单元2)输出斜率a2和截距b2。应理解的是,由于端点值1既属于[0,1],也属于[1,2],因此,当输入变量为1时,可由匹配单元1输出斜率和截距,也可由匹配单元2输出斜率和截距,不影响最终的计算结果,在实际应用时只要统一规则即可,在下文的描述中对于端点值的处理也不再单独说明。
匹配单元120的输出连接至缓存单元140并连接至计算单元150,缓存单元140用于暂存匹配单元输出的线性函数参数,并将缓存的参数输出至计算单元150。例如,匹配单元120可定期采集时钟周期,根据当前处理所位于时钟周期的不同时刻确定将匹配单元120的输出发送至连接的缓存单元140或是发送至计算单元150,例如,如果当处于时钟周期的下降沿时,将匹配单元120的输出发送至缓存单元140,而当位于时钟周期的上升沿时,将匹配单元120的输出发送至计算单元150。
计算单元130与匹配单元120具有连接关系,并且与缓存单元140具有连接关系,计算单元130可用于接收来自于匹配单元120的线性函数参数,或者接收来自于缓存单元140的线性函数参数,也可同时接收来自于匹配单元120和来自于缓存单元140的线性函数参数,从而计算输入变量对应的函数值。图1示出了2M个计算单元130,M个匹配单元,一个匹配单元与一个计算单元对应连接。
例如,输出匹配单元1输出斜率a1和截距b1,匹配单元2输出斜率a2和截距b2时,计算单元1将执行a1×x+b1的计算,其中x对应输入变量1(即数据1),计算单元2将执行a2×x+b2的计算,其中x对应输入变量2(即数据2)。
为了提高神经网络处理器的计算吞吐量,通常在设计过程中会追求高并行度的设计,现有技术中的激活函数处理装置作为非线性运算部件比线性运算部件(乘加等)复杂度高,资源开销大。而本发明提供的激活处理装置通过采用寄存器堆的方式构建查找表,能够实现多个匹配单元和计算单元共享同一个查找表单元,在保证高并行度运算的同时减少了装置的面积开销。若查找表采用寻址输出的存储器,则每时钟周期只能完成一个索引与数据的比较,从而显著降低计算效率,或者每个匹配单元中均需保存所有变量区间索引及对应的线性函数参数,导致增加了装置的面积开销。
图2示出了根据本发明一个实施例的匹配单元的电路结构示意图。该匹配单元包括多个比较器,表示为比较器1至比较器M,数据选择器210和数据选择器220,其中,比较器1至比较器M的输出均连接至数据选择器210和数据选择器220,数据选择器210和和数据选择器220的输出连接至同一个计算单元(未示出),该匹配单元能够同时接收表2示出的所有查找表的索引,下文称为查找表2。
表2:查找表示例
索引 | 斜率 | 截距 |
[-∞,0] | a1 | b1 |
[0,1] | a2 | b2 |
[1,2] | a3 | b3 |
…… | …… | …… |
[M-2,M-1] | aM | bM |
比较器用于将激活函数的输入变量与查找表的激活函数的变量区间进行匹配,并根据他们之间的大小关系确定输出值,例如,比较器2的一个输入用于接收激活函数的输入变量,另外两个输入用于接收来自于查找表的索引2(即该索引对应的变量区间的端点值0和1),因此,当输入变量大于0且小于1时,比较器2输出高电平“1”,而其他比较器输出低电平“0”。
数据选择器210接收来自于查找表的激活函数的多个斜率参数,并根据比较器的输出选择一个斜率参数输出,数据选择器220接收来自于查找表的激活函数的多个截距参数,并根据比较器的输出选择输出一个截距参数。例如,当输入变量落在[0,1]区间时(即查找表的索引2,其对应的斜率参数为a2,对应的截距参数为b2),比较器2输出高电平,而其他比较器均输出低电平,则数据选择器210将斜率a1、数据选择器220将截距b1输出至连接的计算单元。又如,当输入变量落在[-∞,0]区间时,比较器1输出高电平,其他比较器输出低电平,数据选择器210和数据选择器220将该区间对应的线性函数参数a1和b1输出。
需要说明的是,在优选的实施例中,每个匹配单元中比较器的数量与查找表中索引的数量相等,如2所示,当查找表2中具有M个索引的情况下,每个匹配单元中比较器的数量同样设置为M个,从而能够同时接收查找表中的所有索引,而匹配单元的数量大于等于2即可实现计算输入变量函数值的并行处理。在另外的实施例中,每个匹配单元中比较器的数量也可小于或大于查找表中索引的数量,例如,小于查找表中索引的数量时,可将查找表中索引在不同的时刻分批广播至匹配单元。图3示出了根据本发明一个实施例的计算单元的电路图。该计算单元由乘法器和加法器构成,其中,乘法器接收来自于匹配单元的斜率参数与输入变量x,进行乘法运算,加法器接收来自于乘法器的输出结果和来自于匹配单元的截距参数b,执行加法运算,从而该计算单元获得输入变量x对应的函数值,一般性的表示为f(x)=ax+b。
结合图1至图3,当采用图1的连接关系时,根据计算单元的规模,利用缓存单元140可将需要进行激活处理的输入变量分为两个批次,具体地,将2M个计算单元分为各包含M个计算单元的两组,第一组计算单元接收来自于缓存单元140的M组线性函数参数,第二组计算单元接收来自于匹配单元120的M组线性函数参数;通过控制数据在各单元之间的加载顺序,在同一个时钟周期,可完成2M个输入变量的激活处理。
例如,参见图4所示,首先查找表中的所有参数和索引被广播到M个匹配单元,即N个变量区间和N组线性函数参数均同时输入至M个匹配单元120。在某个时钟脉冲的下降沿,M个输入变量接入至M个匹配单元进行匹配比较,根据匹配结果将对应的线性函数参数输出至缓存单元140中,在下一个时钟脉冲的上升沿,将下一批M个输入变量接入至M个匹配单元进行匹配比较,根据匹配结果将对应的M组线性函数参数输出至一组计算单元,与此同时,缓存单元140中的M组线性参数也输出至另一组计算单元,通过这种方式,在同一时钟周期能够完成2M个输入变量的线性计算,即激活处理。需要说明的是,只要在同一时钟周期的不同时刻完成上述操作即可实现在同一时钟周期完成2M个输入变量的线性计算,例如,可在时钟脉冲的上升沿将匹配单元的输出结果发送至缓存单元,而在下一个时钟脉冲的下降沿将匹配单元的输出结果和缓存单元的数据同时发送至计算单元。
上述实施例中,数据选择器、比较器、乘法器和加法器等可采用通用或专用器件实现。
本发明的激活处理装置可应用于神经网络处理器,实现激活处理过程,参见图5示出的基于本发明的激活处理装置的神经网络处理器。概括而言,该处理器基于存储-控制-计算的结构。存储结构用于存储参与计算的数据及处理器的操作指令等;控制结构用于解析操作指令,生成控制信号,该信号用于控制处理器内数据的调度和存储以及神经网络的计算过程;计算结构用于参与该处理器中的神经网络计算操作,保证数据在计算单元中能够正确地进行计算。
具体地,参见图5,该处理器501包括输入数据存储单元502、控制单元503、输出数据存储单元504、权重存储单元505、指令存储单元506、计算阵列507(示出了2M个计算单元)、查找表构建单元508、查找表存储单元509、匹配单元510和缓存单元511。其中,计算阵列507、查找表构建单元508、查找表存储单元509、匹配单元510和缓存单元511构成本发明的激活处理装置,在此实施例中,为了便于说明,示出了可选的查找表构建单元408。需要说明的是,尽管未示出,该处理器501的各单元采用统一的时钟,时钟可由片外时钟源提供,也可由片上锁相环提供,但是为了降低运行功耗,各单元可以不必持续地采集时钟脉冲,而是由控制单元503根据当前处理状态在适当地时刻通知其他单元开始采集时钟和停止采集。
输入数据存储单元502用于存储参与计算的数据,该数据待进行激活处理的输入变量和参与中间层计算的数据等。
输出数据存储单元504用于存储计算阵列507得到的计算结果。
权重存储单元505可用于存储已经训练好的神经网络权重。
指令存储单元506存储参与计算的指令信息,指令被解析以实现神经网络计算。
控制单元503分别与输出数据存储单元504、权重存储单元505、指令存储单元506、计算阵列507和缓存单元511相连。控制单元503获得保存在指令存储单元506中的指令并且解析该指令,控制单元503可根据解析指令得到的控制信号控制计算阵列507进行神经网络的相关计算。
计算阵列507用于根据控制单元503的产生的控制信号来执行相应的神经网络计算。计算阵列507与一个或多个存储单元相关联,例如,计算阵列507可以从与其相关联的输入数据存储单元502中获得数据并进行计算,并且可以向输出数据存储单元504写入数据。计算阵列507完成神经网络算法中的大部分运算,例如,当采用本发明提供的计算单元时,计算阵列实现激活处理的相关运算。
查找表构建单元508用于构建反映激活函数的变量区间与对应的拟合的线性函数参数的对应关系的查找表。
查找表存储单元509用于存储查找表构建单元508输出的查找表。
匹配单元510用于基于查找表确定待计算的激活函数的输入变量所对应的线性函数参数。
缓存单元511用于暂存来自于匹配单元510的线性函数参数并在控制单元503的控制下在适当时刻将缓存的线性函数参数输出至计算阵列507。
在实际应用中,当采用图5的神经网络处理器进行激活处理时,处理过程包括:首先,查找表构建单元508可针对神经网络中应用的多个类型的激活函数分别构建查找表,并存储于查找表存储单元509的不同地址;当控制单元503判断需要进行某一类型的激活处理时,由控制单元503从查找表存储单元509的相应位置读取查找表并将查找表并将该查找表中的变量区间和对应的线性函数参数以及输入变量广播至多个匹配单元510;控制单元503根据当前的处理状态通知匹配单元510、缓存单元511采集时钟脉冲,以根据时钟脉冲的上升沿或下降沿实现本发明的上述处理。由匹配单元510和计算阵列507通过执行线性运算获得输入变量对应的函数值,该函数值与直接通过激活函数获得的结果近似,但计算速度显著提高,并同时降低了运行功耗。
在图5示出的神经网络处理器中,各存储单元(包括缓存单元)、控制单元和计算阵列之间的数据通路可通过H-TREE或FAT-TREE等互联技术实现。存储单元可以是静态随机存储器(SRAM)、动态随机存储器(DRAM)、寄存器堆等常见存储介质,也可以是3D存储器件等新型的存储类型。此外,本发明提供的神经网络处理器可以是针对神经网络计算而设计的一个微处理器,也可以仅是微处理器的一部分,该神经网络处理器可应用于文字处理、语音识别与处理、多国语言翻译、图像识别、生物特征识到、智能控制等领域,可用作智能计算处理器、机器人、移动设备、也可用于构建大规模神经网络计算超级计算机。基于本发明的神经网络处理器提高了对于多种激活函数的普适性并降低了运行功耗。
需要说明的是,尽管本发明以神经网络中激活处理为例进行说明,但本领域的技术人员应理解,本发明的装置同样适用于神经网络中其他的非线性函数的计算,例如,归一化处理。
虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种应用于神经网络的激活处理装置,其特征在于,包括查找表单元、多个匹配单元、多个计算单元和缓存单元,所述查找表单元、所述多个匹配单元、所述多个计算单元和所述缓存单元采用统一的时钟驱动,其中:
所述查找表单元用于存储反映神经网络中的激活函数的变量区间以及对应的拟合线性函数参数之间的映射关系,其中,所述线性函数参数包括用于限定线性函数的截距和斜率;
所述多个匹配单元用于基于所述查找表将与待计算输入变量对应的线性函数参数输出至所述缓存单元或输出至所述多个计算单元;
所述缓存单元用于将所存储的线性函数参数输出至所述多个计算单元;
所述多个计算单元与所述多个匹配单元和所述缓存单元连接,所述多个计算单元根据来自于所述缓存单元和/或来自于所述多个匹配单元的线性函数参数完成针对待计算的激活函数的输入变量的线性运算。
2.根据权利要求1所述的激活处理装置,其特征在于,包括M个所述匹配单元,2M个所述计算单元,M个所述匹配单元与M个所述计算单元一一对应连接,所述缓存单元与其余M个计算单元连接,其中,M为大于等于2的整数。
3.根据权利要求2所述的激活处理装置,其特征在于,所述M个匹配单元在时钟脉冲的下降沿将所获得的线性函数参数输出至所述缓存单元,在下一个时钟脉冲的上升沿将所获得的线性函数参数输出至所连接的M个计算单元,并且所述缓存单元在该下一个时钟脉冲的上升沿将所缓存的线性函数参数输出至所连接的M个计算单元;或者
所述M个匹配单元在时钟脉冲的上升沿将获得的线性函数参数输出至所述缓存单元,在下一个时钟脉冲的下降沿将获得的线性函数参数输出至所连接的M个计算单元,并且所述缓存单元在该下一个时钟脉冲的下降沿将所缓存的线性函数参数输出至所连接的M个计算单元。
4.根据权利要求1所述的激活处理装置,其特征在于,所述激活函数包括函数f(x)=tanh(x)或f(x)=max(0,x)。
5.根据权利要求1所述的激活处理装置,其特征在于,所述多个匹配单元中的每一个匹配单元由第一数据选择器、第二数据选择器和多个比较器构成,所述第一数据选择器用于接收来自于所述查找表的线性函数参数的斜率,所述第二数据选择器用于接收来自于所述查找表的线性函数参数的截距,所述比较器基于来自于所述查找表的激活函数的变量区间以及待计算的激活函数的输入变量来控制所述第一数据选择器和所述第二数据选择器输出与待计算的激活函数的输入变量对应的线性函数参数。
6.根据权利要求1所述的激活处理装置,其特征在于,所述计算单元包括乘法器和加法器,所述乘法器接收来自于所连接的匹配单元的线性函数参数的斜率和待计算的激活函数的输入变量,执行乘法计算,所述加法器接收来自于所连接的匹配单元的线性函数参数的截距以及所述乘法器的输出,执行加法计算。
7.一种神经网络处理器,包括:
根据权利要求1至6中任一项所述的激活处理装置;
控制单元:用于控制所述激活处理装置的计算;
存储单元:用于存储待计算数据以及计算过程中的中间结果。
8.一种用于权利要求1至6中任一项所述的激活处理装置的神经网络激活处理方法,该方法包括以下步骤:
步骤1:基于查找表将与待计算输入变量对应的线性函数参数输出至所述缓存单元或输出至所述多个计算单元,其中所述查找表存储反映神经网络中的激活函数的变量区间以及对应的拟合线性函数参数之间的映射关系,所述线性函数参数包括用于限定线性函数的截距和斜率;
步骤2:所述多个计算单元根据来自于所述缓存单元和/或来自于所述多个匹配单元的线性函数参数完成针对待计算的激活函数的输入变量的线性运算。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求8所述的方法的步骤。
10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求8所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810417343.6A CN108921288A (zh) | 2018-05-04 | 2018-05-04 | 神经网络激活处理装置和基于该装置的神经网络处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810417343.6A CN108921288A (zh) | 2018-05-04 | 2018-05-04 | 神经网络激活处理装置和基于该装置的神经网络处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108921288A true CN108921288A (zh) | 2018-11-30 |
Family
ID=64403799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810417343.6A Pending CN108921288A (zh) | 2018-05-04 | 2018-05-04 | 神经网络激活处理装置和基于该装置的神经网络处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108921288A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN110147879A (zh) * | 2019-04-03 | 2019-08-20 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
CN110688088A (zh) * | 2019-09-30 | 2020-01-14 | 南京大学 | 一种面向神经网络的通用非线性激活函数计算装置和方法 |
US20200401873A1 (en) * | 2019-06-19 | 2020-12-24 | Neuchips Corporation | Hardware architecture and processing method for neural network activation function |
CN113379031A (zh) * | 2021-06-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 神经网络的处理方法、装置、电子设备和存储介质 |
WO2022227962A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种数据处理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426501B2 (en) * | 2003-07-18 | 2008-09-16 | Knowntech, Llc | Nanotechnology neural network methods and systems |
CN103348300A (zh) * | 2011-01-21 | 2013-10-09 | 飞思卡尔半导体公司 | 计算函数的函数值的装置和方法 |
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构***及方法 |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN107861916A (zh) * | 2017-11-10 | 2018-03-30 | 中国科学院计算技术研究所 | 一种用于针对神经网络执行非线性运算的方法和装置 |
-
2018
- 2018-05-04 CN CN201810417343.6A patent/CN108921288A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426501B2 (en) * | 2003-07-18 | 2008-09-16 | Knowntech, Llc | Nanotechnology neural network methods and systems |
CN103348300A (zh) * | 2011-01-21 | 2013-10-09 | 飞思卡尔半导体公司 | 计算函数的函数值的装置和方法 |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN106775599A (zh) * | 2017-01-09 | 2017-05-31 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构***及方法 |
CN107729984A (zh) * | 2017-10-27 | 2018-02-23 | 中国科学院计算技术研究所 | 一种适用于神经网络激活函数的计算装置及方法 |
CN107861916A (zh) * | 2017-11-10 | 2018-03-30 | 中国科学院计算技术研究所 | 一种用于针对神经网络执行非线性运算的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657788A (zh) * | 2018-12-18 | 2019-04-19 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置及相关产品 |
CN110147879A (zh) * | 2019-04-03 | 2019-08-20 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
US20200401873A1 (en) * | 2019-06-19 | 2020-12-24 | Neuchips Corporation | Hardware architecture and processing method for neural network activation function |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
CN110610235B (zh) * | 2019-08-22 | 2022-05-13 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
CN110688088A (zh) * | 2019-09-30 | 2020-01-14 | 南京大学 | 一种面向神经网络的通用非线性激活函数计算装置和方法 |
CN110688088B (zh) * | 2019-09-30 | 2023-03-28 | 南京大学 | 一种面向神经网络的通用非线性激活函数计算装置和方法 |
WO2022227962A1 (zh) * | 2021-04-29 | 2022-11-03 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN113379031A (zh) * | 2021-06-01 | 2021-09-10 | 北京百度网讯科技有限公司 | 神经网络的处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108921288A (zh) | 神经网络激活处理装置和基于该装置的神经网络处理器 | |
CN108898216A (zh) | 应用于神经网络的激活处理装置 | |
CN107169560B (zh) | 一种自适应可重构的深度卷积神经网络计算方法和装置 | |
CN106529670B (zh) | 一种基于权重压缩的神经网络处理器、设计方法、芯片 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理***及方法 | |
CN105184366B (zh) | 一种时分复用的通用神经网络处理器 | |
CN110110851A (zh) | 一种lstm神经网络的fpga加速器及其加速方法 | |
CN107609641A (zh) | 稀疏神经网络架构及其实现方法 | |
CN106875013A (zh) | 用于多核优化循环神经网络的***和方法 | |
US20210150362A1 (en) | Neural network compression based on bank-balanced sparsity | |
CN109359730A (zh) | 面向固定输出范式Winograd卷积的神经网络处理器 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN108171328A (zh) | 一种卷积运算方法和基于该方法的神经网络处理器 | |
CN108510065A (zh) | 应用于长短时记忆神经网络的计算装置和计算方法 | |
CN110163359A (zh) | 一种计算装置及方法 | |
WO2023202511A1 (zh) | 一种数据的处理方法、神经网络的训练方法以及相关设备 | |
CN111105023A (zh) | 数据流重构方法及可重构数据流处理器 | |
CN109272110A (zh) | 基于光子神经网络芯片的光电融合智能信号处理*** | |
Zhang et al. | Implementation and optimization of the accelerator based on FPGA hardware for LSTM network | |
Pietrzak et al. | Overview of spiking neural network learning approaches and their computational complexities | |
Li et al. | Heterogeneous blocked CPU-GPU accelerate scheme for large scale extreme learning machine | |
Galvez Vallejo et al. | High-performance GPU-accelerated evaluation of electron repulsion integrals | |
Li et al. | Research and implementation of parallel artificial fish swarm algorithm based on ternary optical computer | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线*** | |
Peng et al. | Option pricing on the GPU with backward stochastic differential equation |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181130 |