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

技术编号:39672459 阅读:7 留言:0更新日期:2023-12-11 18:38
本发明专利技术公开了面向神经网络计算的多位宽重构近似张量乘加方法与系统,支持位宽为8×

【技术实现步骤摘要】
面向神经网络计算的多位宽重构近似张量乘加方法与系统


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


技术介绍

[0002]深度神经网络已经在从图像分类到语音识别的一系列机器学习应用中取得了最先进的结果

在移动设备和边缘物联网传感器等硬件和电源开销有限的移动设备中使用人脑启发网络的需求不断增加,这需要面积小

高能效的神经网络加速器设计

[0003]神经网络计算是指利用神经网络模型来进行各种计算任务的过程,它具有并行性

分布性

自适应性和容错性等优点

神经网络计算在许多领域都有广泛的应用,如计算机视觉

雷达图像处理

语音识别

图像生成等

[0004]近似计算技术是一种在牺牲一定精度的情况下,降低计算复杂度和能耗的方法

量化作为近似计算的一种技术,通过降低位宽来提高数据吞吐量及整体能效

神经网络计算中包含大量乘加操作,这些操作会消耗大量的面积资源,以及带来大量的功耗开销

同时不同神经网络应用,或相同神经网络的不同层具有不同的容错性,单一位宽和模式的计算单元会带来能效的浪费,需根据不同的应用需求,动态的调整计算单元的位宽和精度


技术实现思路

[0005]本专利技术所要解决的技术问题在于:针对现有技术中神经网络计算包含大量乘加操作,这些操作会消耗大量的面积资源,以及带来大量的功耗开销的问题,本专利技术提供了面向神经网络计算的多位宽可重构近似张量乘加方法与系统,本专利技术可以采用不同的位宽来平衡精度和效率,可以通过改变乘法器和加法器的位宽和结构,实现不同程度的近似,能够显著减低张量乘加计算的功耗和面积开销,同时保持较高的精度和灵活性

[0006]为解决以上技术问题,本专利技术提供如下技术方案:面向神经网络计算的多位宽重构近似张量乘加方法,用于支持位宽为8×
8、8
×4和4×4的乘法运算,针对输入数据,执行以下步骤
S1
至步骤
S3
,得到子张量乘加单元的计算结果,然后输出至累加电路进行累加,得到张量乘加单元的最终计算结果,
S1、
针对输入的
8bits
数据
、4bits
数据,进行精确计算或者近似计算,获得
5bits
数据,其中,针对
8bits
数据的精确计算为:将
8bits
数据拆分为两个
4bits
数据,将两个
4bits
数据分别拓展为
5bits
的数据;针对
8bits
数据的近似计算为:将
8bits
数据截断为
5bits
的数据,同时计算出补偿移位值;针对
4bits
数据的精确计算和近似计算均为:在
4bits
数据的最高位补符号位拓展,获得
5bits
数据,之后执行步骤
S2

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

S3、
对步骤
S2
部分积计算结果进行逐级加法累加,并在逐级加法累加时做
1bit

宽拓展,得到子张量乘加单元的计算结果

[0007]进一步地,前述的步骤
S1
中,针对
8bits
数据的精确计算为:
bits
数据拆分为高
4bits
数据和低
4bits
数据,高
4bits
数据的最高位补符号位,低
4bits
数据的最高位补0,获得
5bits
数据

[0008]进一步地,前述的步骤
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。
[0009]进一步地,前述的步骤
S1
中还包括:针对
8bits
数据的近似计算时,若
8bits
数据是神经网络中的激活值和权重时,先进行预编码:将激活值第
[6:2]位作为
5bits
截断值,然后计算激活值的补偿移位值,将权重的第
[1:0]位所表示的十进制数作为权重补偿移位值

[0010]进一步地,前述的步骤
S2
中,计算总补偿移位值
N
时,还包括:将激活值的补偿移位值与权重的补偿移位值相加,得到总补偿移位值

[0011]进一步地,前述的步骤
S2
中,通过
16
个5×5乘法器对 5bits
数据进行
5*5
有符号运算

[0012]本专利技术另一方提供面向神经网络计算的多位宽重构近似张量乘加系统,其特征在于,包括:张量乘法单元,所述张量乘法单元包括至少一个子张量乘法单元以及与子张量乘法单元对应连接的累加电路,所述子张量乘法单元用于支持位宽为8×
8、8
×4和4×4的乘法运算,累加电路用于对各个子张量乘法单元结果进行累加求和,将求和结果作为张量乘加单元的最终计算结果;所述子张量乘法单元包括:符号拓展模块

部分积生成模块

可重构加法树模块;所述符号拓展模块,用于针对输入的
8bits
数据
、4bits
数据,进行精确计算或者近似计算,获得
5bits
数据,其中,针对
8bits
数据的精确计算为:将
...

【技术保护点】

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

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

S3、
对步骤
S2
部分积计算结果进行逐级加法累加,并在逐级加法累加时做
1bit
位宽拓展,得到子张量乘加单元的计算结果
。2.
根据权利要求1所述的面向神经网络计算的多位宽重构近似张量乘加方法,其特征在于,步骤
S1
中,针对
8bits
数据的精确计算为:
bits
数据拆分为高
4bits
数据和低
4bits
数据,高
4bits
数据的最高位补符号位,低
4bits
数据的最高位补0,获得
5bits
数据
。3.
根据权利要求1所述的面向神经网络计算的多位宽重构近似张量乘加方法,其特征在于,步骤
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。4.
根据权利要求3所述的面向神经网络计算的多位宽重构近似张量乘加方法,其特征在于,步骤
S1
中还包括:针对

【专利技术属性】
技术研发人员:张浩汪粲星谢钠
申请(专利权)人:南京美辰微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1