CN111144556B - 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 - Google Patents
面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 Download PDFInfo
- Publication number
- CN111144556B CN111144556B CN201911410996.2A CN201911410996A CN111144556B CN 111144556 B CN111144556 B CN 111144556B CN 201911410996 A CN201911410996 A CN 201911410996A CN 111144556 B CN111144556 B CN 111144556B
- Authority
- CN
- China
- Prior art keywords
- module
- register
- input
- result
- calculation
- 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.)
- Active
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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,包括权值缓冲器,用于存储深度神经网络当中的权值数据;输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能。本发明设计了一个高效的卷积神经网络训练体系结构,其核心计算单元是脉动阵列,脉动阵列当中的计算单元支持卷积神经网络训练算法中的前向传播和反向传播当中的批处理归一化层的操作,能实现范围批处理归一化算法的硬件加速,具有实现高效的优点。
Description
技术领域
本发明涉及深度神经网络训练的硬件加速器,具体涉及一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路。
背景技术
近几年,卷积神经网络在语音、图像识别(包括人脸、常规物体)以及自然语言处理等方面均获创新发展。卷积神经网络囊括卷积层、池化层、激活层和全相连层。其中,卷积层担负着特征的抽象和提取的任务;池化层中的池化操作紧接卷积运算,它的作用是特征融合和降低复杂度;激活函数在卷积层和全相连层进行操作,卷积神经网络中通常运用线性整流函数等多段线性函数来激活,它的作用是提升非线性性;全连接层则负责逻辑推断和去除空间信息。
反向传播算法是一种神经网络学习算法,主要思想是通过不断将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐含层反向直至输入层。在反传过程中计算每层的每个神经元的误差并调整各层神经元的权值和阈值,逐渐降低误差至最低。反向传播算法分为前向传播和误差的反向传播两个过程。前向传播时,输入样本从输入层传入,经隐含层的处理,传向输出层。若输出层的实际输出与期望输出误差较大,则转入误差的反向传播过程。如图1所示,误差反传将输出误差以某种形式通过隐含层向输入层逐层反传,并将误差分摊到各层的神经元,从而获得各层神经元的误差信号,并将该误差信号作为修正各神经元权值的依据。通过周而复始的权值调整过程,直到网络输出的误差减小到可接受程度,或达到预先设定的学习次数,终止过程。
卷积神经网络近年来得到了广泛的应用。然而,它们不断增长的参数量使得用图形处理单元(Graph Processing Unit,简称GPU)对它们进行训练变得高耗能、高耗时,阻碍了其发展。这使得研究者们把注意力转向了使用更加高能效的硬件对卷积神经网络进行训练。
批处理归一化(Batch Normalization,简称BN)层已经被广泛地使用于最先进的卷积神经网络当中,因为它是加速卷积神经网络训练的一个不可或缺的层。批处理归一化(Batch Normalization,简称BN)算法通过批处理归一化解决了神经网络内部的协变量位移问题。即解决了由于大量累加过程导致的神经网络训练的反向传播中的梯度爆炸和梯度消失问题。其原理是计算出所有值的均值和平方差,从而对其进行归一化操作,使之满足(0,1)正态分布。之后通过两个调整参数γ和β,适当调整其分布,步骤描述如下:
输入:批当中的x的值β={x1…xm};γ和β是需要训练的参数。
输出:{yi=BN(xi)}
步骤:
1、计算小批的值的均值μ:
上式中,m代表小批(mini batch),x代表小批中的每个累加和的值。
2、计算批的标准差σ:
上式中,m代表小批(mini batch),x代表小批中的每个累加和的值,μ代表步骤1中的批的值的均值。
3、计算归一化后的值,使之满足(0,1)正态分布:
上式中,x代表小批中的每个累加和的值,μ代表步骤1中的批的值的均值,σ代表步骤2中计算得到的批的标准差,ε代表一个常数,它确保当标准差为0时,上式分母不为0。
4、使用调整参数适当调整输出,使之符合所学习的数据集的分布:
上式中,y代表调整过的输出,x代表调整前的批中的累加和的值,γ和β代表调整参数。
范围批处理归一化算法是对批处理归一化算法的改进。范围批处理归一化算法改进了BN算法如下:
其中,公式(5)对应公式(3),分子与公式(3)相同,分母使用C(n)*range(xi-μ)来近似标准差。这就是范围批处理归一化相较于批处理归一化的核心改进。其中C(n)是与批次大小相关的一个数,即C(n)=2*(lnN)1/2,N是批次大小。而range(xi-μ)则代表了x的分布范围,即一个批次中的x最大值减去x最小值。这个改进简化了计算,使得计算标准差所需的一系列操作都可以被省去,节省了能耗,降低了延迟。
随着卷积神经网络中卷积层的计算量占比下降,批处理归一化层的计算重要性逐步上升。然而,传统的卷积神经网络训练加速器没有关注批处理归一化层的高效实现。在已有的工作当中,批处理归一化层的操作是交由软件进行执行的,存在执行效率低的问题。
发明内容
本发明要解决的技术问题:针对批处理归一化层目前没有高效硬件实现这一现状,本发明提供一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,本发明设计了一个高效的卷积神经网络训练体系结构,其核心计算单元是脉动阵列,脉动阵列当中的计算单元支持卷积神经网络训练算法中的前向传播和反向传播当中的批处理归一化层的操作,能实现范围批处理归一化算法的硬件加速,具有实现高效的优点。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,包括:
权值缓冲器,用于存储深度神经网络当中的权值数据;
输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;
脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能;
所述权值缓冲器、输入/结果缓冲器分别与脉动阵列相连。
可选地,所述处理单元包括:
乘法和累加模块,用于对输入特征图input_in和输入权值w_in执行乘法和累加操作,并将输入特征图input_in作为信号input_out、输入权值w_in作为信号w_out传递给临近的处理单元使用,将累加的计算结果通过信号result_out输出;
批处理归一化模块,用于对输出结果信号result_out执行批处理归一化操作;
第一多路选择器,用于在使能信号BN的控制下选择输出输出结果信号result_out或者批处理归一化模块的输出信号,所述乘法和累加模块的以及批处理归一化模块分别与第一多路选择器的输入端相连。
可选地,所述乘法和累加模块包括判断子模块、输入寄存器、权值寄存器、乘法模块、累加模块以及结果寄存器,所述判断子模块对输入特征图input_in和输入权值w_in进行是否为0的判断,如果输入特征图input_in或输入权值w_in均非0则将输入特征图input_in和输入权值w_in通过输入寄存器、权值寄存器输入乘法模块进行乘法操作后再输入累加模块,否则跳过乘法操作直接输入累加模块;所述累加模块将乘法模块输出结果或者0和上一个处理单元输出的结果输入result_in进行和相加后放入结果寄存器当中,同时输入特征图input_in作为输出特征图input_out、输入权值w_in作为输出权值w_out传递至下一级处理单元,当累加过程结束后放入结果寄存器当中的计算结果x通过result_out信号传递至下一级处理单元。
可选地,所述批处理归一化模块包括:
第一模块,包括最大值比较模块、最大值寄存器、最小值比较模块、最小值寄存器、累加模块、部分和寄存器和结果存储器x-ram,所述最大值比较模块将输入的计算结果x和最大值寄存器的值进行比较且在计算结果x大于最大值寄存器中的值时将计算结果x更新最大值寄存器,所述最小值比较模块将输入的计算结果x和最小值寄存器的值进行比较且在计算结果x小于最小值寄存器中的值时将计算结果x更新最小值寄存器,累加模块将输入的计算结果x累加到部分和寄存器,且计算结果x直接进入结果存储器x-ram被存储;
第二模块,包括标准差计算模块、标准差近似值寄存器、标准差寄存器、方差计算模块、方差寄存器、均值计算模块、均值寄存器,所述标准差计算模块将最大值寄存器中存储的最大值减去最小值寄存器中存储的最小值得到这批计算结果x的数值范围,并将其乘以存于标准差近似值寄存器当中的常数C(n)得到该批计算结果x的标准差并存储在标准差寄存器中;所述方差计算模块将标准差寄存器中缓存的标准差进行平方操作以后得到了方差存于方差寄存器当中;所述均值计算模块将部分和寄存器中存储的累加总和除以批的数量大小得到了该批计算结果x的平均值μ并存于均值寄存器;
第三模块,包括全局均值计算模块、全局均值寄存器、全局方差计算模块、全局方差寄存器,所述全局均值计算模块根据指数平均公式将均值寄存器中的均值更新全局均值寄存器中存储的全局均值,所述全局方差计算模块根据指数平均公式将方差寄存器中的方差更新全局方差寄存器中存储的全局方差;
第四模块,包括训练归一化操作模块、推理归一化操作模块以及第二多路选择器,所述训练归一化操作模块将计算结果x从结果存储器x-ram中读出并根据参数γ和β执行操作x=(x-μ)/σ和y=γ*x+β,其中μ为计算结果x的均值,其中σ为方差,参数γ和β初始化为1和0且在训练当中所述参数更新模块会通过信号gamma_update和beta_update输入更新;所述推理归一化操作模块将计算结果x从结果存储器x-ram中读出并执行操作y=a*x+b,其中a=γ/σg,b=β-(γ-μg)/σg,其中μg为全局均值,σg为全局方差;所述第二多路选择器用于在模式选择信号控制下选择训练归一化操作模块、推理归一化操作模块两者之一输出至第一多路选择器,所述模式选择信号包括训练和推理两种模式。
此外,本发明还提供一种微处理器,包括微处理器本体,所述微处理器本体的基片上集成有前述面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路。
此外,本发明还提供一种计算机设备,包括计算机设备本体,其特征在于,所述计算机设备本体中设有前述的微处理器。
和现有技术相比,本发明具有下述优点:本发明能够解决卷积神经网络的高效训练问题,因为本发明支持卷积神经网络训练当中前向传播和反向传播中的批处理归一化层,使得该层的操作不需要再由软件执行,而是直接由硬件高效执行。除此之外,本发明采用脉动阵列的方式设计计算阵列,具有高并行度的特点。总体来讲,本发明能够很好的支持卷积神经网络的高速和高能效训练,为解决卷积神经网络训练中的耗时耗能问题提供了解决方案。
附图说明
图1为现有卷积神经网络的反向传播算法的流程图。
图2为本发明实施例硬件电路的原理结构示意图。
图3为本发明实施例中脉冲阵列和传统结构的对比示意图。
图4为本发明实施例中乘法和累加模块的结构示意图。
图5为本发明实施例批处理归一化模块中第一模块的结构示意图。
图6为本发明实施例批处理归一化模块中第二模块的结构示意图。
图7为本发明实施例批处理归一化模块中第三模块的结构示意图。
图8为本发明实施例批处理归一化模块中训练归一化操作模块的结构示意图。
图9为本发明实施例中批处理归一化模块的第四模块的结构示意图。
图10为本发明实施例批处理归一化模块中推理归一化操作模块的结构示意图。
图11为本发明实施例中双多路选择器的组合结构示意图。
图12为本发明实施例硬件电路的整个执行过程流程图。
具体实施方式
如图2所示,本实施例面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路包括:
权值缓冲器,用于存储深度神经网络当中的权值数据;
输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;
脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算(Multiply and Accumulation)以及批处理归一化(Batch Normalization)的功能;
权值缓冲器、输入/结果缓冲器分别与脉动阵列相连。
如图2所示,处理单元包括:
乘法和累加模块,用于对输入特征图input_in和输入权值w_in执行乘法和累加操作,并将输入特征图input_in作为信号input_out、输入权值w_in作为信号w_out传递给临近的处理单元使用,将累加的计算结果通过信号result_out输出;
批处理归一化模块,用于对输出结果信号result_out执行批处理归一化操作;
第一多路选择器,用于在使能信号BN的控制下选择输出输出结果信号result_out或者批处理归一化模块的输出信号,乘法和累加模块的以及批处理归一化模块分别与第一多路选择器的输入端相连。
本实施例中,脉动阵列是由多个同构的计算单元PE(Processing Element)构成一维串行结构或二维阵列结构;其不依赖于计算单元的复杂功能,而是在系统层面,通过配置大批简单计算单元的并行工作来提升计算性能;为了简化通信网络,其规定计算单元只能与邻近单元交换数据。输入数据使用流水方法由外部朝阵列内部“脉动”,直至从最后一个计算单元出去。这样设计的三个优点如下:(1)简单规整的设计:简单和规整是其重要设计原则。主要考虑实现成本的问题。鉴于一个专用系统的功能一般是具备针对性的,因而也导致了其局限性。克服这一劣势的最好方法就实简单规整的设计。通过设计合理结构来减少实现开销,是设计AISC的一个基本遵循。(2)并行和简单通信:实现高并行性是提升运算效率的最好方法,而简单通信保证了其设计的复杂度足够低。(3)优化了计算与I/O不平衡的问题:这是脉动阵列结构设计的最大优势所在。这一点在图2和图3中可以很好的看到。
如图2、图4和图12所示,乘法和累加模块包括判断子模块、输入寄存器、权值寄存器、乘法模块、累加模块以及结果寄存器,判断子模块对输入特征图input_in和输入权值w_in进行是否为0的判断,如果输入特征图input_in或输入权值w_in均非0则将输入特征图input_in和输入权值w_in通过输入寄存器、权值寄存器输入乘法模块进行乘法操作后再输入累加模块,否则跳过乘法操作直接输入累加模块;累加模块将乘法模块输出结果或者0和上一个处理单元输出的结果输入result_in进行和相加后放入结果寄存器当中,同时输入特征图input_in作为输出特征图input_out、输入权值w_in作为输出权值w_out传递至下一级处理单元,当累加过程结束后放入结果寄存器当中的计算结果x通过result_out信号传递至下一级处理单元。输入信号result_in是该处理单元用于接收来自下方的处理单元传递过来的结果,并将其通过result_out信号传递给上方的处理单元,以便结果数据能够从脉动阵列当中传出送给结果缓冲器。
参见图2和图4中序号①:对于每个计算单元,输入信号input_in和w_in分别是输入特征图和权值的输入,两者在经过一个是否为0的判断之后,作为操作数进行乘法操作。如果为0则跳过该次乘法操作;二者所得到的乘积与上一次乘法操作得到的部分和相加后放入结果寄存器当中。同时,输入特征图数据和权值通过input_out和w_out信号传递给临近的处理单元使用。当累加过程结束后,计算结果通过result_out信号传递出该处理单元。
如图2所示,本实施例中批处理归一化模块包括:
第一模块,如图5和图12所示,包括最大值比较模块、最大值寄存器、最小值比较模块、最小值寄存器、累加模块、部分和寄存器和结果存储器x-ram,最大值比较模块将输入的计算结果x和最大值寄存器的值进行比较且在计算结果x大于最大值寄存器中的值时将计算结果x更新最大值寄存器,最小值比较模块将输入的计算结果x和最小值寄存器的值进行比较且在计算结果x小于最小值寄存器中的值时将计算结果x更新最小值寄存器,累加模块将输入的计算结果x累加到部分和寄存器,且计算结果x直接进入结果存储器x-ram被存储;
第二模块,如图6和图12所示,包括标准差计算模块、标准差近似值寄存器、标准差寄存器、方差计算模块、方差寄存器、均值计算模块、均值寄存器,标准差计算模块将最大值寄存器中存储的最大值减去最小值寄存器中存储的最小值得到这批计算结果x的数值范围,并将其乘以存于标准差近似值寄存器当中的常数C(n)得到该批计算结果x的标准差并存储在标准差寄存器中;方差计算模块将标准差寄存器中缓存的标准差进行平方操作以后得到了方差存于方差寄存器当中;均值计算模块将部分和寄存器中存储的累加总和除以批的数量大小得到了该批计算结果x的平均值μ并存于均值寄存器;
第三模块,如图7和图12所示,包括全局均值计算模块、全局均值寄存器、全局方差计算模块、全局方差寄存器,全局均值计算模块根据指数平均公式将均值寄存器中的均值更新全局均值寄存器中存储的全局均值,全局方差计算模块根据指数平均公式将方差寄存器中的方差更新全局方差寄存器中存储的全局方差;
第四模块,包括训练归一化操作模块、推理归一化操作模块以及第二多路选择器,如图8、图9、图10和图12所示,训练归一化操作模块将计算结果x从结果存储器x-ram中读出并根据参数γ和β执行操作x=(x-μ)/σ和y=γ*x+β,其中μ为计算结果x的均值,其中σ为方差,参数γ和β初始化为1和0且在训练当中参数更新模块会通过信号gamma_update和beta_update输入更新;如图9和图10所示,推理归一化操作模块将计算结果x从结果存储器x-ram中读出并执行操作y=a*x+b,其中a=γ/σg,b=β-(γ-μg)/σg,其中μg为全局均值,σg为全局方差;如图11所示,第二多路选择器用于在模式选择信号控制下选择训练归一化操作模块、推理归一化操作模块两者之一输出至第一多路选择器,模式选择信号包括训练和推理两种模式。
参见图2和图5中的序号②:对于每个处理单元,如果需要执行批处理归一化功能,那么在乘法和累加操作过程结束后,其结果x传递给最大值最小值比较模块、累加模块和存储器。总共会有批的数量个x。最大值最小值比较模块和累加模块它们分别记录这些x当中的最大值、最小值以及总和。同时x会保存在结果存储器x-ram当中,以便后续使用。
参见图2和图6中的序号③:之后最大值与最小值相减得到这批x的数值范围,并将其乘以存于标准差近似值寄存器当中的常数C(n),得到了该批中x的标准差。并将标准差存于标准差寄存器当中。标准差进行平方操作以后得到了方差存于方差寄存器当中。与此同时,之前计算得到的总和除以批的数量大小,得到了该批x的平均值μ,存于均值寄存器。
参见图2和图7中的序号④:由于一个数据集当中包含多个批次,因此根据指数平均公式,之前得到的均值和方差用于更新全局的均值和全局的方差。
参见图2和图8中的序号⑤:之前存储的x被从结果存储器x-ram当中读取出来,与均值和标准差执行归一化操作。γ和β是反向传播训练过程结束后传入的两个参数,初始化为1和0。后续在训练当中会通过信号gamma_update和beta_update输入进行更新(对应图中序号⑧)。
参见图2和图9中的序号⑥和⑦。批处理归一化操作得到的结果经由两个多路选择器(第一多路选择器和第二多路选择器)选择之后通过result_out输出。其中模式选择信号代表工作模式,分别是0:训练,1:推理。BN使能信号代表是否执行批处理归一化功能,0代表不执行,仅仅执行乘法和累加功能,1代表执行批处理归一化功能。此过程模式选择为训练,功能选择为执行批处理归一化功能,对应图9中第二多路选择器上侧的通路。
图2和图9中的序号②③④训练和推理过程中的批处理归一化过程完全一致。从图2中序号⑤开始,推理中的批处理归一化过程,用全局的均值和全局的方差对数据进行归一化处理,具体如图10所示。
参见图2和图9中的序号⑥和⑦。数据x从x-ram当中读出,执行操作y=a*x+b,其中a=γ/全局标准差σg,b=β-(γ-全局均值μg)/全局标准差σg。批处理归一化操作得到的结果经由两个多路选择器选择之后通过result_out输出。此过程模式选择为推理,功能选择为执行批处理归一化功能,对应图9中第二多路选择器下侧的通路。
最终输出的计算结果会经过两个多路选择器(参见图11,其中上侧的为第一多路选择器,下侧的为第二多路选择器),这是由于该处理单元具备两种模式(训练和推理)以及两种功能(乘法和累加功能以及批处理归一化功能)。其中模式选择信号代表工作模式,分别是0:训练,1:推理。BN使能信号代表是否执行批处理归一化功能,0代表不执行,仅仅执行乘法和累加功能,1代表执行批处理归一化功能。此过程模式选择为训练或推理,功能选择为不执行批处理归一化功能,即图11中上侧的为第一多路选择器的通路。
此外,本实施例还提供一种微处理器,包括微处理器本体,该微处理器本体的基片上集成有前述面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路。此外,本实施例还提供一种计算机设备,包括计算机设备本体,该计算机设备本体中设有前述的微处理器。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于包括:
权值缓冲器,用于存储深度神经网络当中的权值数据;
输入/结果缓冲器,用于存储深度神经网络的输入特征图数据以及输出特征图数据;
脉动阵列,包含若干个处理单元,且所有处理单元构成一维串行结构或二维阵列结构,用于执行卷积运算当中的乘和累加运算以及批处理归一化的功能;
所述权值缓冲器、输入/结果缓冲器分别与脉动阵列相连;
所述处理单元包括:
乘法和累加模块,用于对输入特征图input_in和输入权值w_in执行乘法和累加操作,并将输入特征图input_in作为信号input_out、输入权值w_in作为信号w_out传递给临近的处理单元使用,将累加的计算结果通过信号result_out输出;
批处理归一化模块,用于对输出结果信号result_out执行批处理归一化操作;
第一多路选择器,用于在使能信号BN的控制下选择输出输出结果信号result_out或者批处理归一化模块的输出信号,所述乘法和累加模块的以及批处理归一化模块分别与第一多路选择器的输入端相连;
所述批处理归一化模块包括:
第一模块,包括最大值比较模块、最大值寄存器、最小值比较模块、最小值寄存器、累加模块、部分和寄存器和结果存储器x-ram,所述最大值比较模块将输入的计算结果x和最大值寄存器的值进行比较且在计算结果x大于最大值寄存器中的值时将计算结果x更新最大值寄存器,所述最小值比较模块将输入的计算结果x和最小值寄存器的值进行比较且在计算结果x小于最小值寄存器中的值时将计算结果x更新最小值寄存器,累加模块将输入的计算结果x累加到部分和寄存器,且计算结果x直接进入结果存储器x-ram被存储;
第二模块,包括标准差计算模块、标准差近似值寄存器、标准差寄存器、方差计算模块、方差寄存器、均值计算模块、均值寄存器,所述标准差计算模块将最大值寄存器中存储的最大值减去最小值寄存器中存储的最小值得到这批计算结果x的数值范围,并将其乘以存于标准差近似值寄存器当中的常数C(n)得到该批计算结果x的标准差并存储在标准差寄存器中;所述方差计算模块将标准差寄存器中缓存的标准差进行平方操作以后得到了方差存于方差寄存器当中;所述均值计算模块将部分和寄存器中存储的累加总和除以批的数量大小得到了该批计算结果x的平均值μ并存于均值寄存器;
第三模块,包括全局均值计算模块、全局均值寄存器、全局方差计算模块、全局方差寄存器,所述全局均值计算模块根据指数平均公式将均值寄存器中的均值更新全局均值寄存器中存储的全局均值,所述全局方差计算模块根据指数平均公式将方差寄存器中的方差更新全局方差寄存器中存储的全局方差;
第四模块,包括训练归一化操作模块、推理归一化操作模块以及第二多路选择器,所述训练归一化操作模块将计算结果x从结果存储器x-ram中读出并根据参数γ和β执行操作x=(x-μ)/σ和y=γ*x+β,其中μ为计算结果x的均值,其中σ为方差,参数γ和β初始化为1和0且在训练当中参数更新模块通过信号gamma_update和beta_update输入更新;所述推理归一化操作模块将计算结果x从结果存储器x-ram中读出并执行操作y=a*x+b,其中a=γ/σg,b=β-(γ-μg)/σg,其中μg为全局均值,σg为全局方差;所述第二多路选择器用于在模式选择信号控制下选择训练归一化操作模块、推理归一化操作模块两者之一输出至第一多路选择器,所述模式选择信号包括训练和推理两种模式。
2.根据权利要求1所述的面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路,其特征在于,所述乘法和累加模块包括判断子模块、输入寄存器、权值寄存器、乘法模块、累加模块以及结果寄存器,所述判断子模块对输入特征图input_in和输入权值w_in进行是否为0的判断,如果输入特征图input_in或输入权值w_in均非0则将输入特征图input_in和输入权值w_in通过输入寄存器、权值寄存器输入乘法模块进行乘法操作后再输入累加模块,否则跳过乘法操作直接输入累加模块;所述累加模块将乘法模块输出结果或者0和上一个处理单元输出的结果输入result_in进行和相加后放入结果寄存器当中,同时输入特征图input_in作为输出特征图input_out、输入权值w_in作为输出权值w_out传递至下一级处理单元,当累加过程结束后放入结果寄存器当中的计算结果x通过result_out信号传递至下一级处理单元。
3.一种微处理器,包括微处理器本体,其特征在于,所述微处理器本体的基片上集成有权利要求1或2所述面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路。
4.一种计算机设备,包括计算机设备本体,其特征在于,所述计算机设备本体中设有权利要求3所述的微处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911410996.2A CN111144556B (zh) | 2019-12-31 | 2019-12-31 | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911410996.2A CN111144556B (zh) | 2019-12-31 | 2019-12-31 | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111144556A CN111144556A (zh) | 2020-05-12 |
CN111144556B true CN111144556B (zh) | 2023-07-07 |
Family
ID=70522551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911410996.2A Active CN111144556B (zh) | 2019-12-31 | 2019-12-31 | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111144556B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783973B (zh) * | 2020-08-03 | 2023-12-08 | 中国人民解放军国防科技大学 | 一种面向液体状态机计算的神经形态处理器及设备 |
CN112734625B (zh) * | 2021-01-29 | 2022-06-07 | 成都视海芯图微电子有限公司 | 一种基于3d场景设计的硬件加速系统及方法 |
CN113988001B (zh) * | 2021-11-09 | 2022-12-16 | 中国电子科技集团公司第三十八研究所 | 一种深度学习模型中最大池化层运算电路装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2666308C1 (ru) * | 2015-01-28 | 2018-09-06 | Гугл Инк. | Слои пакетной нормализации |
CN106203617B (zh) * | 2016-06-27 | 2018-08-21 | 哈尔滨工业大学深圳研究生院 | 一种基于卷积神经网络的加速处理单元及阵列结构 |
US10380413B2 (en) * | 2017-07-13 | 2019-08-13 | Robert Bosch Gmbh | System and method for pose-invariant face alignment |
CN108958801B (zh) * | 2017-10-30 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行向量最大值指令的方法 |
CN110020249B (zh) * | 2017-12-28 | 2021-11-30 | 中国移动通信集团山东有限公司 | 一种url资源的缓存方法、装置及电子设备 |
US11151449B2 (en) * | 2018-01-24 | 2021-10-19 | International Business Machines Corporation | Adaptation of a trained neural network |
CN108229664B (zh) * | 2018-01-31 | 2021-04-30 | 北京市商汤科技开发有限公司 | 一种批规范化处理方法及装置、计算机设备 |
EP3651078B1 (en) * | 2018-02-13 | 2021-10-27 | Shanghai Cambricon Information Technology Co., Ltd | Computation device and method |
US11138502B2 (en) * | 2018-05-01 | 2021-10-05 | International Business Machines Corporation | Foiling neuromorphic hardware limitations by reciprocally scaling connection weights and input values to neurons of neural networks |
CN110390394B (zh) * | 2019-07-19 | 2021-11-05 | 深圳市商汤科技有限公司 | 批归一化数据的处理方法及装置、电子设备和存储介质 |
-
2019
- 2019-12-31 CN CN201911410996.2A patent/CN111144556B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111144556A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111144556B (zh) | 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路 | |
Liang et al. | FP-BNN: Binarized neural network on FPGA | |
US10891109B2 (en) | Arithmetic processor, arithmetic processing apparatus including arithmetic processor, information processing apparatus including arithmetic processing apparatus, and control method for arithmetic processing apparatus | |
Yuan et al. | High performance CNN accelerators based on hardware and algorithm co-optimization | |
JP7366274B2 (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
CN111898733B (zh) | 一种深度可分离卷积神经网络加速器架构 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
CN110009099A (zh) | 用于深度神经网络的硬件实现的误差分配格式选择 | |
CN109446996B (zh) | 基于fpga的人脸识别数据处理装置及处理方法 | |
EP3665621A1 (en) | Acceleration of neural networks using depth-first processing | |
US11727256B2 (en) | Hardware architecture for processing data in neural network | |
US20230135185A1 (en) | Pooling unit for deep learning acceleration | |
Kyriakos et al. | High performance accelerator for cnn applications | |
US11501151B2 (en) | Pipelined accumulator | |
CN111626412B (zh) | 复数神经网络的一维卷积加速装置及方法 | |
CN117501245A (zh) | 神经网络模型训练方法和装置、数据处理方法和装置 | |
CN114626516A (zh) | 一种基于对数块浮点量化的神经网络加速系统 | |
CN113807998A (zh) | 图像处理方法、目标检测装置、机器视觉设备和存储介质 | |
Yin et al. | Hardware-guided symbiotic training for compact, accurate, yet execution-efficient LSTM | |
CN113313252B (zh) | 一种基于脉动阵列的深度可分离卷积实现方法 | |
CN110716751B (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN112836793B (zh) | 浮点可分离卷积计算加速装置、系统以及图像处理方法 | |
WO2022105348A1 (zh) | 神经网络的训练方法和装置 | |
CN111967587A (zh) | 一种面向神经网络处理的运算单元阵列结构 | |
Shahan et al. | FPGA based convolution and memory architecture for Convolutional Neural Network |
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 |