算术设备制造技术

技术编号:36019700 阅读:9 留言:0更新日期:2022-12-21 10:13
根据实施方式的算术设备包括:第一运算单元,该第一运算单元计算用于使浮点运算的动态范围移位的共享指数偏差值;第二运算单元,该第二运算单元通过对第一数据集和第二数据集执行对应于大量元素的算术运算,计算大于第一位数的第二位数的积之和算术结果,所述第一数据集由共享指数偏差值和第一位数的浮点数的激活值形成,所述第二数据集由共享指数偏差值和第一位数的浮点数的权重形成;以及量化器,该量化器通过将积之和算术结果的位数从第二位数量化至第一位数来更新激活值。位数量化至第一位数来更新激活值。位数量化至第一位数来更新激活值。

【技术实现步骤摘要】
算术设备


[0001]本文中讨论的实施方式与算术设备有关。

技术介绍

[0002]通过扩大深度神经网络(DNN)的规模并增加其的深度,已经提高了DNN的识别率。然而,DNN的运算量根据其扩大的规模和增加的深度而增加,并且DNN的训练时间与运算量的增加成比例地增加。
[0003]为了缩短DNN的训练时间,在一些情况下,使用8位浮点(FP8)或16位浮点(FP16)的低精度运算(LPO)来训练DNN。例如,当使用FP8的算术运算时,可以使单指令多数据(SIMD)算术运算的并行度是32位浮点(FP32)的算术运算的4倍,使得运算时间可以缩短为1/4。与FP8或FP16的LPO相比,在一些情况下,FP32的算术运算被称为全精度运算(FPO)。例如,在一些情况下,如在将FP32改变为FP8的情况下,通过减少数据的位数将DNN的算术运算从FPO改变为LPO被称为量化。此外,在一些情况下,包括FPO和LPO两者的DNN的算术运算被称为混合精度运算(MPO)。使用MPO(混合精度训练)(MPT)训练DNN,针对其中通过量化降低识别率的层执行FPO,使得针对其执行LPO的层和针对其执行FPO的层两者以混合的方式存在。例如,常规技术在美国特许公开的专利公布第2020/0234112号、美国特许公开的专利公布第2019/0042944号、美国特许公开的专利公布第2020/0042287号、美国特许公开的专利公布第2020/0134475号、美国特许公开的专利公布第2020/0242474号以及美国特许公开的专利公布第2018/0322607号中有所描述。
[0004]浮点运算的动态范围的中心为0,但是DNN的值没有落在由动态范围覆盖的范围内。因此,当使用浮点运算来训练DNN时,DNN的识别率降低。因此,为了防止DNN的识别率降低,可以考虑执行算术运算以通过共享指数偏差值使浮点运算的动态范围移位在其中DNN的值分布中的最大值落入浮点运算的动态范围内的范围中(在下文中,在一些情况下,被称为“灵活浮点运算(FFPO)”)。
[0005]然而,在执行MPO时没有可以执行FFPO的算术设备,使得难以提高DNN的训练速度。
[0006]因此,本专利技术的实施方式的一个方面中的目的是提供提高DNN的训练速度的技术。

技术实现思路

[0007]根据实施方式的方面,算术设备包括:第一运算单元,该第一运算单元计算用于使浮点运算的动态范围移位的共享指数偏差值;第二运算单元,该第二运算单元通过对第一数据集和第二数据集执行对应于大量元素的积之和算术运算(sum

of

product arithmetic operations),计算大于第一位数的第二位数的积之和算术结果,所述第一数据集由共享指数偏差值和第一位数的浮点数的激活值形成,所述第二数据集由共享指数偏差值和第一位数的浮点数的权重形成;以及量化器,该量化器通过将积之和算术结果的位数从第二位数量化至第一位数来更新激活值。
附图说明
[0008]图1是示出根据第一实施方式的DNN训练设备的配置示例的框图;
[0009]图2是示出根据第一实施方式的SIMD算术单元的配置示例的图;
[0010]图3A是示出根据第一实施方式的DOT4命令的伪代码的示例的图;
[0011]图3B是示出根据第一实施方式的DOT4命令的伪代码的示例的图;
[0012]图4是示出根据第一实施方式的DOT4算术单元的内部图的示例的图;
[0013]图5是示出根据第一实施方式的由算术设备执行的处理过程的示例的流程图;
[0014]图6是示出根据第一实施方式的DNN训练设备中的数据流的示例的图;
[0015]图7是示出根据第一实施方式的SIMD算术单元的硬件配置的示例的图;以及
[0016]图8是示出根据第二实施方式的DOT4算术单元的内部图的示例的图。
具体实施方式
[0017]将参照附图来说明本专利技术的优选实施方式。在以下描述中,相同的配置由相同的附图标记表示,并且关于相同配置或相同处理的冗余描述将不再重复。以下实施方式不限制本文中公开的技术。
[0018][a]第一实施方式
[0019]DNN训练设备的配置
[0020]图1是示出根据第一实施方式的DNN训练设备的配置示例的框图。例如,作为DNN训练设备10,可以使用诸如各种计算机的信息处理设备。
[0021]在图1中,DNN训练设备10在训练DNN时执行算术处理。DNN训练设备10包括算术设备11和存储器12。该算术设备11包括偏差算术单元11a、SIMD算术单元11b和量化器11c。
[0022]在本文中,浮点运算的值由表达式(1)给出。在表达式(1)中,s是1位固定符号位,Nebit是指数部分(exponent portion)e的位数,并且Nmbit是尾数部分(mantissa portion)m的位数。例如,在FP32的情况下,满足N
ebit
=8和N
mbit
=23。
[0023][0024]在输入数据中不包括去归一化数据的情况下,在共享指数偏差值b应用于表达式(1)时FFPO的值由表达式(2)和(3)给出。即,表达式(2)是在值为归一化的数的情况下的表达式。共享指数偏差值b是以量化为单位的一般的单个值。
[0025][0026][0027]共享指数偏差值b由表达式(4)给出,并且使由表达式(1)表示的浮点运算的动态范围移位。在表达式(4)中,e
max
是表达式(5)中的f
max
的指数项,并且表达式(5)中的f是待量化的所有元素。
[0028][0029][0030]偏差算术单元11a基于表达式(4)和(5)计算8位定点(INT8)的共享指数偏差值b。SIMD算术单元11b基于表达式(2)和(3)通过执行SIMD算术运算来计算FP32的张量dst作为积之和算术结果。量化器11c通过将FP32的张量dst量化为FP8的张量来计算张量作为最终结果。例如,由量化器11c进行的量化可以通过使用诸如对张量的所有元素的指数部分和尾数部分进行计算以及在对尾数部分进行计算时执行随机舍入处理等公知的技术来执行。
[0031]SIMD算术单元
[0032]图2是示出根据第一实施方式的SIMD算术单元的配置示例的图。在图2中,SIMD算术单元11b包括DOT4算术单元20、30、40和50。DOT4算术单元20包括乘法器21、22、23和24,以及加法器25和26。DOT4算术单元30包括乘法器31、32、33和34,以及加法器35和36。DOT4算术单元40包括乘法器41、42、43和44,以及加法器45和46。DOT4算术单元50包括乘法器51、52、53和54,以及加法器55和56。图2例示了其中包括128位的输入数据src1和128位的输入数据src2的两条数据分别被存储在两个128位的寄存器中的情况本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种算术设备,包括:第一运算单元,所述第一运算单元计算用于使浮点运算的动态范围移位的共享指数偏差值;第二运算单元,所述第二运算单元通过对第一数据集和第二数据集执行对应于大量元素的积之和算术运算,计算大于第一位数的第二位数的积之和算术结果,所述第一数据集由共享指数偏差值和第一位数的浮点数的激活值形成,所述第二数据集由共享指...

【专利技术属性】
技术研发人员:桥本铁太郎
申请(专利权)人:富士通株式会社
类型:发明
国别省市:

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

1