运算装置及运算方法

文档序号:1957983 发布日期:2021-12-10 浏览:24次 >En<

阅读说明:本技术 运算装置及运算方法 (Arithmetic device and arithmetic method ) 是由 岸本真 小野豪一 北山晃 村田大智 于 2020-04-08 设计创作,主要内容包括:运算装置在构成神经网络的多个卷积层各方中利用卷积运算器来执行滤波器与所述滤波器的尺寸程度的对象数据的卷积运算,具有:比特削减部,其按每一所述卷积层从所述对象数据的最低有效位起削减第1比特数程度的位串,从所述滤波器的要素即权重的最低有效位起削减第2比特数程度的位串;以及比特追加部,其对通过将所述比特削减部削减后的所述对象数据及所述权重输入至所述卷积运算器而从所述卷积运算器输出的卷积运算结果的最低有效位追加所述第1比特数及所述第2比特数合计得到的第3比特数程度的位串。(The arithmetic device executes convolution operation of a filter and target data of a size degree of the filter by a convolution operator in each of a plurality of convolution layers constituting a neural network, and includes: a bit reduction unit that reduces a bit string of a bit number of about 1 from the least significant bit of the target data and reduces a bit string of a bit number of about 2 from the least significant bit of the weight, which is an element of the filter, for each convolutional layer; and a bit adding unit that adds a bit string of a 3 rd bit number obtained by summing the 1 st bit number and the 2 nd bit number to a least significant bit of a convolution operation result output from the convolution operator by inputting the target data and the weight reduced by the bit reducing unit to the convolution operator.)

运算装置及运算方法

基于参考的并入

本申请主张令和1年(2019年)5月16日申请的日本申请即日本专利申请2019-92626的优先权,通过参考将其内容并入至本申请。

技术领域

本发明涉及执行卷积运算的运算装置及运算方法。

背景技术

使用DNN(Deep Neural Network)的物体识别、行动预测等在自动驾驶中的运用在不断发展。在将DNN部署到车载用ECU(Electronic Control Unit)时,须削减电路部署规模。由于电路部署规模的制约,DNN的部署是按每一层来进行,通过按每一层对输入参数进行变更而在同一电路中执行卷积运算。DNN的卷积运算中有可能发生溢出,其对策中须增加卷积运算器的比特数及电路部署规模。DNN的溢出的判定结果按每一层而不同,因此最佳的卷积运算器的比特数按每一层而不同。电路部署上,须根据条件最严格的层来选择电路部署规模。

专利文献1的电路设计方法中,关于期望的数字信号处理而在对作溢出判定的对象运算附加指令并制作程序,根据该程序来进行动作合成,对附加有指令的对象运算附加溢出检测电路来生成RTL电路。

现有技术文献

专利文献

专利文献1:日本专利特开2009-48367号公报

发明内容

发明要解决的问题

上述专利文献1的电路设计方法是在电路设计时赋予溢出判定电路并在实际进行运算后对溢出进行判定。因而,在进行运算之前并不清楚是否会发生溢出,在电路部署后发生溢出的情况下,将无法应对。此外,专利文献1的电路设计方法中进行溢出的判定、根据判定结果来增加运算器的比特数。所以卷积运算器的电路规模增加。

本发明的目的在于抑制卷积运算装置中的溢出的发生于未然。

解决问题的技术手段

本申请中揭示的发明的一形态的运算装置是一种在构成神经网络的多个卷积层各方中利用卷积运算器来执行滤波器与所述滤波器的尺寸程度的对象数据的卷积运算的运算装置,其特征在于,具有:比特削减部,其按每一所述卷积层从所述对象数据的最低有效位起削减第1比特数程度的位串,从所述滤波器的要素即权重的最低有效位起削减第2比特数程度的位串;以及比特追加部,其对通过将所述比特削减部削减后的所述对象数据及所述权重输入至所述卷积运算器而从所述卷积运算器输出的卷积运算结果的最低有效位追加所述第1比特数及所述第2比特数合计得到的第3比特数程度的位串。

发明的效果

根据本发明的代表性的实施方式,能够抑制卷积运算器中的溢出的发生于未然。前文所述以外的课题、构成及效果将通过以下实施例的说明来加以明确。

附图说明

图1为表示用于进行外界识别的CNN的说明图。

图2为表示图1所示的卷积运算例的说明图。

图3为图2的局部放大图。

图4为表示位移位例的说明图。

图5为表示实施例1的运算装置的构成例的框图。

图6为表示实施例1的运算装置的运算处理次序例的流程图。

图7为表示实施例2的位移位例的说明图。

图8为表示位串的探索例的说明图。

图9为表示实施例4的运算装置的构成例的框图。

图10为表示溢出判定结果表的一例的说明图。

图11为表示实施例4的运算装置的运算处理次序例的流程图。

具体实施方式

实施例1

<CNN>

图1为表示用于进行外界识别的CNN(Convolutional Neural Network)的说明图。CNN 100是包含L个(L为2以上的整数)卷积层的卷积神经网络。图1中省略了卷积层以外的池化层、全连接层、输出层。CNN 100中,例如当输入图像数据102时,借助L个卷积层C1~CL来依序执行卷积运算而输出图像数据102上显示的物体的识别结果105。将任意层编号j即第j层的卷积层称为第j卷积层Ci(1≤j≤L)或卷积层Cj。

此处,以第1卷积层C1(j=1)为例来说明卷积运算。CNN 100从已学习模型101获取与第1卷积层C1相对应的权重滤波器110。已学习模型101按每一卷积层Ci而具有不同权重滤波器110。权重滤波器110例如表现为n×n(n为1以上的整数)的权重矩阵W。n×n为卷积运算中的乘积和运算中的加法次数。图1中,作为例子,设为n=3,包含9个要素即权重wa~wi。

CNN 100借助卷积运算器103、使用与图像数据102内的权重矩阵W相同的n×n的对象区域120的像素a~i和权重矩阵W来执行卷积运算,输出对象区域120的卷积运算结果140。CNN 100借助卷积运算器103一边在图像数据102内对权重矩阵W进行光栅扫描一边按每一对象区域120输出卷积运算结果140,由此将卷积运算结果104输出至后一层即第2卷积层C2。CNN 100的计算量庞大,因此CNN 100在各对象区域120内进行乘积和运算时,CNN 100内的加法器有时会发生溢出。

<卷积运算例>

图2为表示图1所示的卷积运算例的说明图。图3为图2的局部放大图。图2及图3中,(A)展示对表示像素及权重的各位串不进行位移位及反向位移位的情况下的卷积运算例,(B)展示对表示像素及权重的各位串进行位移位及反向位移位的情况下的卷积运算例。

用于表现像素a~i的值的位宽即各比特数pi未必是同一比特数,在本例中,为方便起见,将像素a~i的比特数均记作pi。同样地,用于表现权重wa~wi的值的位宽即各比特数pw也未必是同一比特数,在本例中,为方便起见,将权重wa~wi的比特数均记作pw。

图2的(A)中,卷积运算器103在第j卷积层Cj中利用乘积和运算器来逐次运算卷积运算的乘法和加法。卷积运算器103具有乘法器201、加法器202、存放寄存器203以及输出寄存器204。乘法器201为双输入单输出的电路。乘法器201输入(1)来自对象区域120的比特数pi的像素(例如像素b)和(2)与该像素相对应的权重矩阵W的要素即比特数pw的权重(例如权重wb),输出(3)比特数(pi+pw)的乘法结果(例如b×wb)。

加法器202将(3)乘法结果(例如b×wb)与(4)1像素前的累积加法结果(例如a×wa)相加,将(5)最新的累积加法结果(例如a×wa+b×wb)输出至存放寄存器203。将加法器202的最大比特数设为M比特。M为1以上的整数。累积加法结果的比特数每当第2k次(k=1、2、3、…)加法便进位。

存放寄存器203存放(5)最新的累积加法结果。输出寄存器204从存放寄存器203获取加法次数n×n的加法结束时也就是对象区域120内的卷积运算结束时的最新的累积加法结果,并输出至输出数据存放寄存器205。

在卷积运算前也就是第0次加法时,(1)的比特数pi、(2)的比特数pw、(3)的比特数(pi+pw)、(4)的1像素前的累积加法结果的比特数以及(5)的加法累积结果的比特数均为0比特。

在加法次数第n×n=1次运算中,卷积运算器103输出(1)比特数pi的像素a与(2)比特数pw的权重wa的(3)乘法结果a×wa(比特数(pi+pw))。由于是(4)对象区域120的最初的像素a,因此不存在1像素前的加法累积结果。因此,(5)最新的加法累积结果为比特数(pi+pw)的乘法结果a×wa。

在加法次数第n×n=2次运算中,卷积运算器103输出(1)比特数pi的像素b与(2)比特数pw的权重wb的(3)乘法结果b×wb(比特数(pi+pw))。(4)1像素前的加法累积结果为比特数(pi+pw)的乘法结果a×wa。因此,(5)最新的加法累积结果为比特数(pi+pw+1)的乘法结果(a×wa+b×wb)。如图3的(A)所示,卷积运算器103执行这样的处理直至像素i为止。

如此,卷积运算器103反复进行卷积运算直至加法次数第n×n次为止。在该情况下,若第n×n次加法结束时的(5)加法累积结果的比特数Nmax变得比加法器202的比特数M大,则会发生溢出,导致计算精度降低。若将溢出程度的比特数设为s(s为满足s>0的整数),则为了防止溢出的发生,必须将卷积运算器103的加法器202的比特数M从M比特变更为M+s比特。

更具体而言,溢出的发生条件(加法次数n×n、像素和权重的输入比特数)按每一卷积层Cj而不同。因而,须根据所有卷积层C1~CL中溢出条件最严格的卷积层Cj来调整加法器202的比特数M。由此导致电路规模增大。具体而言,例如在将各卷积层Cj的溢出程度的比特数设为sj(1≤j≤L)的情况下,将溢出程度的比特数s1~sL中的最大比特数设为s。在该情况下,为了防止溢出的发生,必须将卷积运算器103的加法器202的比特数M从M比特变更为M+s比特。

图2的(B)中,在卷积运算器103前面设置位移位器211i、211w,在卷积运算器103后面设置反向位移位器212。位移位器211i对像素的比特数pi作si比特数程度的移位。位移位器211w对权重的比特数pw作sw比特数程度的移位。再者,比特数si、sw的关系满足下述式(1)即可。

s=si+sw>0···(1)

图4为表示位移位例的说明图。第1位移位器211i在从最高有效位MSB(MostSignificant Bit)往最低有效位LSB(Least Significant bit)的方向上对像素的位串作si比特程度的移位,由此来削减像素的低阶si比特。第2位移位器211w在从最高有效位MSB往最低有效位LSB的方向上对权重的比特数pw作sw比特程度的移位,由此来削减权重的低阶sw比特。

由此,如图2的(B)所示,(1)'第1位移位器211i将比特数(pi-si)或比特数pi的像素输出至乘法器201,(2)'第2位移位器211w将比特数(pw-sw)或比特数pw的权重输出至乘法器201。

在加法次数第n×n=1次运算中,卷积运算器103输出(1)'比特数pi-si的像素a与(2)'比特数pw-sw的权重wa的(3)乘法结果a×wa(比特数(pi+pw-s))。由于是(4)对象区域120的最初的像素a,因此不存在1像素前的加法累积结果。因此,(5)最新的加法累积结果为比特数(pi+pw-s)的乘法结果a×wa。

在加法次数第n×n=2次运算中,卷积运算器103输出(1)'比特数pi-si的像素b与(2)'比特数pw-sw的权重wb的(3)乘法结果b×wb(比特数(pi+pw-s))。(4)1像素前的加法累积结果为比特数(pi+pw-s)的乘法结果a×wa。因此,(5)最新的加法累积结果为比特数(pi+pw-s+1)的乘法结果(a×wa+b×wb)。如图3的(B)所示,卷积运算器103执行这样的处理直至像素i为止。

如此,卷积运算器103反复进行卷积运算直至加法次数第n×n次为止。在该情况下,若第n×n次加法结束时的(5)加法累积结果的比特数Nmax变得比加法器202的比特数M大,则会发生溢出,导致计算精度降低,但在各次加法中,只要作移位的累积削减比特数s(=si+sw)满足下述式(2)的条件,便不会发生溢出。

s=Nmax-M···(2)

Nmax为(5)加法累积结果的比特数。通过以满足上述式(2)的方式借助第1位移位器211i、第2位移位器211w对像素及权重的各位串作位移位,可以避免溢出。之后,CNN100借助反向位移位器212按每次加法对(5)加法累积结果的位串作比特数s程度的反向移位。所谓反向移位,是在从最低有效位LSB往最高有效位MSB的方向上对(5)加法累积结果的位串作s比特程度的移位。

由此,对(5)加法累积结果的位串追加s比特程度的低阶位。该追加的s比特程度的低阶位的值可任意设定。如此,通过针对像素及权重在卷积运算之前进行比特数削减,可以避免卷积运算器103的溢出。由此,能够抑制卷积运算器103的计算精度的降低、削减卷积运算器103的电路规模。

更具体而言,即便在溢出的发生条件(加法次数n×n、像素和权重的输入位宽)按每一卷积层Cj而不同的情况下,也无须根据所有卷积层C1~CL中溢出条件最严格的卷积层Cj来调整加法器202的比特数M,只要按每一层j来动态地改变作移位的累积削减比特数s即可。

<运算装置的构成例>

图5为表示实施例1的运算装置的构成例的框图。运算装置500具有数据输入部501、滤波器存放部502、判定器503、削减比特数计算器504、比特削减部505、卷积运算器103、反向位移位器212、输出加法器506以及输出数据存放寄存器205。具体而言,数据输入部501、滤波器存放部502、判定器503、削减比特数计算器504、比特削减部505、卷积运算器103、反向位移位器212、输出加法器506以及输出数据存放寄存器205例如由LSI(Large-scale Integrated Circuit)或存储器来实现。

数据输入部501受理数据的输入。将输入到数据输入部501的数据称为“输入数据”。例如,数据输入部501受理从连接于运算装置500的摄像机(未图示)输出的图像数据102的输入。在该情况下,图像数据102为输入数据。此外,数据输入部501也受理输出数据存放寄存器205中存放的最新的加法累积结果(参考图2的(B)的(5))的输入。该最新的加法累积结果也是输入数据。

数据输入部501具有输入数据切换器511和输入数据存放寄存器512。输入数据切换器511根据CNN 100的层编号j将输出至输入数据存放寄存器512的输入数据切换为图像数据102或者最新的加法累积结果中的任一方。具体而言,例如,若卷积层Cj的层编号j为j=1,则输入数据切换器511将图像数据102输出至输入数据存放寄存器512,若层编号j为j≥2,则输入数据切换器511将最新的加法累积结果输出至输入数据存放寄存器512。再者,当输入数据的卷积运算完成时,层编号j会递增。

输入数据存放寄存器512存放来自输入数据切换器511的输入数据。输入数据存放寄存器512根据来自参数存放寄存器522的与当前的层编号j相对应的权重尺寸n×n来选择成为与权重滤波器110的卷积对象的对象区域120,并输出至判定器503及第1位移位器211i。

滤波器存放部502存放每一卷积层Cj的权重滤波器110。具体而言,例如滤波器存放部502具有地址解码器521和参数存放寄存器522。地址解码器521将与卷积层Cj的层编号j相对应的地址信息adj输出至参数存放寄存器522。参数存放寄存器522存放卷积运算器103内的加法器202的比特数M。此外,参数存放寄存器522按每一地址信息adj来存放像素的比特数pi、权重的比特数pw、权重矩阵W以及权重尺寸n×n。

判定器503算出在对象区域120的卷积运算中避免卷积运算器103发生溢出所需的加法器202的比特数Nmax。例如通过下述式(3)算出比特数Nmax。

Nmax=(pi+pw)+log2(n2)···(3)

继而,判定器503根据通过上述式(3)算出的比特数Nmax和加法器202的比特数M、通过下述式(4)来事先判定卷积运算器103是否会发生溢出。

M<Nmax···(4)

在M<Nmax的情况下,判定器503判定在对象区域120的卷积运算中卷积运算器103会发生溢出,在并非M<Nmax的情况下,判定器503判定在对象区域120的卷积运算中卷积运算器103不会发生溢出。

削减比特数计算器504计算累积削减比特数s,并输出至反向位移位器212。所谓累积削减比特数s,是像素削减比特数si与权重削减比特数sw的合计值即(s=si+sw)。所谓像素削减比特数si,是在从最高有效位MSB往最低有效位LSB的方向上对比特数pi的像素的位串作移位的比特数。从比特数pi的像素的位串削减从最低有效位LSB溢出的像素削减比特数si程度的位串。

所谓权重削减比特数sw,是在从最高有效位MSB往最低有效位LSB的方向上对比特数pw的权重作移位的比特数。从比特数pw的权重的位串削减从最低有效位LSB溢出的权重削减比特数sw程度的位串。像素削减比特数si及权重削减比特数sw在累积削减比特数s中占据的比例可任意设定。像素削减比特数si及权重削减比特数sw中的任一方也可为0。

具体而言,例如,在判定器503判定并非M<Nmax的情况下,削减比特数计算器504将累积削减比特数s设定为0比特。另一方面,在判定器503判定M<Nmax的情况下,削减比特数计算器504通过下述式(5)来算出累积削减比特数s。

s=log2(|n2-2(M-(pi+pw))|)···(5)

右边的“2(M-(pi+pw))”表示利用M比特的加法器202可对像素与权重的乘法结果(比特数pi+pw)作几次累积加法。即,“M-(pi+pw)”表示利用Mbit的加法器202对乘法结果(比特数pi+pw)作累积加法时的到溢出为止的比特裕度(参考图2的(B)的(1)及(2))。若上述式(5)的累积削减比特数s的计算结果为整数,则直接予以采用。在上述式(5)的累积削减比特数s的计算结果包含小数的情况下,采用上舍入后的值作为累积削减比特数s。例如,若上述式(5)的算出结果为“5.4”,则采用上舍入后的值即“6”作为累积削减比特数s。

此外,削减比特数计算器504将像素削减比特数si输出至第1位移位器211i,将权重削减比特数sw输出至第2位移位器211w。

比特削减部505具有第1位移位器211i和第2位移位器211w。第1位移位器211i依序受理对象区域120的像素,在从最高有效位MSB往最低有效位LSB的方向上对该像素作像素削减比特数si程度的移位。

第1位移位器211i将位移位后的比特数(pi-si)的像素输出至卷积运算器103。第2位移位器211w依序受理权重矩阵W的要素即权重wa~wi,在从最高有效位MSB往最低有效位LSB的方向上对该权重作权重削减比特数sw程度的移位。第2位移位器211w将位移位后的比特数(pw-sw)的权重输出至卷积运算器103。

卷积运算器103像图2的(B)所示那样依序受理来自第1位移位器211i的像素和来自第2位移位器211w的权重而执行卷积运算。卷积运算器103将对象区域120的卷积运算结果输出至加法器202及反向位移位器212。

反向位移位器212在从最低有效位LSB往最高有效位MSB的方向上对来自卷积运算器103的对象区域120的加法累积结果作累积削减比特数s程度的反向移位。在反向位移位后的最低有效位LSB起的累积削减比特数s程度的空白位串中填充规定值(例如0)。如此,反向位移位器212作为追加累积削减比特数s程度的位串的比特追加部发挥功能。

输出加法器506将反向位移位后的对象区域120的加法累积结果加到输出数据存放寄存器205中存放的最新的加法累积结果中。输出数据存放寄存器205存放最新的加法累积结果。通过输出加法器506来加上对象区域120的加法累积结果,由此对最新的加法累积结果进行更新。当层编号j被更新时,输出数据存放寄存器205被重置。

<运算装置500的运算处理次序例>

图6为表示实施例1的运算装置500的运算处理次序例的流程图。运算装置500开始第j卷积层Cj的卷积运算(步骤S600)。再者,层编号j的初始值为j=1。运算装置500从滤波器存放部502获取加法器202的比特数M、像素的比特数pi、权重的比特数pw、权重矩阵W以及权重尺寸n2作为与层编号j相对应的参数(步骤S601)。

运算装置500通过数据输入部501来获取输入数据内的对象区域120的像素群(步骤S602)。层编号j=1时的输入数据为图像数据102,j≥2时的输入数据为输出数据存放寄存器205中存放的第j-1卷积层Cj中的卷积运算结果104。对象区域120的初始位置为输入数据的左上角。每当对象区域120内的乘积和运算结束时,对象区域120都以规定跨距朝右方移动,当到达右端时,以规定跨距朝下方移动,并再次沿横向移动。

运算装置500通过判定器503、使用上述式(3)来算出避免卷积运算中发生溢出所需的加法器202的比特数Nmax(步骤S603)。继而,运算装置500通过判定器503、使用上述式(4)来判断加法器202的比特数M是否大于步骤S603中算出的比特数Nmax(步骤S604)。

在加法器202的比特数M大于比特数Nmax的情况下(步骤S604:是),转移至步骤S605,在加法器202的比特数M不大于比特数Nmax的情况下(步骤S604:否),转移至步骤S607。

在步骤S605中,运算装置500通过削减比特数计算器504、使用上述式(5)来求对象区域120内的像素削减比特数si及权重削减比特数sw(步骤S605)。继而,运算装置500通过比特削减部505将对象区域120内的像素的比特数pi作像素削减比特数si程度的移位,将权重的比特数pw作权重削减比特数sw程度的移位(步骤S606)。由此,从像素的位串削减像素的比特数si程度的低阶位,从权重的位串削减权重的比特数sw程度的低阶位。

在步骤S607中,运算装置500通过卷积运算器103来执行卷积运算(步骤S607)。运算装置500通过反向位移位器212对步骤S607的对象区域120的卷积运算结果作累积削减比特数s程度的反向移位(步骤S608)。再者,在步骤S604为否的情况下,设定为累积削减比特数s=0,因此作0比特程度的反向移位,也就是不作反向移位。

运算装置500判断输入数据整个区域的运算是否已结束(步骤S609)。在尚未结束的情况下(步骤S609:否),运算装置500跨距移动对象区域120而返回至步骤S602。在输入数据整个区域的运算已结束的情况下(步骤S609:是),运算装置500结束第j卷积层Cj的运算(步骤S611)。继而,运算装置500对层编号j作递增而返回至步骤S600。在层编号j为j=L的情况下,运算装置500结束运算处理。

如此,实施例1的运算装置500按每一卷积层Cj来进行溢出判定,若事先判定会发生溢出,则削减像素的比特数pi以及权重的比特数pw,从而动态地确保加法器202中的加法次数的容限。由此,能够谋求降低卷积运算的电路规模。

此外,通过监视来自比特削减部505的输出,可以确认输入至卷积运算器103的像素及权重是否进行了位移位。此外,通过监视输出数据存放寄存器205中存放的最新的加法累积结果的削减比特数s程度的低阶位的值是否与填充的值一致,可以确认是否进行了反向位移位。

实施例2

接着,对实施例2进行说明。实施例1的运算装置500是根据加法次数n×n来决定累积削减比特数s(参考上述式(5))。实施例2的运算装置500根据输入数据的内容来决定累积削减比特数s。具体而言,例如,若像素和权重的位串的最高有效位MSB的值为0,则视为在该位串的加法中削减了进位所需的比特。将像素和权重的位串的最高有效位MSB称为判定位。再者,对与实施例1共通的部分标注同一符号并省略其说明。

图7为表示实施例2的位移位例的说明图。图7中展示像素比特数pi为pi=8比特的像素的位串的例子。(A)中,(例1)及(例2)的位串的判定位(MSB)均为“0”。因而,从加法次数n×n减去1。(例3)及(例4)的位串的判定位(MSB)均为“1”。因而,不从加法次数n×n作减法。

在判定器503判定M<Nmax的情况下,实施例2的削减比特数计算器504通过下述式(6)来算出累积削减比特数s。

[数式1]

其中,k=1、2、3、···、n2

Xk:第k次乘积和运算中

Xk=Bik∪Bwk

若像素的位串的最高有效位MSB的值为“1”,则Bik为“0”,若像素的位串的最高有效位MSB的值为“0”,则Bik为“1”。同样地,若权重的位串的最高有效位MSB的值为“1”,则Bwk为“0”,若权重的位串的最高有效位MSB的值为“0”,则Bwk为“1”。Xk是Bik与Bwk的逻辑和。即,若像素的位串以及权重的位串中的至少一方的最高有效位MSB的值为“0”,则Xk为“1”。

Xk的总和表示来自乘法器201的输出输入到M比特的加法器202时的到溢出为止的比特裕度(最高有效位MSB起的空闲比特数)。图7的(B)展示Bik的决定例。若判定位为“0”,则Bik=1,若判定位为“1”,则Bik=0。虽未图示,但Bwk也是一样的。

如此,实施例2的运算装置500与实施例1一样,按每一卷积层Cj来进行溢出判定,当事先判定会发生溢出时,削减像素的比特数pi以及权重的比特数pw,从而动态地确保加法器202中的加法次数的容限。由此,能够谋求降低卷积运算的电路规模。

此外,能使累积削减比特数s小于实施例1,因此位串的削减幅度小于实施例1。因而相较于实施例1而言能谋求提高卷积运算器103的运算精度。

实施例3

接着,对实施例3进行说明。实施例1的运算装置500是根据加法次数n×n来决定累积削减比特数s(参考上述式(5))。实施例3的运算装置500与实施例2一样,根据输入数据的内容来决定累积削减比特数s。具体而言,例如,判定器503在像素和权重的位串中从最高有效位MSB朝最低有效位LSB的方向进行探索,确定最初出现1这一值的位的位置。再者,对与实施例1共通的部分标注同一符号并省略其说明。

图8为表示位串的探索例的说明图。在(例1)的位串的情况下,最高有效位MSB起2比特为“00”,第3比特上出现“1”。因而,将最高有效位MSB起的2比特削减掉。在(例2)的位串的情况下,最高有效位MSB起3比特为“000”,第4比特上出现“1”。因而,将最高有效位MSB起的3比特削减掉。在(例3)的位串的情况下,最高有效位MSB上出现“1”。因而,将最高有效位MSB起的0比特削减掉。在(例4)的位串的情况下,最高有效位MSB起1比特为“0”,第2比特上出现“1”。因而,将最高有效位MSB起的1比特削减掉。

在判定器503判定M<Nmax的情况下,实施例3的削减比特数计算器504通过下述式(7)来算出累积削减比特数s。

[数式2]

其中,k=1、2、3、···、n2

Wk是表示第k次加法中使用的权重当中比特值为“1”的位置处于比乘法器201的最大比特小几比特的位置、换句话说就是视为值被预先削减了几比特程度的值。在图8的例子中,在像素的位串为(例1)的情况下,Wk=2。

Ik是表示第k次加法中使用的像素当中比特值为“1”的位置处于比乘法器201的最大比特小几比特的位置、换句话说就是视为值被预先削减了几比特程度的值。在图8的例子中,在权重的位串为(例2)的情况下,Wk=3。

如此,实施例3的运算装置500与实施例1一样,按每一卷积层Cj来进行溢出判定,当事先判定会发生溢出时,削减像素的比特数pi以及权重的比特数pw,从而动态地确保加法器202中的加法次数的容限。由此,能够谋求降低卷积运算的电路规模。

此外,通过从位串削减对值无影响的高阶位,能使累积削减比特数s小于实施例1而且相较于实施例2而言谋求提高卷积运算器103的运算精度。

实施例4

接着,对实施例4进行说明。在实施例1中,在运算装置500内在卷积运算之前事先判定加法器202是否会溢出,以避免发生溢出的方式计算累积削减比特数s来削减像素和权重的位串的比特数。在实施例4中,预先由运算装置500外部的计算机像实施例1的运算装置500那样执行基于判定器503的溢出判定和基于削减比特数计算器504的累积削减比特数s的算出,制作溢出判定结果表。溢出判定结果表部署到实施例4的运算装置500中。再者,对与实施例1共通的部分标注同一符号并省略其说明。

<运算装置500的构成例>

图9为表示实施例4的运算装置500的构成例的框图。实施例4的运算装置500具有溢出判定结果表900代替实施例1的判定器503及削减比特数计算器504。

图10为表示溢出判定结果表900的一例的说明图。溢出判定结果表900具有地址信息栏1001、像素削减比特数栏1002、权重削减比特数栏1003以及累积削减比特数栏1004。同一行的各栏的值构成表示第j卷积层Cj中的溢出判定结果的项。再者,栏的值的符号末尾的j表示层编号j。例如,像素削减比特数sij表示第j卷积层Cj的像素削减比特数si。

地址信息栏1001是存放地址信息adj的栏。地址信息adj是与层编号j相对应的信息。像素削减比特数栏1002是存放像素削减比特数sij的栏。权重削减比特数栏1003是存放权重削减比特数swj的栏。累积削减比特数栏1004是存放累积削减比特数sj(=sij+swj)的栏。

在针对第j卷积层Cj执行卷积运算的情况下,运算装置500从地址解码器521读出地址信息adj而输出至溢出判定结果表900。运算装置500在溢出判定结果表900中确定地址信息adj这一项中包含的像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj。

继而,运算装置500将像素削减比特数sij从溢出判定结果表900输出至第1位移位器211i,将权重削减比特数siw从溢出判定结果表900输出至第2位移位器211w,将累积削减比特数sj从溢出判定结果表900输出至反向位移位器212。再者,在不作位移位便会在加法器202中发生溢出的卷积层Cj中,累积削减比特数sj为sj>0,在不作位移位也不会在加法器202中发生溢出的卷积层Cj中,累积削减比特数sj为sj=0。

再者,溢出判定结果表900也可不存放累积削减比特数栏1004这一列。在该情况下,由反向位移位器212算出累积削减比特数sj(=sij+swj)。

<运算装置500的运算处理次序例>

图11为表示实施例4的运算装置500的运算处理次序例的流程图。与图6的不同点在于,图11中,运算装置500不执行步骤S605。

再者,溢出判定结果表900的值也可加以更新。具体而言,例如运算装置500以可通信的方式与未图示的管理服务器连接在一起。管理服务器使用成为训练数据的图像数据102而像实施例1~实施例3的运算装置500那样按每一卷积层Cj来算出像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj。继而,管理服务器按每一卷积层Cj将像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj发送至运算装置500。

如此,运算装置500可以利用来自管理服务器的按每一卷积层Cj的像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj来更新溢出判定结果表900。

例如,运算装置500部署在多个汽车各自的ECU中。管理服务器在特定时段例如从多个汽车中夜间行驶频次相对或绝对高的汽车接收该汽车所拍摄到的图像数据,将接收到的图像数据作为训练数据而按每一卷积层Cj来再算出像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj。

继而,管理服务器将按每一卷积层Cj再算出的像素削减比特数sij、权重削减比特数swj以及累积削减比特数sj发送至该夜间行驶频次高的汽车的运算装置500。由此,可以将溢出判定结果表900的内容更新为专门针对运算装置500的用户的值,从而能谋求提高运算精度。上述例子中针对夜间行驶频次来进行了说明,但也可为降雨或降雪时等恶劣天气时的行驶频次。

如此,实施例4的运算装置500削减像素的比特数pij以及权重的比特数pwj,从而动态地确保加法器202中的加法次数的容限。由此,能够谋求降低卷积运算的电路规模。此外,由于运算装置500中没有部署判定器503及削减比特数计算器504,因此能谋求降低电路规模。此外,由于运算装置500中没有部署判定器503及削减比特数计算器504,因此不会在判定器503及削减比特数计算器504中执行处理。因而能谋求低耗电化。

如以上所说明,在上述实施例中,能够抑制DNN的溢出以及随之而来的电路部署规模的增加。

再者,本发明不限定于前文所述的实施例,而是包含随附权利要求书的宗旨内的各种变形例及同等构成。例如,前文所述的实施例是为了以易于理解的方式说明本发明所作的详细说明,本发明并非一定限定于具备说明过的所有构成。此外,可将某一实施例的构成的一部分替换为其他实施例的构成。此外,可对某一实施例的构成加入其他实施例的构成。此外,可对各实施例的构成的一部分进行其他构成的追加、删除或替换。

此外,前文所述的各构成、功能、处理部、处理方法等例如可通过利用集成电路进行设计等而以硬件来实现它们的一部分或全部,也可通过由处理器解释并执行实现各功能的程序而以软件来实现。

实现各功能的程序、表格、文件等信息可以存放在存储器、硬盘、SSD(Solid StateDrive)等存储装置或者IC(Integrated Circuit)卡、SD卡、DVD(Digital Versatile Disc)等记录介质中。

此外,控制线和信息线展示的是认为说明上需要的部分,未必展示了部署所需的所有控制线和信息线。实际上,可认为几乎所有构成都相互连接在一起。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:机器学习中用于不平衡缓解和数据集大小缩减的自适应采样

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!