面向神经网络计算的多位宽重构近似张量乘加方法与系统转让专利

申请号 : CN202311453997.1

文献号 : CN117170623B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张浩汪粲星谢钠

申请人 : 南京美辰微电子有限公司

摘要 :

本发明公开了面向神经网络计算的多位宽重构近似张量乘加方法与系统,支持位宽为8×8、8×4和4×4的乘法运算。近似张量乘加单元包括子张量乘法单元和累加电路。子张量乘法单元包括符号拓展模块、部分积生成模块和可重构加法树模块。符号拓展模块用于将4bits数据拓展为5bits数据,并在近似计算模式下计算8bits数据的截断数据和补偿移位值;可重构加法树模块用于完成部分积生成模块结果的累加。累加电路用于计算对应子张量乘法单元结果之和作为最终结果。本发明改变乘法器和加法器的位宽和结构,实现不同程度的近似,显著减低张量乘加计算的硬件开销,保持较高的精度和灵活性。

权利要求 :

1.面向神经网络计算的多位宽重构近似张量乘加方法,用于支持位宽为8×8、8×4和4×4的乘法运算,其特征在于,针对输入数据,执行以下步骤S1至步骤S3,得到子张量乘加单元的计算结果,然后输出至累加电路进行累加,得到张量乘加单元的最终计算结果,S1、针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据,具体是:将bits数据拆分为高4bits数据和低4bits数据,高4bits数据的最高位补符号位,低4bits数据的最高位补0,获得5bits数据;

针对8bits数据的近似计算为:将8bits数据截断为5bits的数据,同时计算出补偿移位值;具体是:从第7位向第0位遍历,找到首个与前一位不同的数,确定首个与前一位不同的数为第n位,则截取数据为A[n+1:n‑3],其中A 为待进行近似计算的8bits数据,[:]为截断值;并且当n=7时,截取数据为A[7:3];当n≤4时,截取数据为A[4:0],补偿移位值的计算方式为:当n≥3时,补偿移位值为n‑3;当n<3时,补偿移位值为0;

针对8bits数据的近似计算时,若8bits数据是神经网络中的激活值和权重时,先进行预编码:将激活值第[6:2]位作为5bits截断值,然后计算激活值的补偿移位值,将权重的第[1:0]位所表示的十进制数作为权重补偿移位值;

针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据;之后执行步骤S2;

S2、对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后执行步骤S3;

S3、对步骤S2部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。

2.根据权利要求1所述的面向神经网络计算的多位宽重构近似张量乘加方法,其特征在于,步骤S2中,计算总补偿移位值N时,还包括:将激活值的补偿移位值与权重的补偿移位值相加,得到总补偿移位值。

3.根据权利要求1所述的面向神经网络计算的多位宽重构近似张量乘加方法,其特征在于,步骤S2中,通过16个5×5乘法器对 5bits数据进行5*5有符号运算。

4.面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,包括:张量乘法单元,所述张量乘法单元包括至少一个子张量乘法单元以及与子张量乘法单元对应连接的累加电路,所述子张量乘法单元用于支持位宽为8×8、8×4和4×4的乘法运算,累加电路用于对各个子张量乘法单元结果进行累加求和,将求和结果作为张量乘加单元的最终计算结果;

所述子张量乘法单元包括:符号拓展模块、部分积生成模块、可重构加法树模块;

所述符号拓展模块,用于针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据,具体是将bits数据拆分为高4bits数据和低

4bits数据,高4bits数据的最高位补符号位,低4bits数据的最高位补0,获得5bits数据;

针对8bits数据的近似计算为:将8bits数据截断为5bits的数据,同时计算出补偿移位值;具体是:从第7位向第0位遍历,找到首个与前一位不同的数,确定首个与前一位不同的数为第n位,则截取数据为A[n+1:n‑3],其中A为待进行近似计算的8bits数据,[:]为截断值;并且当n=7时,截取数据为A[7:3];当n≤4时,截取数据为A[4:0],补偿移位值的计算方式为:当n≥3时,补偿移位值为n‑3;当n<3时,补偿移位值为0;

针对8bits数据的近似计算时,若8bits数据是神经网络中的激活值和权重时,先进行预编码:将激活值第[6:2]位作为5bits截断值,然后计算激活值的补偿移位值,将权重的第[1:0]位所表示的十进制数作为权重补偿移位值;

针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据,之后将5bits数据输出至部分积生成模块;

部分积生成模块,用于对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后将部分积计算结果输出至可重构加法树模块;

可重构加法树模块,用于对部分积生成模块输出的部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。

5.根据权利要求4所述的面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,所述子张量乘法单元为4个。

6.根据权利要求4所述的面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,可重构加法树模块包含4级加法器,对子张量乘法单元输出的结果进行累加。

7.根据权利要求4所述的面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,所述部分积生成模块包括16个5×5有符号乘法器和移位补偿电路。

说明书 :

面向神经网络计算的多位宽重构近似张量乘加方法与系统

技术领域

[0001] 本发明属于可重构计算领域,具体涉及面向神经网络计算的多位宽重构近似张量乘加方法与系统。

背景技术

[0002] 深度神经网络已经在从图像分类到语音识别的一系列机器学习应用中取得了最先进的结果。在移动设备和边缘物联网传感器等硬件和电源开销有限的移动设备中使用人脑启发网络的需求不断增加,这需要面积小、高能效的神经网络加速器设计。
[0003] 神经网络计算是指利用神经网络模型来进行各种计算任务的过程,它具有并行性、分布性、自适应性和容错性等优点。神经网络计算在许多领域都有广泛的应用,如计算机视觉、雷达图像处理、语音识别、图像生成等。
[0004] 近似计算技术是一种在牺牲一定精度的情况下,降低计算复杂度和能耗的方法。量化作为近似计算的一种技术,通过降低位宽来提高数据吞吐量及整体能效。神经网络计算中包含大量乘加操作,这些操作会消耗大量的面积资源,以及带来大量的功耗开销。同时不同神经网络应用,或相同神经网络的不同层具有不同的容错性,单一位宽和模式的计算单元会带来能效的浪费,需根据不同的应用需求,动态的调整计算单元的位宽和精度。

发明内容

[0005] 本发明所要解决的技术问题在于:针对现有技术中神经网络计算包含大量乘加操作,这些操作会消耗大量的面积资源,以及带来大量的功耗开销的问题,本发明提供了面向神经网络计算的多位宽可重构近似张量乘加方法与系统,本发明可以采用不同的位宽来平衡精度和效率,可以通过改变乘法器和加法器的位宽和结构,实现不同程度的近似,能够显著减低张量乘加计算的功耗和面积开销,同时保持较高的精度和灵活性。
[0006] 为解决以上技术问题,本发明提供如下技术方案:面向神经网络计算的多位宽重构近似张量乘加方法,用于支持位宽为8×8、8×4和4×4的乘法运算,针对输入数据,执行以下步骤S1至步骤S3,得到子张量乘加单元的计算结果,然后输出至累加电路进行累加,得到张量乘加单元的最终计算结果,
[0007] S1、针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据;针对8bits数据的近似计算为:将8bits数据截断为5bits的数据,同时计算出补偿移位值;针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据,之后执行步骤S2;
[0008] S2、对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后执行步骤S3;
[0009] S3、对步骤S2部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。
[0010] 进一步地,前述的步骤S1中,针对8bits数据的精确计算为:bits数据拆分为高4bits数据和低4bits数据,高4bits数据的最高位补符号位,低4bits数据的最高位补0,获得5bits数据。
[0011] 进一步地,前述的步骤S1中,所述针对8bits数据的近似计算包括:从第7位向第0位遍历,找到首个与前一位不同的数,确定该首个与前一位不同的数为第n位,则截取数据为A[n+1:n‑3],其中A 为待进行近似计算的8bits数据,[:]为截断值;并且当n=7时,截取数据为A[7:3];当n≤4时,截取数据为A[4:0],补偿移位值的计算方式为:当n≥3时,补偿移位值为n‑3;当n<3时,补偿移位值为0。
[0012] 进一步地,前述的步骤S1中还包括:针对8bits数据的近似计算时,若8bits数据是神经网络中的激活值和权重时,先进行预编码:将激活值第[6:2]位作为5bits截断值,然后计算激活值的补偿移位值,将权重的第[1:0]位所表示的十进制数作为权重补偿移位值。
[0013] 进一步地,前述的步骤S2中,计算总补偿移位值N时,还包括:将激活值的补偿移位值与权重的补偿移位值相加,得到总补偿移位值。
[0014] 进一步地,前述的步骤S2中,通过16个5×5乘法器对 5bits数据进行5*5有符号运算。
[0015] 本发明另一方提供面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,包括:张量乘法单元,所述张量乘法单元包括至少一个子张量乘法单元以及与子张量乘法单元对应连接的累加电路,所述子张量乘法单元用于支持位宽为8×8、8×4和4×4的乘法运算,累加电路用于对各个子张量乘法单元结果进行累加求和,将求和结果作为张量乘加单元的最终计算结果;
[0016] 所述子张量乘法单元包括:符号拓展模块、部分积生成模块、可重构加法树模块;
[0017] 所述符号拓展模块,用于针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据;针对8bits数据的近似计算为:将
8bits数据截断为5bits的数据,同时计算出补偿移位值;针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据,之后将5bits数据输出至部分积生成模块;
[0018] 部分积生成模块,用于对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后将部分积计算结果输出至可重构加法树模块;
[0019] 可重构加法树模块,用于对部分积生成模块输出的部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。
[0020] 进一步地,前述的所述子张量乘法单元为4个。
[0021] 进一步地,前述的可重构加法树模块包含4级加法器,对子张量乘法单元输出的结果进行累加。
[0022] 进一步地,前述的所述部分积生成模块包括16个5×5有符号乘法器和移位补偿电路。
[0023] 相较于现有技术,本发明采用以上技术方案的有益技术效果如下:
[0024] (1)提出的张量乘加单元支持三种位宽的乘法,用相同的硬件实现了更灵活的配置,能够更充分利用神经网络不同层对错误的容忍度不同这一特点,动态配置乘法位宽,最小化硬件开销。例如,在对误差敏感度高的层中,使用8bits的数据,执行8×8位宽的乘法;在对误差敏感度低的层中,使用4bits的数据,执行8×4或4×4位宽的乘法,保持网络精度的同时提高计算能效。
[0025] (2)提出的张量乘加单元支持精确计算模式和近似计算模式。在近似计算模式下,将涉及8bits数据的乘法运算通过移位的方式转化为5bits数据的乘法运算,减少了电路的延时和功耗;同时由于神经网络数据分布的特点,这种转化并不会对网络整体精度有过大的影响。可重构加法树的低位在近似计算模式下也会动态配置为或门以替代全加器,从而进一步减少电路的硬件开销。
[0026] (3)张量乘加单元的权重在网络训练完毕后就已经确定,因此在近似计算模式下,计算8×8位宽乘法时权重可以被预编码,以跳过符号拓展模块中对移位补偿值和5bits截断数据的计算,进一步提高计算能效。

附图说明

[0027] 图1是本发明实施例的整体示意图。
[0028] 图2是神经网络的权重分布示意图。
[0029] 图3是本发明实施例中不同位宽数据的拓展方法及计算方法示意图。
[0030] 图4是本发明实施例在近似计算模式下计算8×8位宽乘法的示意图。
[0031] 图5是本发明实施例中可重构加法树中的单个16bits加法器的结构示意图。实施方式
[0032] 为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
[0033] 在本发明中参照附图来描述本发明的各方面,附图中示出了许多说明性实施例。本发明的实施例不局限于附图所述。应当理解,本发明通过上面介绍的多种构思和实施例,以及下面详细描述的构思和实施方式中的任意一种来实现,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
[0034] 图1示出了本发明一个较佳实施例的整体结构示意图,本发明提供一种面向神经网络计算的多位宽重构近似张量乘加方法,用于支持位宽为8×8、8×4和4×4的乘法运算,针对输入数据,执行以下步骤S1至步骤S3,得到子张量乘加单元的计算结果,然后输出至累加电路进行累加,得到张量乘加单元的最终计算结果,
[0035] S1、针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据;针对8bits数据的近似计算为:将8bits数据截断为5bits的数据,同时计算出补偿移位值;针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据,之后执行步骤S2。
[0036] 选用精确计算或者近似计算的情况如下:在语音识别这种抗噪声能力强的场景下,可以使用近似模式,而对于一些图像识别,如果分类数较多,神经网络的鲁棒性差的场景,就需要使用精确计算模式。将数据拓展为5bits的原因是在不同的计算位宽和计算模式下尽可能提高硬件复用率,同时保持近似计算模式结果的精度下降在可接受范围内。
[0037] 参考图3,针对8bits数据的精确计算为:bits数据拆分为高4bits数据和低4bits数据,高4bits数据的最高位补符号位,低4bits数据的最高位补0,获得5bits数据。
[0038] 当乘法位宽为8×8且电路工作在精确模式时,本发明将8bits数据分解为高位和低位后,由4个5×5有符号乘法器计算得到结果。假设两个8bits乘数分别为A={AH,AL},B={BH,BL},其中AH,BH和AL,BL分别为8bits数A和B的高4bits和低4bits,那么A×B=AH×BH<<8+AH×BL<<4+AL×BH<<4+AL×BL,实现了使用4个乘法器通过移位相加得到A和B的乘积。
[0039] 当本发明中输入张量为神经网络中的激活值和权重时,由于权重数据可在片外训练后得到,因此在权重数据输入到张量乘加单元前,可以对其进行预编码,提前计算出由移位补偿模块截断生成的5bits数据和移位补偿值,从而避免在计算张量乘加时片上对权重数据的处理,进一步降低了硬件开销。
[0040] 针对8bits数据的近似计算时,若8bits数据是神经网络中的激活值和权重时,先进行预编码:将激活值第[6:2]位作为5bits截断值,然后计算激活值的补偿移位值,将权重的第[1:0]位所表示的十进制数作为权重补偿移位值。
[0041] 例如,假设8bits激活值A为“1110_1001”,计算得到5bits截断值为“10100”、补偿移位值为1;8bits预编码的权重值W为“0001_1011”,直接得到5bits截断值为“00110”、移位补偿值为3。则10bits乘积结果为“11_1011_1000”,考虑到总补偿移位值为4,因此10bits乘积结果经移位补偿电路处理后,最终乘积结果为11_1011_1000_0000。
[0042] 由于神经网络中的数据为有符号数,因此A和B均为有符号数,而4bits数AL和BL参与计算时都是正数并且本身并不带有符号位,直接计算会导致计算结果的错误,因此需要做一位符号位的拓展,将4bits数拓展为5bits。AH和BH分别拓展一位符号位为:{SA,AH},{SB,BH},其中SA和SB分别为A和B的符号位;AL和BL将拓展一位0,分别为{0,AL},{0,BL}。拓展后的数据输入至4个5×5乘法器中计算并移位相加得到最终结果。
[0043] 当乘法位宽为8×4且电路工作在精确模式时,类似地,输入8bits数据A拓展为{SA,AH},{0,AL},4bits数据拓展为{SB,BH},A和B的乘积将由2个5×5有符号乘法器计算并移位相加完成。
[0044] 当乘法位宽为4×4且电路工作在精确模式时,类似地,数据A和B将被拓展为{SA,A}和{SB,B},其乘积由1个5×5有符号乘法器进行计算并移位相加完成。
[0045] 图2示出了神经网络的权重分布。经统计,在大多数神经网络中0值附近较小的权重值占比大,而极大值和极小值占比小,呈现出正态分布的趋势,即权重值越大,在神经网络计算中出现的可能性越小。本发明中的近似计算模式充分利用了这一特点,设计出一种乘数越小越精确、乘数越大结果误差越大的方案,来最小化电路的硬件开销。本发明通过移位的方法,将位宽为8×8或8×4的有符号数乘法转换为位宽为5×5有符号数乘法。具体地,首先从高位到低位遍历,找到8bits数据中第一个与符号位不同的数字,之后截取对应的5bits数据,并舍弃掉低位数据。由于低位数据所代表的值很小,舍去引入的误差在可接受范围内,但有效地降低了乘法器的位宽,从而大大减少硬件开销。针对8bits数据的近似计算包括:从第7位向第0位遍历,找到首个与前一位不同的数,确定该首个与前一位不同的数为第n位,则截取数据为A[n+1:n‑3],其中A 为待进行近似计算的8bits数据,[:]为截断值;
并且当n=7时,截取数据为A[7:3];当n≤4时,截取数据为A[4:0],补偿移位值的计算方式为:当n≥3时,补偿移位值为n‑3;当n<3时,补偿移位值为0。
[0046] S2、对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后执行步骤S3;
[0047] S3、对步骤S2部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。
[0048] 图4示出了本发明实施例1在近似计算模式下计算8×8位宽乘法的过程示意图。8bits位宽的乘数和被乘数首先被符号拓展模块截断为5bits,同时计算出所需的补偿移位值。截断后的5bits数据将被输入到部分积生成模块的5×5有符号乘法器中,再由部分积生成模块的移位补偿电路计算出最终乘积。
[0049] 图5示出了本发明中可重构加法树中的单个16bits加法器的结构示意图。其中低n bits的加法结果由或门产生,(16‑n) bits的加法结果由精确全加器产生,在第n bits到第(n+1) bits之间没有进位信号传递。作为本实施例的一个优选方案,n的数值取8,能够在精度和硬件开销方面取得较好权衡。
[0050] 本发明另一方面提出面向神经网络计算的多位宽重构近似张量乘加系统,包括:张量乘法单元,所述张量乘法单元包括至少一个子张量乘法单元以及与子张量乘法单元对应连接的累加电路,所述子张量乘法单元用于支持位宽为8×8、8×4和4×4的乘法运算,累加电路用于对各个子张量乘法单元结果进行累加求和,将求和结果作为张量乘加单元的最终计算结果;
[0051] 所述子张量乘法单元包括:符号拓展模块、部分积生成模块、可重构加法树模块;
[0052] 所述符号拓展模块,用于针对输入的8bits数据、4bits数据,进行精确计算或者近似计算,获得5bits数据,以实现硬件复用,其中,针对8bits数据的精确计算为:将8bits数据拆分为两个4bits数据,将两个4bits数据分别拓展为5bits的数据;针对8bits数据的近似计算为:将8bits数据截断为5bits的数据,同时计算出补偿移位值;针对4bits数据的精确计算和近似计算均为:在4bits数据的最高位补符号位拓展,获得5bits数据,之后将5bits数据输出至部分积生成模块;
[0053] 部分积生成模块,用于对拓展为5bits的数据进行5*5有符号运算,得到部分积计算结果,对截断为5bits的数据计算补偿移位值并求和,得到总补偿移位值N,然后进行5*5有符号运算并对结果左移N位,得到部分积计算结果,之后将部分积计算结果输出至可重构加法树模块;
[0054] 可重构加法树模块,能够动态调整计算精度,用于对部分积生成模块输出的部分积计算结果进行逐级加法累加,并在逐级加法累加时做1bit位宽拓展,得到子张量乘加单元的计算结果。
[0055] 作为面向神经网络计算的多位宽重构近似张量乘加系统的优选方案,子张量乘法单元为4个,可重构加法树模块包含4级加法器,对16个所述精确5×5乘法器结果的累加,每级加法做1bit位宽拓展以防止结果溢出;且所述可重构加法树能够根据所述子张量乘法单元的工作模式将低位的加法动态配置为或门或者精确全加器,以减小计算功耗。所述部分积生成模块包括16个5×5有符号乘法器和移位补偿电路。该模块的输入信号来自符号拓展模块的输出;移位补偿电路仅在近似计算模式下且输入含8bits数据时工作,其余时间不与其他电路发生数据交流,以降低翻转功耗。该电路的工作原理为:将输入到某个5×5有符号乘法器的所有补偿移位值相加得到总补偿移位值N,并将5×5有符号乘法器的结果左移N位;该过程对16个5×5有符号乘法器并行完成。
[0056] 参考图1,利用本发明的方法,256bits的乘数与256bits的被乘数分别被均分为4组64bits的乘数与被乘数,输入到4个所述子张量乘法单元中;在每个所述子张量乘法单元内部,64bits的乘数与被乘数根据乘法位宽配置被再次拆分,在符号拓展模块的作用下生成16个精确5×5乘法器的输入值。在近似计算模式下、乘法位宽包含8bits数据时计算出补偿移位值。部分积生成模块中的16个5×5乘法器计算得到16个10bits结果。在在近似计算模式下、乘法位宽包含8bits数据时该结果被移位补偿电路左移相应位数得到16个最终部分积。16个最终部分积在可重构加法树模块中经过4级加法完成累加,得到部分和。近似计算模式下,可重构加法树的低位加法由或门实现;精确计算模式下,可重构加法树的低位加法由全加器实现。4个子张量乘法单元的4个部分和并行产生,输送至累加电路。累加电路将四个部分和进行累加,得到多位宽可重构近似张量乘加单元的最终计算结果。
[0057] 本发明已应用于一款通用神经网络加速器芯片,其中共采用4行16列的张量乘加单元,数据和权重通过广播的形式发送到各个乘加单元,并采用输出数据固定的方式实现各个单元的并行计算。对于AlexNet网络的推理,将第7和8层网络层采用4×4的模式,第5和6层网络层采用8×4的模式,而剩余的1到4层采用近似8×8的模式。最终网络计算能效提升
39.7%。
[0058] 虽然本发明已以较佳实施例阐述如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。