【技术实现步骤摘要】
在硬件中执行矩阵乘法
[0001]分案说明
[0002]本申请属于申请日为
2018
年
05
月
17
日的中国专利技术专利申请
201880019014.4
的分案申请
。
[0003]本说明书涉及在硬件中执行神经网络计算
。
技术介绍
[0004]神经网络是机器学习模型,所述机器学习模型采用一个或多个层以针对所接收的输入生成输出,例如分类
。
除了输出层之外,一些神经网络还包括一个或多个隐藏层
。
每一个隐藏层的输出被用作对该网络中的另一层
(
例如该网络的下一隐藏层或输出层
)
的输入
。
网络的每一层根据相应的参数集合的当前值从所接收的输入生成输出
。
技术实现思路
[0005]总体上,本说明书描述了一种计算神经网络推断的专用硬件电路
。
[0006]总体上,本说明书中描述的主题的一个创新方面可以体现在使用硬件电路执行矩阵乘法的方法中,所述方法包括以下动作:由硬件电路的矩阵计算单元获取输入激活值和权重输入值,输入激活值和权重输入值均具有第一浮点格式;由矩阵计算单元的乘法电路将输入激活值与权重输入值相乘以生成乘积值,乘积值具有第二浮点格式,所述第二浮点格式具有比第一浮点格式更高的精度并且具有与第一浮点格式的动态范围至少一样大的动态范围;由矩阵计算单元获取第三浮点格式的部分和值,所述第三浮点格式具有 ...
【技术保护点】
【技术特征摘要】
1.
一种使用硬件电路来执行矩阵乘法的方法,所述方法包括:由所述硬件电路的矩阵计算单元获取激活输入值和权重输入值,所述激活输入值和所述权重输入值各自具有第一浮点格式,其中,所述硬件电路被配置为执行具有多个层的神经网络的计算,其中,所述激活输入值和所述权重输入值与所述多个层中的一个层相关联;其中,所述第一浮点格式是
16
位格式,包括:一个可用位用于符号
、
八个可用位用于指数
、
以及七个可用位用于有效数,以表示所述第一浮点格式中的浮点;由所述矩阵计算单元的乘法电路将所述激活输入值与所述权重输入值相乘以生成乘积值,所述乘积值具有第二浮点格式;由所述矩阵计算单元获取第三浮点格式的部分和值;以及由所述硬件电路的求和电路,将至少所述部分和值与所述乘积值组合以生成具有所述第三浮点格式的更新的部分和值
。2.
根据权利要求1所述的方法,其中,浮点格式的精度是基于所述浮点格式中的有效数的可用位的计数来确定的,并且浮点格式的动态范围是基于所述浮点格式中的指数的可用位的计数来确定的
。3.
根据权利要求1所述的方法,其中:所述第二浮点格式具有比所述第一浮点格式更高的精度,并且所述第二浮点格式具有至少与所述第一浮点格式的动态范围一样大的动态范围
。4.
根据权利要求1所述的方法,其中,所述第二浮点格式具有与所述第一浮点格式相同的动态范围,并且所述第三浮点格式具有与所述第一浮点格式相同的动态范围
。5.
根据权利要求1所述的方法,其中,所述第三浮点格式具有比所述第二浮点格式更高的精度
。6.
根据权利要求1所述的方法,其中:所述第三浮点格式具有比所述第一浮点格式更高的精度;并且所述第三浮点格式具有至少与所述第一浮点格式的动态范围一样大的动态范围
。7.
根据权利要求1所述的方法,进一步包括:获取具有所述第三浮点格式的所述第一矩阵计算单元的原始激活值和原始权重值;将所述原始激活值转换为所述第一浮点格式以生成所述激活输入值;并且将所述原始权重值转换为所述第一浮点格式以生成所述权重输入值
。8.
根据权利要求7所述的方法,进一步包括:接收以增强的精度处理所述原始激活值的请求;生成所述输入值的激活增强精度值,所述激活增强精度值是所述激活输入值与所述原始激活值之间的差的度量;以及生成所述权重输入值的权重增强精度值,所述权重增强精度值是所述权重输入值与所述原始权重值之间的差的度量;以及其中,将所述激活输入值与所述权重输入值相乘以生成所述乘积值包括:由所述矩阵计算单元的所述乘法电路,将所述输入值与所述权重输入值相乘,将所述输入值与所述权重增强精度值相乘,将所述权重输入值与所述激活增强精度值相乘,以及
将所述激活增强精度值与所述权重增强精度值相乘,以及将所述乘法的乘积组合以生成所述乘积值
。9.
一种硬件电路,包括:矩阵计算单元,所述矩阵计算单元被配置为执行第一组操作,所述第一组操作包括:获取激活输入值和权重输入值,所述激活输入值和所述权重输入值两者具有第一浮点格式,其中,所述硬件电路被配置为执行具有多个层的神经网络的计算,其中,所述激活输入值和所述权重输入值与所述多个层中的一个层相关联;其中,所述第一浮点格式是
16
位格式,包括:一个可用位用于符号
、
八个可用位用于指数
、
以及七个可用位用于有效数,以表示所述第一浮点格式中的浮点;将所述权重输入值存储在权重寄存器中,所述权重寄存器被配置为存储具有所述第一浮点格式的值;使用所述硬件电路的乘法电路,将所述激活输入值与所述权重输入值相乘以生成乘积值,所述乘积值具有第二浮点格式;获取第三浮点格式的部分和值;将所述部分和值存储在寄存器中的和中,所述寄存器中的和被配置为存储具有所述第三浮点格式的值;以及使用所述矩阵计算单元的求和电路,将所述部分和值与所述乘积值组合以生成具有所述第三浮点格式的更新的部分和值
。10.
根据权利要求9所述的硬件电路,其中:所述第二浮点格式具有比所述第一浮点格式更高的精度;并且所述第二浮点格式具有至少与所述第一浮点格式的动态范围一样大的动态范围
。11.
根据权利要求9所述的硬件电路,其中:所述第三浮点格式具有比所述第一浮点格式更高的精度;并且所述第三浮点格式具有至少与所述第一浮点格式的动态范围一样大的动态范围
。12.
根据权利要求9所述的硬件电路,所述第一组操作进一步包括:将所述激活输入值存储在激活寄存器中,所述激活寄存器被配置为存储具有所述第一浮点格式的值
。13.
根据权利要求9所述的硬件电路,所述第一组操作进一步包括:将所述权重输入值存储在权重寄存器中,所述权重寄存器被配置为存储具有所述第一浮点格式的值
。14.
根据权利要求9所述的硬件电路,所述第一组操作进一步包括:将所述部分和值存储在寄存器中的和中,所述寄存器中的和被配置为存储具有所述第三浮点格式的值
。15.
根据权利要求9所述的硬件电路,进一步包括在所述矩阵计算单元外部的外部求和电路,并且其中,所述第一组操作进一步包括:接收以增强的精度处理原始激活值的请求;生成所述输入值的激活增强精度值,所述激活增强精度值是所述激活输入值与所述原始激活值之间的差的度量;以及生...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。