System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种混合精度运算单元、方法和阵列技术_技高网

一种混合精度运算单元、方法和阵列技术

技术编号:40840990 阅读:5 留言:0更新日期:2024-04-01 15:07
本发明专利技术涉及一种混合精度运算单元、方法和阵列,属于运算单元设计领域。混合精度运算单元包括4个基于bit串行的混合精度乘法器,三个加法器和一个移位器;混合精度乘法器用于对2bit精度的激活值与1‑8bit连续精度可变的权重值进行乘加运算;移位器基于所述混合精度乘法器激活值的bit精度进行相应的移位;三个加法器用于进行相关的乘加运算。混合精度运算单元经过对4个混合精度乘法器的拼接融合支持激活值2、4、8bit精度可变,权重值1‑8bit连续精度可变的乘加运算,并且可以拓展成运算阵列,提高数据运算的并行性。在满足不同精度运算的需求的同时,极大程度减小计算位宽冗余和功耗、面积开销,实现对可变位宽精度的划分更为精细。

【技术实现步骤摘要】

本专利技术属于运算单元设计领域,尤其涉及一种混合精度运算单元、方法和阵列


技术介绍

1、近年来神经网络已被广泛部署于各个深度学习领域的应用中,目前的cnn卷积神经网络在一次推理的过程中需要数十亿甚至上百亿次计算,需要数百兆字节的参数。因此,在相对有限的硬件资源下实现巨大运算量的迫切需求对神经网络加速器中的运算单元设计提出了更大的挑战。

2、根据现有的研究成果,运算单元的设计主要有以下两种方案:单一精度运算单元设计和混合精度运算单元设计。

3、单一精度运算单元设计也是最传统的运算单元设计方案,只支持单一精度的运算操作,运算单元的位宽需要始终保持一致。这样的运算单元设计优点是设计相对比较简单,但是其缺点是对于采用较高位宽精度的单一精度运算单元而言,处理对精度要求不高的网络层中的数据运算时,会产生很大的计算位宽冗余,而冗余的无效位宽会给计算单元带来额外的面积和功耗开销;对于采用较低位宽精度的单一精度运算单元而言,处理对精度要求很高的网络层中的数据运算时,会损失运算精度。

4、混合精度运算单元的设计主要有两种方式:第一种方式的混合精度运算单元激活值采用单一位宽精度,权重值采用全位宽精度连续可变。这样的混合精度运算单元设计的优点是可以满足权重值为全位宽范围内任意精度的运算,但是其缺点是激活值的位宽精度不能变化,只能为单一位宽精度。以采用激活值为8bit,权重值为1-8bit连续位宽精度可变的混合精度运算单元为例,当其处理深层卷积神经网络alexnet中的卷积层运算时,由于alexnet网络中部分卷积层只需要4bit位宽精度的激活值,就会导致混合精度运算单元中的激活值位宽存在冗余,而冗余的无效位宽会给计算单元带来额外的面积和功耗开销。

5、第二种方式的混合精度运算单元激活值与权重值都采用不连续位宽精度可变(2,4,8bit或者2,4,8,16bit)。这样的混合精度运算单元设计的优点是权重值与激活值的位宽精度都是可变的,但是其缺点是两者的位宽精度都只能在一定范围内可变,不能实现连续可变。以采用激活值与权重值都为2,4,8bit不连续位宽精度可变的混合精度运算单元为例,当其处理二值化网络的卷积运算时,由于其只需要1bit位宽精度的权重值,因此就会导致混合精度运算单元中的权重值位宽存在冗余,同样,冗余的无效位宽会给计算单元带来额外的面积和功耗开销。

6、综上所述,单一精度运算单元不能兼容不同网络层中不同位宽精度数据的运算;目前的混合精度运算单元虽然可以兼容不同网络层中部分位宽精度数据的运算,但是由于其粗粒度的设计对可变位宽精度的划分不够精细,仍然不能满足如网络中部分卷积层只需要4bit位宽精度的激活值,二值化网络中只需要1bit位宽精度的权重值等更细粒度的混合精度运算需求。这两种方案都会导致运算单元出现计算位宽冗余过多,从而带来功耗、面积开销过大的问题。


技术实现思路

1、鉴于上述的分析,本专利技术旨在提供一种混合精度运算单元、方法和阵列,基于bit串行和bit融合,支持激活值2、4、8bit精度可变,权重值1-8bit连续精度可变的乘加运算,并且可以拓展成运算阵列,提高数据运算的并行性。在满足不同精度运算的需求的同时,极大程度减小计算位宽冗余和功耗、面积开销,实现对可变位宽精度的划分更为精细。

2、一方面,本专利技术提供了提供一种混合精度运算单元,包括4个基于bit串行的混合精度乘法器,第一、二、三加法器和第一移位器;

3、每个所述混合精度乘法器用于进行2bit精度的激活值与权重值的乘加运算;所述第一移位器基于所述混合精度运算单元输入的激活值的bit精度进行相应的移位;

4、所述第一加法器,两个输入端分别与两个混合精度乘法器的输出端相连,输出端与第三加法器的一个输入端相连;

5、所述第二加法器,两个输入端分别与另两个混合精度乘法器的输出端相连,输出端经所述第一移位器后与第三加法器的另一个输入端相连;

6、所述第三加法器,用于输出所述混合精度运算单元的运算结果。

7、进一步的,所述第一移位器基于所述混合精度运算单元输入的激活值的bit精度进行相应的移位,包括:当混合精度运算单元输入的激活值的bit精度为2或4时,第一移位器的移位值为0;当混合精度运算单元输入的激活值的bit精度为8时,第一移位器的移位值为4。

8、进一步的,每个所述混合精度乘法器用于2bit精度的激活值和权重值的乘加运算,4个所述混合精度乘法器通过分组对所述混合精度运算单元输入的2、4或8bit精度的激活值与权重值进行乘加运算;

9、当所述混合精度运算单元输入的激活值精度为2bit时,每一个混合精度乘法器单独为1组,分别进行一个2bit激活值与一个权重值的乘加运算,4个所述混合精度乘法器并行完成4组数据的乘加运算;

10、当所述混合精度运算单元输入的激活值精度为4bit时,每两个混合精度乘法器组成1组完成一组数据的乘加运算,其中,每组中的1个混合精度乘法器完成一个激活值低2bit与权重值的乘加运算,每组中的另一个混合精度乘法器完成该激活值高2bit与权重值的乘加运算;

11、当所述混合精度运算单元输入的激活值精度为8bit时,4个混合精度乘法器通过拼接融合为1组,共同完成一组数据的乘加运算,其中第4个混合精度乘法器完成最高2bit激活值与权重值的乘加运算,第3个混合精度乘法器完成次之2bit激活值与权重值的乘加运算,第2个混合精度乘法器完成再次之2bit激活值与权重值的乘加运算,第1个混合精度乘法器完成最低2bit激活值与权重值的乘加运算。

12、进一步的,所述权重值为1-8bit全位宽可变权重值。

13、进一步的,所述混合精度乘法器包括mux数据选择器、第四加法器、寄存器、第二移位器和第三移位器;

14、所述mux数据选择器用于在每个时钟周期基于输入的激活值和权重值进行选择运算得到部分积;

15、所述第四加法器两个输入端分别与mux数据选择器、寄存器的高两位相连,用于累加所述部分积,输出到寄存器的高三位;

16、所述寄存器的高三位与第四加法器的输出端相连,用于每个时钟周期缓存所述部分积的累加结果;

17、所述第二移位器的输入端和输出端均与寄存器相连,用于对缓存的每个时钟周期的所述部分积的最低位进行移位并反馈给寄存器;

18、所述第三移位器的输入端与寄存器相连,用于对所有时钟周期的部分积的累加结果进行右移以消除低位中无效位宽,得到所述混合精度乘法器的运算结果。

19、进一步的,当所述混合精度运算单元输入的激活值精度为4bit时,每组中完成激活值高2bit与权重值的乘加运算的混合精度乘法器中的第三移位器右移消除低位中无效位宽时,需要比完成低2bit与权重值的乘加运算少右移两位;

20、当所述混合精度运算单元输入的激活值精度为8bit时,完成最高2bit激活值与权重值的乘加运算以及完成再次本文档来自技高网...

【技术保护点】

1.一种混合精度运算单元,其特征在于,包括4个基于bit串行的混合精度乘法器,第一、二、三加法器和第一移位器;

2.根据权利要求1所述的混合精度运算单元,其特征在于,所述第一移位器基于所述混合精度运算单元输入的激活值的bit精度进行相应的移位,包括:当混合精度运算单元输入的激活值的bit精度为2或4时,第一移位器的移位值为0;当混合精度运算单元输入的激活值的bit精度为8时,第一移位器的移位值为4。

3.根据权利要求2所述的混合精度运算单元,其特征在于,每个所述混合精度乘法器用于2bit精度的激活值和权重值的乘加运算,4个所述混合精度乘法器通过分组对所述混合精度运算单元输入的2、4或8bit精度的激活值与权重值进行乘加运算;

4.根据权利要求1-3任一项所述的混合精度运算单元,其特征在于,所述权重值为1-8bit全位宽可变权重值。

5.根据权利要求1-3任一项所述的混合精度运算单元,其特征在于,所述混合精度乘法器包括mux数据选择器、第四加法器、寄存器、第二移位器和第三移位器;

6.根据权利要求5所述的混合精度运算单元,其特征在于,当所述混合精度运算单元输入的激活值精度为4bit时,每组中完成激活值高2bit与权重值的乘加运算的混合精度乘法器中的第三移位器右移消除低位中无效位宽时,需要比完成低2bit与权重值的乘加运算少右移两位;

7.一种混合精度运算方法,其特征在于,包括如下步骤:

8.根据权利要求7所述的混合精度运算方法,其特征在于,使用移位器基于所述混合精度运算方法的输入激活值的bit精度对所述第二结果进行相应的移位包括,当激活值的bit精度为2或4时,移位值为0;当激活值的bit精度为8时,移位值为4。

9.根据权利要求7所述的混合精度运算方法,其特征在于,每个混合精度乘法器用于进行2bit激活值与权重值的乘加运算,包括:

10.一种混合精度运算阵列,其特征在于;包括4个权利要求1-6任一项所述的混合精度运算单元,4个所述混合精度运算单元按照一维向量的排列方式,阵列中每个运算单元负责完成1个输出通道的卷积运算,以4个输出通道为一组进行并行运算。

...

【技术特征摘要】

1.一种混合精度运算单元,其特征在于,包括4个基于bit串行的混合精度乘法器,第一、二、三加法器和第一移位器;

2.根据权利要求1所述的混合精度运算单元,其特征在于,所述第一移位器基于所述混合精度运算单元输入的激活值的bit精度进行相应的移位,包括:当混合精度运算单元输入的激活值的bit精度为2或4时,第一移位器的移位值为0;当混合精度运算单元输入的激活值的bit精度为8时,第一移位器的移位值为4。

3.根据权利要求2所述的混合精度运算单元,其特征在于,每个所述混合精度乘法器用于2bit精度的激活值和权重值的乘加运算,4个所述混合精度乘法器通过分组对所述混合精度运算单元输入的2、4或8bit精度的激活值与权重值进行乘加运算;

4.根据权利要求1-3任一项所述的混合精度运算单元,其特征在于,所述权重值为1-8bit全位宽可变权重值。

5.根据权利要求1-3任一项所述的混合精度运算单元,其特征在于,所述混合精度乘法器包括mux数据选择器、第四加法器、寄存器、第二移位器和第三移位器;

...

【专利技术属性】
技术研发人员:王子杰罗瑞黄霄霄王晓琴乔树山周玉梅
申请(专利权)人:中国科学院微电子研究所
类型:发明
国别省市:

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

1