CN113902089A - 加速激活函数运算的装置、方法及存储介质 - Google Patents

加速激活函数运算的装置、方法及存储介质 Download PDF

Info

Publication number
CN113902089A
CN113902089A CN202010574536.XA CN202010574536A CN113902089A CN 113902089 A CN113902089 A CN 113902089A CN 202010574536 A CN202010574536 A CN 202010574536A CN 113902089 A CN113902089 A CN 113902089A
Authority
CN
China
Prior art keywords
variable
activation function
unit
function
logic
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
Application number
CN202010574536.XA
Other languages
English (en)
Inventor
詹大纬
林宏文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Futaihua Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Original Assignee
Futaihua Industry Shenzhen Co Ltd
Hon Hai Precision Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Futaihua Industry Shenzhen Co Ltd, Hon Hai Precision Industry Co Ltd filed Critical Futaihua Industry Shenzhen Co Ltd
Priority to CN202010574536.XA priority Critical patent/CN113902089A/zh
Priority to US17/354,422 priority patent/US20210397928A1/en
Publication of CN113902089A publication Critical patent/CN113902089A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

本发明提供一种加速激活函数运算的装置,所述装置包括寄存器,用于储存一存储表;匹配单元,包括多个比较器、逻辑单元和选择单元,所述多个比较器通过所述逻辑单元与选择单元连接,所述多个比较器用于将激活函数的输入变量与激活函数的变量区间进行匹配,得到比较输出结果,所述逻辑单元根据所述比较输出结果进行逻辑运算得到逻辑输出结果,并根据所述逻辑输出结果确定待计算的变量区间;所述选择单元用于根据待计算的变量区间查询所述存储表,得到拟合二次函数的参数;计算单元,与所述匹配单元连接,用于根据所述参数完成针对所述输入变量的运算。本发明还提供一种加速激活函数运算的方法和介质。本发明能够提高激活函数处理的速度。

Description

加速激活函数运算的装置、方法及存储介质
技术领域
本发明涉及深度学习技术领域,具体涉及一种加速激活函数运算的装置、方法及存储介质。
背景技术
对于最先进的人工神经网络,其数据处理包括卷积、池化和激活等。其中,激活的作用是提供神经网络的非线性建模能力。现有的激活函数的功能多种多样且复杂。所述激活函数中可能包括指数运算和除法运算等,引入了复杂的计算和时间消耗。
发明内容
鉴于以上问题,本发明提出一种加速激活函数运算的装置、方法及存储介质,以提高激活函数处理的速度。
本申请的第一方面提供一种加速激活函数运算的装置,所述装置包括:
寄存器,用于储存一存储表,其中,所述存储表描述的是激活函数的变量区间以及该区间对应的拟合二次函数的参数的映射关系;
匹配单元,包括多个比较器、逻辑单元和选择单元,所述多个比较器通过所述逻辑单元与选择单元连接,所述多个比较器用于将激活函数的输入变量与激活函数的变量区间进行匹配,得到比较输出结果,所述逻辑单元根据所述比较输出结果进行逻辑运算得到逻辑输出结果,并根据所述逻辑输出结果确定待计算的变量区间;所述选择单元用于根据待计算的变量区间查询所述存储表,得到拟合二次函数的参数;
计算单元,与所述匹配单元连接,用于根据所述参数完成针对所述输入变量的运算。
优选地,所述逻辑单元包括非门、多个异或门和缓存单元。
优选地,所述拟合二次函数的参数包括二次项系数、一次项系数和常数。
优选地,所述计算单元包括乘法器和加法器,其中,所述乘法器接收来自于所述选择单元的二次项系数、一次项系数与输入变量,进行乘法运算;所述加法器接收来自于乘法器的输出结果和来自于所述选择单元的常数,执行加法运算。
优选地,当输入变量小于变量区间的最大变量时,所述比较器输出低电平;
当输入变量大于或等于所述变量区间的最大变量时,所述比较器输出高电平。
优选地,所述激活函数包括函数
Figure BDA0002550524260000021
或f(x)=max(0,x)。
本申请的第二方面提供一种加速激活函数运算的方法,所述方法包括:
接收输入变量;
比较所述输入变量与激活函数的变量区间,得到比较输出结果;
将所述比较输出结果进行逻辑运算得到逻辑输出结果;
根据所述逻辑输出结果确定待计算的变量区间;
根据待计算的变量区间查询存储表,得到拟合二次函数的参数;
根据所述参数完成针对所述输入变量的运算。
优选地,所述存储表描述的是激活函数的变量区间以及该区间对应的拟合二次函数的参数的映射关系。
优选地,所述拟合二次函数的参数包括二次项系数、一次项系数和常数。
本发明第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的数据处理方法。
本发明提供的加速激活函数运算的装置、方法及存储介质,本申请提供的加速激活函数运算的装置,可以通过匹配单元匹配与激活函数的变量区间对应拟合二次函数的参数,再通过计算单元根据所述参数完成针对激活函数的输入变量的运算。可以简化激活函数计算过程,在提高神经网络中激活函数处理的计算效率的同时可以更高精度的拟合激活函数。
附图说明
图1是本发明一实施例所提供的加速激活函数运算的装置的示意图。
图2是本发明一实施例所提供的加速激活函数运算的装置中的匹配单元的示意图。
图3是本发明一实施方式提供的加速激活函数运算的装置中的逻辑单元的示意图。
图4是本发明一实施方式提供的加速激活函数运算的装置中的计算单元的示意图。
图5是本发明一实施方式提供的通过二次函数逼近激活函数和通过一次函数逼近激活函数示例图。
图6是本发明一实施方式提供的加速激活函数运算的方法的流程图。
图7是本发明一实施方式提供的加速激活函数运算系统的功能模块图。
图8是本发明一实施方式提供的电子设备的示意图。
主要元件符号说明
运算装置 10
寄存器 110
匹配单元 120
计算单元 130
比较器 121
逻辑单元 122
选择单元 123
缓存单元 1222
异或门 1221
非门 1220
运算系统 200
接收模块 201
比较模块 202
处理模块 203
确定模块 204
查询模块 205
电子设备 1
存储器 11
处理器 12
计算机可读存储介质 13
通讯总线 14
步骤 S1~S6
具体实施方式
为了能够更清楚地理解本发明的所述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
请参阅图1,图1为本发明一个实施例提供的加速激活函数运算的装置(为了便于描述,下文简称“运算装置10”)的示意图。在本实施方式中,神经网络的激活函数通常采用非线性函数。例如,sigmoid函数
Figure BDA0002550524260000041
f(x)=tanh(x),ReLU函数f(x)=max(0,x)。非线性的激活函数在神经网络的激活处理过程中存在执行速度慢的问题。为了解决该问题,本申请中将计算复杂的非线性函数通过分段拟合二次函数和有限元方法来近似。具体地,通过将激活函数划分为N段,每一段都通过所述拟合二次函数以对其进行近似。计算每一段对应的拟合二次函数的参数,并存储至系数存储器中。
在本实施方式中,所述运算装置10包括寄存器110、匹配单元120、与匹配单元120连接的计算单元130。需要说明的是,尽管未示出,所述运算装置10中各单元可以由统一的时钟驱动,以保证处理过程中的计算时序。所述寄存器110包括系数寄存器、分段寄存器和配置寄存器。所述系数寄存器用于存储用于拟合激活函数的拟合二次函数的参数。在本实施方式中,所述参数包括二次项系数a、一次项系数b和常数c。利用所述参数可唯一地确定与激活函数的某一段变量区间对应的拟合二次函数的表达式。例如,如果将所述激活函数划分成N段,那么所述系数寄存器中存储有N组参数(ai,bi,ci),其中,1≤i≤N。所述参数的数据类型为32位浮点型。
所述分段寄存器用于存储分段处理后的激活函数的变量。例如,将所述激活函数的变量划分为N份,可以得到N个变量区间。在本实施方式中,所述系数寄存器与所述分段寄存器存在对应关系。所述系数寄存器中存储的参数构建的拟合二次函数可以表示所述分段寄存器中存储的变量区间对应的激活函数。
所述配置寄存器用于配置所述拟合二次函数以适用各种类型的激活函数。在本实施方式中,所述配置寄存器包括使能单元,当使能单元的使能信号为高电平信号“1”时,根据分段寄存器中存储的分段处理后的激活函数选择对应的拟合二次函数;当使能单元的使能信号为0时,确认激活函数的输出与输入相等。
在一实施方式中,所述寄存器110中还可以存储激活函数的变量区间以及该区间对应的拟合二次函数的参数的映射关系。优选地,所述映射关系可以是存储表的形式。所述存储表可以采用寄存器堆的形式构成,即每组变量区间索引和对应的拟合函数参数均保存在寄存器中,采用寄存器堆的方式存储能够将查找表的多个输出同时接入多个比较器中,从而提高了运算装置的并行度。所述多个输出包括多个变量区间和对应的拟合二次函数的参数。
例如,在一个实施例中,基于sigmoid函数构建的存储表参见下表1所示。
表1
变量区间 二次项系数 一次项系数 常数
[0,1] a<sub>1</sub> b<sub>1</sub> c<sub>1</sub>
[1,2] a<sub>2</sub> b<sub>2</sub> c<sub>2</sub>
…… …… …… ……
[N-1,N] a<sub>N</sub> b<sub>N</sub> c<sub>N</sub>
在表1中,包括N个变量区间,每个变量区间对应的是激活函数的变量区间范围,二次项系数、一次项系数和常数表示在相应变量区间范围内与该激活函数拟合的二次函数的二次项系数、一次项系数和)常数。例如,表1中激活函数的变量区间范围被划分为等间距的多个分段区间[0,1)、[1,2)等。例如,当变量区间为[0,1)时,对应的拟合二次函数的参数为二次项系数a1、一次项系数b1和常数c1;当变量区间为[1,2)时,对应的拟合二次函数的参数为a2、一次项系数b2和常数c2
需要说明的是,所述储表参可在进行激活处理时在线构建或动态改变,也可离线构建神经网络中涉及的多个激活函数的储表参,预先存储于寄存器110中,以在激活处理过程中动态读取,优选采用离线方式构建储表参,以提高激活处理效率。
所述匹配单元120用于根据激活函数的输入变量与变量区间,以确定所述激活函数的输入变量落在哪个变量区间,再根据确定的变量区间匹配对应的拟合二次函数的参数。
参阅图2,所述匹配单元120包括多个比较器121,逻辑单元122和选择单元123。所述多个比较器121通过所述逻辑单元122与选择单元123连接。图2示中出了N个比较器,分别为比较器1、比较器2…比较器N-1。
在本实施方式中,所述比较器121用于将激活函数的输入变量与激活函数的变量区间进行匹配,并根据他们之间的大小关系确定输出值。当输入变量x小于变量区间的最大变量xN时,所述比较器输出低电平“0”;当输入变量x大于或等于所述变量区间的最大变量xN时,所述比较器输出高电平“1”。
所述逻辑单元122包括非门1220、多个异或门1221和缓存单元1222。例如,如图3所示,所述比较器1的输出分别与所述逻辑单元122的非门和异或门1连接;比较器2的输出分别与所述异或门1和异或门2连接;比较器3的输出分别与所述异或门2和异或门3连接;依次类推,比较器N-2的输出分别与所述异或门N-3和异或门N-2连接;比较器N-1的输出分别与所述异或门N-2和缓存单元连接。当输入变量大于所有变量区间的最大值时,所述比较器N-1的输出结果直接输入至所述缓存单元1222。
例如,比较器2的一个输入用于接收激活函数的输入变量,另外一个输入用于接收区间变量[1,2)的最大值x2,x2趋近于2。例如,当输入变量为1.5时,由于1.5大于1,所以比较器1输出高电平“1”,由于1.5小于2,比较器2输出低电平“0”,同样,由于1.5小于其他区间变量的最大值,所以其他比较器也输出低电平“0”。而比较器1经过逻辑单元的非门后输出低电平“0”,而比较器1的输出和比较器2的输出经过逻辑单元的异或门处理后输出高电平“1”,比较器2的输出和比较器3的输出经过逻辑单元的异或门后输出低电平“0”,依次类推,比较器N-2的输出和比较器N-1的输出经过逻辑单元的异或门后输出低电平“0”。因此,选择单元选择与变量区间[1,2)对应的拟合二次函数的参数(a2,b2,c2)。再将选择单元123选择的参数输出至连接的计算单元130。
如图4,所述计算单元130包括乘法器130和加法器131,其中,乘法器130接收来自于选择单元123的二次项系数a、一次项系数b与输入变量x,进行乘法运算,加法器131接收来自于乘法器130的输出结果和来自于选择单元123的常数c,执行加法运算,从而该计算单元130获得输入变量x对应的函数值,一般性的表示为f(x)=ax2+bx+c。
需要说明的是,在优选的实施例中,每个匹配单元中比较器的数量与变量区间的数量相等,如2所示,当所述激活函数包括N个变量区间的情况下,每个匹配单元中比较器的数量同样设置为N个。上述实施例中,数据选择器、比较器、乘法器和加法器等可采用通用或专用器件实现。
在本实施方式中,通过采用拟合二次函数逼近所述激活函数,相较于一次函数逼近所述激活函数,可以带来更小的误差。以激活函数为f(x)=tanh(x)为例,如图5所示,通过二次函数逼近f(x)=tanh(x)的误差减少50%,明显优于通过一次函数逼近f(x)=tanh(x),更适于神经网络的运算。
请参阅图6,图6为根据本申请一实施方式的加速激活函数运算的方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。在本实施方式中,所述加速激活函数运算的方法应用于所述加速激活函数运算的装置10中。所述加速激活函数运算的方法可以包括以下步骤。
步骤S1,接收输入变量;
在本实施方式中,所述输入变量为激励函数的输入变量。
步骤S2,比较所述输入变量与激活函数的变量区间,得到比较输出结果;
在本实施方式中,通过匹配单元中的比较器比较所述输入变量与激活函数的变量区间,得到比较输出结果。所述比较器用于将激活函数的输入变量与激活函数的变量区间进行匹配,并根据他们之间的大小关系确定输出值。当输入变量x小于区间变量的最大值xN时,所述比较单元输出低电平“0”;当输入变量x大于或等于所述区间变量的最大值xN时,所述比较单元输出高电平“1”。
例如,比较器2的一个输入用于接收激活函数的输入变量,另外一个输入用于接收区间变量[1,2)的最大值x2,x2趋近于2。例如,当输入变量为1.5时,由于1.5大于1,所以比较器1输出高电平“1”;由于1.5小于2,比较器2输出低电平“0”,同样,由于1.5小于其他区间变量的最大值,所以其他比较器也输出低电平“0”。
步骤S3,将所述比较输出结果进行逻辑运算得到逻辑输出结果;
在本实施方式中,通过所述匹配单元中的逻辑单元将所述比较输出结果进行逻辑运算得到逻辑输出结果。所述逻辑单元包括非门、多个异或门和缓存单元。例如,如图3所示,所述比较器1的输出分别与所述逻辑单元的非门和异或门1连接;比较器2的输出分别与所述异或门1和异或门2连接;比较器3的输出分别与所述异或门2和异或门3连接;依次类推,比较器N-2的输出分别与所述异或门N-3和异或门N-2连接;比较器N-1的输出分别与所述异或门N-2和缓存单元连接。
例如,当输入变量为1.5时,比较器1经过逻辑单元的非门后输出低电平“0”,而比较器1的输出和比较器2的输出经过逻辑单元的异或门处理后输出高电平“1”,比较器2的输出和比较器3的输出经过逻辑单元的异或门后输出低电平“0”,依次类推,比较器N-2的输出和比较器N-1的输出经过逻辑单元的异或门后输出低电平“0”。
步骤S4,根据所述逻辑输出结果确定待计算的变量区间;
在本实施方式中,当逻辑输出结果为“1”时,对应的比较器的一个输入的区间变量所在的变量区间为所述待计算的变量区间。
例如,当输入变量为1.5时,比较器1经过逻辑单元的非门后输出低电平“0”,而比较器1的输出和比较器2的输出经过逻辑单元的异或门处理后输出高电平“1”,比较器2的输出和比较器3的输出经过逻辑单元的异或门后输出低电平“0”。则比较器2的一个输入的区间变量所在的变量区间[1,2)为所述待计算的变量区间。
步骤S5,根据待计算的变量区间查询存储表,得到拟合二次函数的参数;
在本实施方式中,通过选择单元根据所述待计算的变量区间查询存储表,得到拟合二次函数的参数。例如,选择单元选择与变量区间[1,2)对应的拟合二次函数的参数(a2,b2,c2)。再将选择单元选择的参数输出至连接的计算单元。
步骤S6,根据所述参数完成针对所述输入变量的运算。
所述计算单元根据参数(a2,b2,c2)代入拟合二次函数f(x)=a2x2+b2x+c2中,计算完成针对所述输入变量的运算。
图7为本发明加速激活函数运算系统较佳实施例中的功能模块图。
在一些实施例中,所述加速激活函数运算系统200(为了便于描述,下文简称“运算系统200”)运行于电子设备1中。所述运算系统200可以包括多个由程序代码段所组成的功能模块。所述运算系统200中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以实现激活处理过程。
本实施例中,所述运算系统200根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、比较模块202、处理模块203、确定模块204和查询模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
所述接收模块201用于接收输入变量。
在本实施方式中,所述输入变量为激励函数的输入变量。
所述比较模块202用于比较所述输入变量与激活函数的变量区间,得到比较输出结果;
在本实施方式中,通过匹配单元中的比较器比较所述输入变量与激活函数的变量区间,得到比较输出结果。所述比较器用于将激活函数的输入变量与激活函数的变量区间进行匹配,并根据他们之间的大小关系确定输出值。当输入变量x小于区间变量的最大值xN时,所述比较单元输出低电平“0”;当输入变量x大于或等于所述区间变量的最大值xN时,所述比较单元输出高电平“1”。
例如,比较器2的一个输入用于接收激活函数的输入变量,另外一个输入用于接收区间变量[1,2)的最大值x2,x2趋近于2。例如,当输入变量为1.5时,由于1.5大于1,所以比较器1输出高电平“1”;由于1.5小于2,比较器2输出低电平“0”,同样,由于1.5小于其他区间变量的最大值,所以其他比较器也输出低电平“0”。
所述处理模块203用于将所述比较输出结果进行逻辑运算得到逻辑输出结果;
在本实施方式中,通过所述匹配单元中的逻辑单元将所述比较输出结果进行逻辑运算得到逻辑输出结果。所述逻辑单元包括非门、多个异或门和缓存单元。例如,如图3所示,所述比较器1的输出分别与所述逻辑单元的非门和异或门1连接;比较器2的输出分别与所述异或门1和异或门2连接;比较器3的输出分别与所述异或门2和异或门3连接;依次类推,比较器N-2的输出分别与所述异或门N-3和异或门N-2连接;比较器N-1的输出分别与所述异或门N-2和缓存单元连接。
例如,当输入变量为1.5时,比较器1经过逻辑单元的非门后输出低电平“0”,而比较器1的输出和比较器2的输出经过逻辑单元的异或门处理后输出高电平“1”,比较器2的输出和比较器3的输出经过逻辑单元的异或门后输出低电平“0”,依次类推,比较器N-2的输出和比较器N-1的输出经过逻辑单元的异或门后输出低电平“0”。
所述确定模块204用于根据所述逻辑输出结果确定待计算的变量区间;
在本实施方式中,当逻辑输出结果为“1”时,对应的比较器的一个输入的区间变量所在的变量区间为所述待计算的变量区间。
例如,当输入变量为1.5时,比较器1经过逻辑单元的非门后输出低电平“0”,而比较器1的输出和比较器2的输出经过逻辑单元的异或门处理后输出高电平“1”,比较器2的输出和比较器3的输出经过逻辑单元的异或门后输出低电平“0”。则比较器2的一个输入的区间变量所在的变量区间[1,2)为所述待计算的变量区间。
所述查询模块205根据待计算的变量区间查询存储表,得到拟合二次函数的参数;
在本实施方式中,通过选择单元根据所述待计算的变量区间查询存储表,得到拟合二次函数的参数。例如,选择单元选择与变量区间[1,2)对应的拟合二次函数的参数(a2,b2,c2)。再将选择单元选择的参数输出至连接的计算单元。
所述处理模块203还用于根据所述参数完成针对所述输入变量的运算。
所述计算单元根据参数(a2,b2,c2)代入拟合二次函数(x)=a2x2+b2x+c2中,计算完成针对所述输入变量的运算。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
图8为本发明实施例三提供的电子设备的示意图。
所述电子设备1包括:存储器11、至少一个处理器12、存储在所述存储器11中并可在所述至少一个处理器12上运行的计算机可读存储介质13及至少一条通讯总线14。
所述至少一个处理器12执行所述计算机可读存储介质13时实现上述运算方法实施例中的步骤。
示例性的,所述计算机可读存储介质13可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器11中,并由所述至少一个处理器12执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机可读存储介质13在所述电子设备1中的执行过程。
所述电子设备1可以是手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)等安装有应用程序的设备。本领域技术人员可以理解,所述示意图7仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
所述至少一个处理器12可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器12可以是微处理器或者所述处理器12也可以是任何常规的处理器等,所述处理器12是所述电子设备1的控制中心,利用各种接口和线路连接整个电子设备1的各个部分。
所述存储器11可用于存储所述计算机可读存储介质13和/或模块/单元,所述处理器12通过运行或执行存储在所述存储器11内的计算机程序和/或模块/单元,以及调用存储在存储器11内的数据,实现所述电子设备1的各种功能。所述存储器11可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备1的使用所创建的数据(比如音频数据等)等。此外,存储器11可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述存储器11中存储有程序代码,且所述至少一个处理器12可调用所述存储器11中存储的程序代码以执行相关的功能。例如,图7中所述的各个模块(接收模块201、比较模块202、处理模块203、确定模块204和查询模块205)是存储在所述存储器11中的程序代码,并由所述至少一个处理器12所执行,从而实现所述各个模块的功能以实现激活处理的目的。
所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)等。
在本发明所提供的几个实施例中,应所述理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。

Claims (10)

1.一种加速激活函数运算的装置,其特征在于,所述装置包括:
寄存器,用于储存一存储表,其中,所述存储表描述的是激活函数的变量区间以及该区间对应的拟合二次函数的参数的映射关系;
匹配单元,包括多个比较器、逻辑单元和选择单元,所述多个比较器通过所述逻辑单元与选择单元连接,所述多个比较器用于将激活函数的输入变量与激活函数的变量区间进行匹配,得到比较输出结果,所述逻辑单元根据所述比较输出结果进行逻辑运算得到逻辑输出结果,并根据所述逻辑输出结果确定待计算的变量区间;所述选择单元用于根据待计算的变量区间查询所述存储表,得到拟合二次函数的参数;
计算单元,与所述匹配单元连接,用于根据所述参数完成针对所述输入变量的运算。
2.如权利要求1所述的加速激活函数运算的装置,其特征在于,所述逻辑单元包括非门、多个异或门和缓存单元。
3.如权利要求1所述的加速激活函数运算的装置,其特征在于,所述拟合二次函数的参数包括二次项系数、一次项系数和常数。
4.如权利要求3所述的加速激活函数运算的装置,其特征在于,所述计算单元包括乘法器和加法器,其中,所述乘法器接收来自于所述选择单元的二次项系数、一次项系数与输入变量,进行乘法运算;所述加法器接收来自于乘法器的输出结果和来自于所述选择单元的常数,执行加法运算。
5.如权利要求1所述的加速激活函数运算的装置,其特征在于:
当输入变量小于变量区间的最大变量时,所述比较器输出低电平;
当输入变量大于或等于所述变量区间的最大变量时,所述比较器输出高电平。
6.如权利要求1所述的加速激活函数运算的装置,其特征在于,所述激活函数包括函数
Figure FDA0002550524250000021
或f(x)=max(0,x)。
7.一种加速激活函数运算的方法,其特征在于,其中,所述方法包括:
接收输入变量;
比较所述输入变量与激活函数的变量区间,得到比较输出结果;
将所述比较输出结果进行逻辑运算得到逻辑输出结果;
根据所述逻辑输出结果确定待计算的变量区间;
根据待计算的变量区间查询存储表,得到拟合二次函数的参数;
根据所述参数完成针对所述输入变量的运算。
8.如权利要求7所述的方法,其特征在于,所述存储表描述的是激活函数的变量区间以及该区间对应的拟合二次函数的参数的映射关系。
9.如权利要求8所述的方法,其特征在于,所述拟合二次函数的参数包括二次项系数、一次项系数和常数。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求7至9中任意一项所述的加速激活函数运算的方法。
CN202010574536.XA 2020-06-22 2020-06-22 加速激活函数运算的装置、方法及存储介质 Pending CN113902089A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010574536.XA CN113902089A (zh) 2020-06-22 2020-06-22 加速激活函数运算的装置、方法及存储介质
US17/354,422 US20210397928A1 (en) 2020-06-22 2021-06-22 Device, method and storage medium for accelerating activation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010574536.XA CN113902089A (zh) 2020-06-22 2020-06-22 加速激活函数运算的装置、方法及存储介质

Publications (1)

Publication Number Publication Date
CN113902089A true CN113902089A (zh) 2022-01-07

Family

ID=79023639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010574536.XA Pending CN113902089A (zh) 2020-06-22 2020-06-22 加速激活函数运算的装置、方法及存储介质

Country Status (2)

Country Link
US (1) US20210397928A1 (zh)
CN (1) CN113902089A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114626511A (zh) * 2022-05-16 2022-06-14 北京鹰瞳科技发展股份有限公司 神经网络的训练方法、推理方法及相关产品

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868304B1 (en) * 2021-09-20 2024-01-09 Meta Platforms, Inc. Auto-configuration of hardware non-linear function acceleration
US11836604B2 (en) * 2021-12-01 2023-12-05 Deepx Co., Ltd. Method for generating programmable activation function and apparatus using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114626511A (zh) * 2022-05-16 2022-06-14 北京鹰瞳科技发展股份有限公司 神经网络的训练方法、推理方法及相关产品
CN114626511B (zh) * 2022-05-16 2023-03-24 北京鹰瞳科技发展股份有限公司 神经网络的训练方法、推理方法及相关产品

Also Published As

Publication number Publication date
US20210397928A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
US11868770B2 (en) Computer processor for higher precision computations using a mixed-precision decomposition of operations
US11531540B2 (en) Processing apparatus and processing method with dynamically configurable operation bit width
EP3651017B1 (en) Systems and methods for performing 16-bit floating-point matrix dot product instructions
CN109034383B (zh) 神经网络处理器及使用处理器执行矩阵相乘指令的方法
US20190102671A1 (en) Inner product convolutional neural network accelerator
CN113902089A (zh) 加速激活函数运算的装置、方法及存储介质
EP3719639A2 (en) Systems and methods to perform floating-point addition with selected rounding
US20210089316A1 (en) Deep learning implementations using systolic arrays and fused operations
US20180321912A1 (en) Data accumulation apparatus and method, and digital signal processing device
US10579338B2 (en) Apparatus and method for processing input operand values
CN111651200B (zh) 一种用于执行向量超越函数运算的装置和方法
EP3623940A2 (en) Systems and methods for performing horizontal tile operations
CN111752618A (zh) 浮点加法器的交错流水线
CN116028013B (zh) 一种fpga除法运算的优化方法、装置、除法器和介质
CN111027690A (zh) 执行确定性推理的组合处理装置、芯片和方法
US20230315450A1 (en) Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions
US20210405974A1 (en) Matrix transpose and multiply
US20210173648A1 (en) Processor for neural network operation
US11551087B2 (en) Information processor, information processing method, and storage medium
EP3716050A2 (en) Using fuzzy-jbit location of floating-point multiply-accumulate results
CN116166217A (zh) 执行浮点操作的系统和方法
TWI754970B (zh) 加速啟動函數運算的裝置、方法及存儲介質
Altamimi et al. Novel seed generation and quadrature-based square rooting algorithms
CN116302117A (zh) 数据处理方法及装置、处理器、电子设备、存储介质
CN117313804A (zh) 一种神经网络系统中激活函数的计算方法

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