CN113935480A - 面向神经网络在线学习的激活函数加速处理单元 - Google Patents
面向神经网络在线学习的激活函数加速处理单元 Download PDFInfo
- Publication number
- CN113935480A CN113935480A CN202111336615.8A CN202111336615A CN113935480A CN 113935480 A CN113935480 A CN 113935480A CN 202111336615 A CN202111336615 A CN 202111336615A CN 113935480 A CN113935480 A CN 113935480A
- Authority
- CN
- China
- Prior art keywords
- data
- activation function
- module
- neural network
- derivative
- 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
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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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/048—Activation functions
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本发明涉及集成电路领域及人工智能领域,具体地说涉及系统级别的集成电路芯片,特别涉及一种面向神经网络在线学习的激活函数加速处理单元。本发明通过硬件可编程技术来支持神经网络算法中不同的激活函数计算,满足不同算法以及不同数据精度的需求,还对神经网络激活函数计算单元进行硬件加速设计,在整体设计中加入乒乓逻辑设计和硬件流水线设计,极大的提升数据吞吐率与计算速度,且重点优化神经网络激活函数计算单元的乘法器、加法器和减法器,提升硬件资源的复用,极大减少硬件逻辑资源;本发明的激活函数加速处理单元相较于传统计算平台或FPGA,降低了功耗,减少了硬件资源,提升了神经网络在线学习加速计算的性能。
Description
技术领域
本发明涉及集成电路领域及人工智能领域,具体涉及系统级别的集成电路芯片领域,特别涉及一种面向神经网络在线学习的激活函数加速处理单元。
背景技术
随着人工智能技术的高速发展,深度神经网络在图像和语音等信号处理领域有了巨大的突破。但是由于数据的爆炸式增长,算法模型朝着更大的规模、复杂拓扑结构和更深网络层数的方向发展。深度神经网络通过模拟人类大脑复杂的神经元连接结构来进行多任务场景的信号处理。传统的计算平台由于通用性的设计架构,在深度神经网络计算加速运算上,不仅运算速度慢而且功耗也很大,其功能并不完全适用于大规模的深度神经网络模型训练以及部署。因此,大量的研究人员开始设计针对深度神经网络计算加速的专用加速器硬件,以获得更优的加速性能以及能效。
目前大量的神经网络加速研究针对现场可编程逻辑门阵列(FPGA)可动态编程的特点,设计基于FPGA的各类专用神经网络加速器。但是随着深度神经网络模型计算量的不断增加,资源利用率有限的FPGA并不能有效满足计算密集的加速需求。FPGA虽然在能耗效率方面优于传统的计算平台,但是在边缘智能设备或者可穿戴移动智能设备的应用中它并不能达到目前优先的水平,在未来的人工智能高速发展的阶段也不适合普及。
深度神经网络算法模型由大规模矩阵运算与非线性激活函数计算组成,在算法离线推理和在线学习过程中,激活函数与其函数导数运算作为模型中不可或缺的计算部分。因此在神经网络在线学习加速硬件的实现中,激活函数与其函数导数的实现消耗大量的面积和功耗,但是目前的研究暂时无法在激活函数实现精度、资源消耗和能耗效率之间取得较好的折中关系。
发明内容
基于现有技术存在的问题和不足,本申请提供了一种面向神经网络在线学习的激活函数加速处理单元,是一种专用集成电路(ASIC),该芯片在同等的芯片逻辑资源下,相较于传统计算平台和FPGA降低了功耗和成本,并且提升了神经网络在线学习加速计算的性能,并且相对于一般的ASIC,本发明由于其可编程性、多类别激活函数及其导数计算以及多数据精度支持,更具有灵活性。该ASIC的实现解决现有神经网络在线学习加速硬件存在的面积、功耗与算力等不足的问题,使得高能效低成本的神经网络在线学习芯片成为可能。
具体技术方案如下:
一种面向神经网络在线学习的激活函数加速处理单元,包括数据预处理模块、激活函数计算模块和运算控制器,其特征在于:
所述数据预处理模块包括符号位检测模块和数据解码模块,所述数据预处理模块用于接收输入运算数据,并将接收的输入运算数据解析为激活函数模块所能处理的数据格式,并输出至激活函数计算模块,其中,符号位检测模块用于检测输入运算数据的符号,所述数据解码模块用于对数据的运算数据进行解码;
所述激活函数计算模块用于接收数据预处理模块输出的运算数据并完成激活函数计算,包括输入区间划分模块、可配置一阶导系数LUT模块、移位相加模块、多路复用器、减法器、加法器、乘法器、多路数据选择器;
所述输入区间划分模块,用于接收数据预处理模块输出的运算数据并在运算控制器的控制下进行数据区间识别,输出可配置一阶导系数LUT模块的地址和运算数据的绝对值;
所述可配置一阶导系数LUT模块,用于根据输入区间划分模块输入的地址及数据,并针对不同类型激活函数的计算需求,在运算控制器的控制下动态配置并输出相对应的激活函数一阶导系数;
所述移位相加模块,用于接收可配置一阶导系数LUT模块输出一阶导数系数,在运算控制器的控制下对输入区间划分模块输出的数据进行移位相加运算;
所述多路复用器,用于根据输入数据的符号位,并在运算控制器的控制下将移位相加模块的计算结果并结合符号位状态选择输入至加法器、减法器或多路数据选择器完成激活函数及激活函数导数运算;
所述减法器,用于接收多路数据选择器的输出数据,并在运算控制器的控制下完成有符号减法运算,并将运算的结果输出至乘法器和多路复用器完成激活函数导数运算;
所述加法器,用于接收多路数据选择器的输出数据,并在运算控制器的控制下完成加法运算,并将运算的结果输出至乘法器完成激活函数导数运算;
所述乘法器,用于接收来自减法器和加法器的输出,并在运算控制器的控制下完成激活函数导数运算,并将运算的结果输出至多路复用器;
所述多路数据选择器,用于根据运算运算控制器选择的工作模式选择对应的运算结果数据作为激活函数计算单元的计算结果数据进行输出;
所述运算控制器用于对数据预处理模块在根据神经网络算法所需的不同的激活函数的精度要求及导数系数进行预处理时进行参数配置及运算数据流调度,还用于对所述激活函数计算模块的工作模式及计算过程进行配置或控制,以使数据经过数据预处理模块处理后根据数据的类型进行不同的激活函数计算及计算结果的输出;
其中,所述的激活函数加速处理单元可组成M×N×C的三维激活函数计算阵列,以支持不同的神经网络多通道并行计算需求,其中,M、N、C均≥2。
进一步地,所述的数据预处理模块、激活函数计算模块和运算控制器通过总线挂载集成在芯片的总线上。
进一步地,所述激活函加速处理单元包括可同时处理神经网络中ReLU、LeakyReLU、PReLU、EReLU、Sigmoid和Tanh激活函数及其导数。
进一步地,所述激活函数加速处理单元可用于处理多个数据精度的浮点数和定点数激活函数及其导数运算,数据精度为floating32、floating16、int16和int8。
进一步地,所述激活函数加速处理单元所用的硬件资源复用,浮点的乘法、加法和减法运算复用定点的乘法器、加法器和减法器。
有益效果:本发明的加速处理单元在同等的芯片面积下,相较于传统计算平台或FPGA,降低了功耗,提升了神经网络在线学习加速计算的性能;
并且,本计算单元可集成M×N×C个AFU三维计算单元矩阵,各个AFU的运算精度以及激活函数类型可独立配置,所有AFU之间的计算相互并行,以支持不同规模的神经网络多通道并行计算在线学习算法;
另外,本发明加速处理单元和/或阵列可集成挂载在芯片上,实现逻辑简单,激活函数类型以及激活函数实现精度可编程,使芯片更具备小型化和灵活通用性,使得大规模、低功耗、高性能与高效率的神经网络在线学习加速芯片的实现成为可能。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的加速处理单元结构框图;
图2为本发明的Sigmoid非线性激活函数分段线性拟合示意图;
图3为本发明的加速处理阵列结构框图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本发明,所属领域的技术人员应了解,本文中所描述的单元、系统、方法及芯片可独立地实施,且可以各种方式组合两者或两者以上。举例来说,可使用本文中所阐述的任何数目个内容来实施设备及/或实践方法。另外,可使用除了本文中所阐述的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述单元、系统、方法及芯片。
本实施例提供了一种面向神经网络在线学习的激活函数加速处理单元(简称AFU),可应用于边缘智能加速芯片设计中,参见图1,包括:
数据预处理模块,所述数据预处理模块用于接收输入运算数据,并将接收的输入运算数据解析为激活函数模块所能处理的数据格式,并输出至激活函数计算模块,所述数据预处理模块负责接收激活函数计算所需的输入数据并进行预处理,支持USB、PCIE、MIPI、SPI、UART、I2C、LCD、BT1120、BT656等接口。
激活函数计算模块,所述激活函数计算模块用于接收数据预处理模块输出的运算数据并进行激活函数计算,支持ReLU、LeakyReLU、PReLU、EReLU、Sigmoid、Tanh等激活函数及其导数运算。
运算控制器,所述运算控制器用于对数据预处理模块在根据神经网络算法所需的不同的激活函数的精度要求及导数系数进行预处理时进行参数配置及运算数据流调度,还用于对所述激活函数计算模块的工作模式及计算过程进行配置或控制,以使数据经过数据预处理模块处理后可以根据数据的类型进行不同的激活函数计算及计算结果的输出。
其中,所述数据预处理模块包括符号位检测模块和数据解码模块,接受的数据格式为n bit定点数或n bit浮点数,数据预处理模块负责将输入运算数据解析为激活函数模块所处理的数据格式,并输出至激活函数计算模块。
在具体实施时,所述符号位检测模块,用于对输入的运算数据进行符号位检测,以便根据不同的符号位的运算数据进行不同处理,这是由于符号位表示数据正负情况,默认只有1bit,0表示正数,1表示负数,本实施例中符号位检测是数据预处理模块的一部分,检测的对象既包括浮点数也包括定点数,而在芯片电路实现过程中,负数是以补码的格式出现,而正数是原码,所以正负数需要不同的处理,为了芯片电路实现的简单,浮点数与定点数符号位采用的解析方法一致,均为解析输入数据的最高位,只是针对数据的不同位宽(32bit,16bit,8bit)符号位检测的相对位置不同。
所述数据解码模块,用于根据所述运算控制器配置的神经网络算法中所需的不同激活函数的运算精度及导数系数对所述符号位检测模块检测出的不同的符号位的运算数据进行数据解码。
综上,所述数据预处理模块可以根据运算控制器的配置动态支持神经网络算法中不同精度的激活函数及其导数运算,比如:
floating32、floating16、int16、int8等数据精度,其中,运算控制器的配置包括输入数据类型配置(浮点数,定点数)和输入数据精度配置(32bit,16bit,8bit),其中,输入数据精度配置是根据神经网络算法所需的不同的激活函数的精度要求来解码输入定点或浮点数据。
还需要说明的是,因为浮点数与定点数的解码方式不同,数据预处理模块在数据流的调度时数据流的控制方式也不同,而输入数据解码调度就是控制输入数据预处理模块对不同的输入数据格式进行解码。
本实施例的所述激活函数计算模块包括可配置一阶导系数LUT模块、输入区间划分模块、移位相加模块、多路数据选择器(简称MUX)、减法器、加法器和多路复用器(简称DMUX)。
具体地,所述激活函数计算模块支持的激活函数表达式如下所示:
ReLU(x)=max(x,0);
LeakyReLU(x)=max(x-x/k);
PReLU(x)=max(x,-kx);
EReLU(x)=max(x,k×(ex-1));
所述可配置一阶导系数LUT模块,用于根据输入区间划分模块输入的地址及数据,并针对不同类型激活函数的计算需求,在运算控制器的控制下动态配置并输出相对应的激活函数一阶导系数(K,B),其中,K为一元线性函数斜率系数,B为一元线性函数截距系数,其中,K为2的次幂,可配置一阶导系数LUT支持On-chip SRAM、Register Files、eFlash等存储介质。
具体地,例如所需实现激活函数及其导数分别为f(x)、f’(x),输入运算数据区间为(xi,xi+1),近似的Ki、Bi系数可由下列公式计算得出:
Ki=f′{(xi+1+xi)/2}
Bi=f{(xi+1+xi)/2}-Ki×(xi+1+xi)/2
具体地,所述支持的非线性激活函数(EReLU、Sigmoid、Tanh)计算采用分段线性拟合方法,每个输入区间段(xi,xi+1)由一个一元线性函数表示,其中Ki和Bi为第i个输入区间段的一元线性函数的斜率和截距,图2所示Sigmoid函数分段线性拟合计算过程。
根据激活函数及其导数计算精度的需求,可以对可配置一阶导系数LUT所存储的K系数可进行再次量化,K系数量化为误差最小的2的n次幂,此时输入运算数据区间(xi,xi+1)的激活函数值可表示为:
Ki=f′{(xi+1+xi)/2}×2n
Bi=f{(xi+1+xi)/2}2n-Ki×(xi+1+xi)/2
f(xi≤X<xi+1)=(|X|<<log2Ki)+Bi。
所述输入区间划分模块用于接收数据预处理模块输出的运算数据并在运算控制器的控制下进行数据区间识别,输出可配置一阶导系数LUT模块的地址和运算数据的绝对值,其中,输入区间范围为[-16,16],输入区间划分的粒度可根据激活函数及其导数所实现的精度进行动态配置。
所述移位相加模块,用于接收可配置一阶导系数LUT模块输出的K、B系数,对来自输入区间划分模块的|X|进行移位相加运算
(|X|<<log2K)+B,并将移位相加运算结果输出至多路数据选择器。
所述多路数据选择器,根据输入数据的符号位,并在运算控制器的控制下将移位相加模块的计算结果选择连接到对应的计算单元模块完成激活函数及激活函数导数运算。
所述减法器,接收来自多路数据选择器的输出,在运算控制器的控制下完成α-[(|X|<<log2K)+B]运算,并将运算的结果输出至乘法器和多路复用器完成激活函数导数运算,其中,α为可配置参数,取值范围为{0,1}。
具体地,当α=0时,所述减法器可应用于
ReLU、LeakyReLU、PReLU、EReLU、Tanh等激活函数运算,当α=1时,所述减法器可应用于Sigmoid激活函数运算以及Sigmoid、Tanh激活函数导数运算。
所述加法器用于接收来自多路数据选择器的输出,在运算控制器的控制下完成β+[(|X|<<log2K)+B]运算,并将运算的结果输出至乘法器完成激活函数导数运算,其中,β为可配置参数,取值范围为{0,1}。
具体地,当β=0时所述加法器可应用于Sigmoid激活函数导数运算,β=1时所述加法器可应用于Tanh激活函数导数运算。
所述乘法器,接收来自减法器和加法器的输出,并在运算控制器的控制下完成激活函数导数运算
(α-[(|X|<<log2 K)+B])×(β+[(|X|<<log2 K)+B]),并将运算的结果输出至多路复用器。
所述多路复用器,用于根据运算运算控制器选择的工作模式选择对应的运算结果数据作为激活函数计算单元的计算结果数据进行输出。
另外,还需要说明的是,所述运算控制器负责计算参数配置、运算数据流调度与工作模式配置,所述运算控制器可以挂载在外围总线上,如AMBA的APB总线等,外部可以通过总线配置运算控制器。作用已在模块的数据处理过程中得体现,在此不再赘述。
另外,如图3所示,本实施例还提供了一种面向神经网络在线学习的激活函数加速处理阵列,所述系统包括M×N×C个所述的计算单元AFU组成的三维处理阵列。其中,M、N、C均≥2,各个AFU的运算精度以及激活函数类型可独立配置,所有AFU之间的计算相互并行,以支持不同规模的神经网络多通道并行计算在线学习算法。
需要补充说明的是,所述的数据预处理模块、激活函数计算模块和运算控制器通过总线挂载集成在芯片的总线上。
所述激活函加速处理单元包括可同时处理神经网络中ReLU、LeakyReLU、PReLU、EReLU、Sigmoid和Tanh激活函数及其导数,所述激活函数加速处理模块可以挂载在片内的总线上,如AMBA的AXI、AHB等总线协议,提高数据传输效率,优化结构。
另外,所述激活函数加速处理单元可用于处理多个数据精度的浮点数和定点数激活函数及其导数运算,数据精度为floating32、floating16、int16和int8。
所述激活函数加速处理单元所用的硬件资源复用,浮点的乘法、加法和减法运算复用定点的乘法器、加法器和减法器。例如,激活函数加速处理模块所用硬件资源复用,浮点的乘法运算复用定点乘法器,浮点的加法运算复用定点加法器,浮点的减法运算复用定点减法器。
本实施例的运算控制器在芯片实现中采用的是状态机(FSM)进行系统控制,但不限于此,采用状态机时,运算控制器根据Mode端口的输入信号进行工作模式配置,具体配置如下
激活函数配置对应关系:
Mode[2:0]=3`b000:ReLU;
Mode[2:0]=3`b001:LeakyReLU;
Mode[2:0]=3`b010:PReLU;
Mode[2:0]=3`b011:EReLU;
Mode[2:0]=3`b100:Sigmoid;
Mode[2:0]=3`b101:Tanh;
Mode[2:0]=3`b111:保留。
数据精度对应关系:
Mode[4:3]=2`b00:float32;
Mode[4:3]=2`b01:float16;
Mode[4:3]=2`b10:int16;
Mode[4:3]=2`b10:int8。
激活函数运算或激活函数导数运算配置:
Mode[5]=1`b0:激活函数运算;
Mode[5]=1`b1:激活函数导数运算。
另外,还需要说明的是,Mode[2:0]表示Mode信号的第0bit至第2bit,Mode[4:3]表示Mode信号的第3bit至第4bit,Mode[5]表示Mode信号的第5bit。
综上,本发明通过硬件可编程技术来支持神经网络算法中不同的激活函数计算,满足不同算法以及不同数据精度的需求,还对神经网络激活函数计算单元进行硬件加速设计,在整体设计中加入乒乓逻辑设计和硬件流水线设计,极大的提升数据吞吐率与计算速度,且重点优化神经网络激活函数计算单元的乘法器、加法器和减法器,提升硬件资源的复用,极大减少硬件逻辑资源;同时支持M×N×C个激活函数计算单元组成的三维激活函数计算阵列,满足不同的神经网络多通道并行计算需求。本发明的激活函数加速处理单元相较于传统计算平台或FPGA,降低了功耗,减少了硬件资源,提升了神经网络在线学习加速计算的性能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (5)
1.一种面向神经网络在线学习的激活函数加速处理单元,包括数据预处理模块、激活函数计算模块和运算控制器,其特征在于:
所述数据预处理模块包括符号位检测模块和数据解码模块,所述数据预处理模块用于接收输入运算数据,并将接收的输入运算数据解析为激活函数模块所能处理的数据格式,并输出至激活函数计算模块,其中,符号位检测模块用于检测输入运算数据的符号,所述数据解码模块用于对数据的运算数据进行解码;
所述激活函数计算模块用于接收数据预处理模块输出的运算数据并完成激活函数计算,包括输入区间划分模块、可配置一阶导系数LUT模块、移位相加模块、多路复用器、减法器、加法器、乘法器、多路数据选择器;
所述输入区间划分模块,用于接收数据预处理模块输出的运算数据并在运算控制器的控制下进行数据区间识别,输出可配置一阶导系数LUT模块的地址和运算数据的绝对值;
所述可配置一阶导系数LUT模块,用于根据输入区间划分模块输入的地址及数据,并针对不同类型激活函数的计算需求,在运算控制器的控制下动态配置并输出相对应的激活函数一阶导系数;
所述移位相加模块,用于接收可配置一阶导系数LUT模块输出一阶导数系数,在运算控制器的控制下对输入区间划分模块输出的数据进行移位相加运算;
所述多路复用器,用于根据输入数据的符号位,并在运算控制器的控制下将移位相加模块的计算结果并结合符号位状态选择输入至加法器、减法器或多路数据选择器完成激活函数及激活函数导数运算;
所述减法器,用于接收多路数据选择器的输出数据,并在运算控制器的控制下完成有符号减法运算,并将运算的结果输出至乘法器和多路复用器完成激活函数导数运算;
所述加法器,用于接收多路数据选择器的输出数据,并在运算控制器的控制下完成加法运算,并将运算的结果输出至乘法器完成激活函数导数运算;
所述乘法器,用于接收来自减法器和加法器的输出,并在运算控制器的控制下完成激活函数导数运算,并将运算的结果输出至多路复用器;
所述多路数据选择器,用于根据运算运算控制器选择的工作模式选择对应的运算结果数据作为激活函数计算单元的计算结果数据进行输出;
所述运算控制器用于对数据预处理模块在根据神经网络算法所需的不同的激活函数的精度要求及导数系数进行预处理时进行参数配置及运算数据流调度,还用于对所述激活函数计算模块的工作模式及计算过程进行配置或控制,以使数据经过数据预处理模块处理后根据数据的类型进行不同的激活函数计算及计算结果的输出;
其中,所述的激活函数加速处理单元可组成M×N×C的三维激活函数计算阵列,以支持不同的神经网络多通道并行计算需求,其中,M、N、C均≥2。
2.如权利要求1所述的面向神经网络在线学习的激活函数加速处理单元,其特征在于:所述的数据预处理模块、激活函数计算模块和运算控制器通过总线挂载集成在芯片的总线上。
3.如权利要求1所述的面向神经网络在线学习的激活函数加速处理单元,其特征在于:所述激活函加速处理单元包括可同时处理神经网络中ReLU、LeakyReLU、PReLU、EReLU、Sigmoid和Tanh激活函数及其导数。
4.如权利要求1所述的面向神经网络在线学习的激活函数加速处理单元,其特征在于:所述激活函数加速处理单元可用于处理多个数据精度的浮点数和定点数激活函数及其导数运算,数据精度为floating32、floating16、int16和int8。
5.如权利要求1所述的面向神经网络在线学习的激活函数加速处理单元,其特征在于:所述激活函数加速处理单元所用的硬件资源复用,浮点的乘法、加法和减法运算复用定点的乘法器、加法器和减法器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336615.8A CN113935480B (zh) | 2021-11-12 | 2021-11-12 | 面向神经网络在线学习的激活函数加速处理单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336615.8A CN113935480B (zh) | 2021-11-12 | 2021-11-12 | 面向神经网络在线学习的激活函数加速处理单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113935480A true CN113935480A (zh) | 2022-01-14 |
CN113935480B CN113935480B (zh) | 2022-10-18 |
Family
ID=79286400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336615.8A Active CN113935480B (zh) | 2021-11-12 | 2021-11-12 | 面向神经网络在线学习的激活函数加速处理单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935480B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117330315A (zh) * | 2023-12-01 | 2024-01-02 | 智能制造龙城实验室 | 一种基于在线迁移学习的旋转机械故障监测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5796925A (en) * | 1991-12-11 | 1998-08-18 | U.S. Philips Corporation | Neural digital processor utilizing an approximation of a non-linear activation function |
US20180373977A1 (en) * | 2015-12-21 | 2018-12-27 | Commissariat a l'énergie atomique et aux énergies alternatives | Optimized neuron circuit, and architecture and method for executing neural networks |
US20190147323A1 (en) * | 2017-11-03 | 2019-05-16 | Imagination Technologies Limited | Activation Functions for Deep Neural Networks |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
CN112651496A (zh) * | 2020-12-30 | 2021-04-13 | 深圳大普微电子科技有限公司 | 一种处理激活函数的硬件电路及芯片 |
-
2021
- 2021-11-12 CN CN202111336615.8A patent/CN113935480B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5796925A (en) * | 1991-12-11 | 1998-08-18 | U.S. Philips Corporation | Neural digital processor utilizing an approximation of a non-linear activation function |
US20180373977A1 (en) * | 2015-12-21 | 2018-12-27 | Commissariat a l'énergie atomique et aux énergies alternatives | Optimized neuron circuit, and architecture and method for executing neural networks |
US20190147323A1 (en) * | 2017-11-03 | 2019-05-16 | Imagination Technologies Limited | Activation Functions for Deep Neural Networks |
CN110610235A (zh) * | 2019-08-22 | 2019-12-24 | 北京时代民芯科技有限公司 | 一种神经网络激活函数计算电路 |
CN112651496A (zh) * | 2020-12-30 | 2021-04-13 | 深圳大普微电子科技有限公司 | 一种处理激活函数的硬件电路及芯片 |
Non-Patent Citations (3)
Title |
---|
张智明等: "神经网络激活函数及其导数的FPGA实现", 《现代电子技术》 * |
肖皓等: "面向卷积神经网络的FPGA硬件加速器设计", 《工业控制计算机》 * |
苏潮阳等: "一种神经网络的可配置激活函数模块设计", 《单片机与嵌入式系统应用》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117330315A (zh) * | 2023-12-01 | 2024-01-02 | 智能制造龙城实验室 | 一种基于在线迁移学习的旋转机械故障监测方法 |
CN117330315B (zh) * | 2023-12-01 | 2024-02-23 | 智能制造龙城实验室 | 一种基于在线迁移学习的旋转机械故障监测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113935480B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110084361B (zh) | 一种运算装置和方法 | |
US20210349692A1 (en) | Multiplier and multiplication method | |
CN114868108A (zh) | 组合多个整数和浮点数据类型的脉动阵列部件 | |
CN1235160C (zh) | 在专用信号处理器中用于饱和乘法和累加的方法和装置 | |
CN110163016B (zh) | 混合计算系统和混合计算方法 | |
US11880759B2 (en) | Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks | |
CN113935480B (zh) | 面向神经网络在线学习的激活函数加速处理单元 | |
CN111857650B (zh) | 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 | |
CN110705703A (zh) | 基于脉动阵列的稀疏神经网络处理器 | |
EP3782019B1 (en) | Multi-input floating-point adder | |
EP4109236A1 (en) | Area and energy efficient multi-precision multiply-accumulate unit-based processor | |
CN111507465A (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN107783935B (zh) | 基于动态精度可配运算的近似计算可重构阵列 | |
CN111930681B (zh) | 一种计算装置及相关产品 | |
CN111079908A (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
CN111383157A (zh) | 图像处理方法、装置、车载运算平台、电子设备及系统 | |
CN110458277B (zh) | 适用于深度学习硬件加速器的可配置精度的卷积硬件结构 | |
JPH0567060A (ja) | ニユーロデバイス | |
CN212569855U (zh) | 一种激活函数的硬件实现装置 | |
EP4285215A1 (en) | Digital circuitry for normalization functions | |
CN111860792A (zh) | 一种激活函数的硬件实现装置和方法 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078623B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111078624B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN113592067B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230803 Address after: 1995 Jimei Avenue, Jimei District, Xiamen City, Fujian Province, 361024 Patentee after: Digital Blue Shield (Xiamen) Information Technology Co.,Ltd. Address before: 610095 No. 704, floor 7, building 1, No. 1800, middle section of Yizhou Avenue, high tech Zone, Chengdu, Sichuan Patentee before: CHENGDU ZHENSHI TECHNOLOGY CO.,LTD. |
|
TR01 | Transfer of patent right |