当前位置: 首页 > 专利查询>辉达公司专利>正文

用于神经网络的高精度矩阵乘法制造技术

技术编号:37638138 阅读:16 留言:0更新日期:2023-05-25 10:05
本公开涉及用于神经网络的高精度矩阵乘法。提供了执行数学运算的装置、系统和技术。在至少一个实施例中,对一个或更多个经缩放精度的运算数执行一个或更多个矩阵数学运算,以生成一个或更多个未缩放精度的结果,所述一个或更多个未缩放精度的结果具有比一个或更多个经缩放精度的运算数更高的精度。经缩放精度的运算数更高的精度。经缩放精度的运算数更高的精度。

【技术实现步骤摘要】
用于神经网络的高精度矩阵乘法


[0001]至少一个实施例涉及用于执行和促进人工智能的处理资源。例如,至少一个实施例涉及用于根据本文描述的各种新技术训练神经网络的处理器或计算系统。

技术介绍

[0002]诸如可能涉及矩阵乘法的各种数学运算依赖于高精度数据。在许多情况下,这些运算用于对时间敏感的运算。虽然可以使用加速的硬件来执行这些运算,但该硬件可能具有有限的精度,或者可能只能支持比输入数据可用的精度低的精度的值。在前的尝试允许将高精度的值分解为较低精度的值,然后在执行运算后尝试恢复较高的精度,但这些方法可能会失去至少某些值或值的范围的精度,因此不会产生可靠、高精度的结果。
附图说明
[0003]根据本公开的各种实施例将参照附图进行描述,其中:
[0004]图1A和图1B示出了根据至少一个实施例的值分解;
[0005]图2A、图2B、图2C和图2D示出了根据至少一个实施例的矩阵乘法运算的误差区域;
[0006]图3示出了根据至少一个实施例的具有矩阵乘法的值分解;
[0007]图4A和图4B示出了根据至少一个实施例的用于对较高的精度数据执行较低的精度运算的过程;
[0008]图5示出了根据至少一个实施例的用于执行数学运算的系统的组件;
[0009]图6A示出了根据至少一个实施例的推理和/或训练逻辑;
[0010]图6B示出了根据至少一个实施例的推理和/或训练逻辑;
[0011]图7示出了根据至少一个实施例的示例数据中心系统;
[0012]图8示出了根据至少一个实施例的计算机系统的框图;
[0013]图9示出了根据至少一个实施例的计算机系统的框图;
[0014]图10示出了根据至少一个实施例的计算机系统;
[0015]图11示出了根据至少一个实施例的计算机系统;
[0016]图12A示出了根据至少一个实施例的计算机系统;
[0017]图12B示出了根据至少一个实施例的计算机系统;
[0018]图12C示出了根据至少一个实施例的计算机系统;
[0019]图12D示出了根据至少一个实施例的计算机系统;
[0020]图12E和图12F示出了根据至少一个实施例的共享编程模型;
[0021]图13示出了根据至少一个实施例的示例性集成电路和相关联的图形处理器;
[0022]图14A至图14B示出了根据至少一个实施例的示例性集成电路和相关联的图形处理器;
[0023]图15A至图15B示出了根据至少一个实施例的附加的示例性图形处理器逻辑;
[0024]图16示出了根据至少一个实施例的计算机系统;
[0025]图17A示出了根据至少一个实施例的并行处理器;
[0026]图17B示出了根据至少一个实施例的分区单元;
[0027]图17C示出了根据至少一个实施例的处理集群;
[0028]图17D示出了根据至少一个实施例的图形多处理器;
[0029]图18示出了根据至少一个实施例的多图形处理单元(GPU)系统;
[0030]图19示出了根据至少一个实施例的图形处理器;
[0031]图20示出了根据至少一个实施例的处理器的微架构;
[0032]图21示出了根据至少一个实施例的深度学习应用处理器;
[0033]图22示出了根据至少一个实施例的示例神经形态处理器的框图;
[0034]图23和图24示出了根据一个或更多个实施例的图形处理器的至少部分;
[0035]图25示出了根据至少一个实施例的图形处理器核心的至少部分;
[0036]图26A至图26B示出了根据至少一个实施例的图形处理器核心的至少部分。
[0037]图27示出了根据至少一个实施例的并行处理单元(“PPU”);
[0038]图28示出了根据至少一个实施例的通用处理集群(“GPC”);
[0039]图29示出了根据至少一个实施例的并行处理单元(“PPU”)的存储器分区单元;
[0040]图30示出了根据至少一个实施例的流式多处理器;
[0041]图31是根据至少一个实施例的高级计算管线的示例数据流图;
[0042]图32是根据至少一个实施例的用于在高级计算管线中训练、调适、实例化和部署机器学习模型的示例系统的系统示意图;
[0043]图33A示出了根据至少一个实施例的用于训练机器学习模型的过程的数据流图;以及
[0044]图33B是根据至少一个实施例的利用预训练的注释模型来增强注释工具的客户端

服务器架构的示例图示。
具体实施方式
[0045]在至少一个实施例中,可以针对诸如可能涉及一个或更多个神经网络的训练的任务执行数学运算,例如矩阵乘法运算。在至少一个实施例中,这些运算可以在具有有限的精度能力的硬件(例如处理器或处理器内核)上执行。在至少一个实施例中,被用于执行这些运算中的至少一些运算的数据值可以以比该硬件支持的精度格式高的精度格式接收。在至少一个实施例中,因此可以使用如图1A或图1B所示的方法100以为了运算目的而试图降低这些值的精度,以及能够获取这些运算的具有这种较高的精度的结果。在至少一个实施例中,这可以涉及以第一精度接收数据,例如在计算机存储器中占有32位浮点格式(FP32)。在至少一个实施例中,可以如图1A所示执行分解过程,该分解过程对这个FP32值进行舍入以获取较低的精度的值,例如占用计算机存储器中16位脑浮点格式(BF16)的值。在至少一个实施例中,可以从该原始FP32值中减去该舍入值或第一次分解(decompose)的值,以获取明显小于该原始FP32值的第二FP32值。在至少一个实施例中,该第二FP32值可以再次舍入,以获取该较低的精度格式的第二次分解的值。在至少一个实施例中,可以再次从该先前高精度的值中减去该舍入值以获取新的高精度的值。在至少一个实施例中,如图1A的方法100所示,可以执行涉及舍入和减法的至少另一轮。在至少一个实施例中,由这种舍入产生的这些
较低精度的值然后可以用于数学运算,例如矩阵乘法运算,其可以使用能够以这种较低的精度执行运算的硬件来执行。在至少一个实施例中,源(source)值可以由下式给出:
[0046][0047]在至少一个实施例中,减法之后的这些值可能接近零值或非常小的值。在至少一个实施例中,已经表明这样的小值与分解过程产生的误差相关联,这会导致在矩阵乘法运算的最终结果中的误差。在至少一个实施例中,可以使用例如图1B中所示的方法150,该方法150引入了一个或更多个缩放因子。在至少一个实施例中,可以将缩放(scaling)因子应用于从先前值减去舍入值而产生的每个差值。在至少一个实施例中,将该差值乘以缩放因子可以防止该差值接近零或非常接近零值,这会引入如本文其他地方所讨论的误差。在至少一个实施例中,源值可以由下式给出:
[0048][0049]在至少一个实施例中,这种方法允许本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器,包括:一个或更多个电路,用于对一个或更多个经缩放精度的运算数执行一个或更多个矩阵数学运算,以及用于生成一个或更多个未缩放精度的结果,所述一个或更多个未缩放精度的结果具有比所述一个或更多个经缩放精度的运算数更高的精度。2.根据权利要求1所述的处理器,其中所述一个或更多个电路用于通过对具有所述更高的精度的一个或更多个输入值执行一个或更多个分解运算来确定所述一个或更多个经缩放精度的运算数。3.根据权利要求2所述的处理器,其中所述一个或更多个电路进一步用于对各个输入值执行多个分解,其中相应的分解包括将先前值舍入为分解值,从所述先前值减去所述分解值以获取差值,然后将缩放因子应用于所述差值。4.根据权利要求3所述的处理器,其中所述一个或更多个电路进一步用于使用来自所述多个分解中的每一者的所述分解值来执行所述一个或更多个矩阵数学运算。5.根据权利要求3所述的处理器,其中所述一个或更多个电路进一步用于将逆缩放因子应用于所述一个或更多个矩阵数学运算的一个或更多个结果,以生成具有所述更高的精度的所述一个或更多个未缩放精度的结果。6.根据权利要求1所述的处理器,其中所述缩放因子被应用到用于所述一个或更多个矩阵数学运算的数学方程的一项或更多项,并且其中所述缩放因子是用于所述一个或更多个矩阵数学运算的多个缩放因子中的一者。7.一种系统,包括:一个或更多个处理器,用于对一个或更多个经缩放精度的运算数执行一个或更多个矩阵数学运算,以及用于生成一个或更多个未缩放精度的结果,所述一个或更多个未缩放精度的结果具有比所述一个或更多个经缩放精度的运算数更高的精度。8.根据权利要求7所述的系统,其中所述一个或更多个处理器进一步用于通过对具有所述更高的精度的一个或更多个输入值执行一个或更多个分解运算来确定所述一个或更多个经缩放精度的运算数。9.根据权利要求8所述的系统,其中所述一个或更多个处理器进一步用于对各个输入值执行多个分解,其中相应的分解包括将先前值舍入为分解值,从所述先前值减去所述分解值以获取差值,然后将缩放因子应用于所述差值。10.根据权利要求9所述的系统,其中所述一个或更多个处理器进一步用于使用来自所述多个分解中的每一者的所述分解值来执行所述一个或更多个矩阵数学运算。11.根据权利要求9所述的系统,其中所述一个或更多个处理器进一步用于将逆缩放因子应用于所述一个或更多个矩阵数学运算的一个或更多个结果,以生成具有所述更高的精度的所述一个或更多个未缩放精度的结果。12.根据权利要求7所述的系统,其中所述缩放因子被应用到用于所述一个或更多个矩阵数学运算的数学方程的一项或更多项,并且其中所述缩放因子是用于所述一个或更多个矩阵数学运算的多个缩放因子中的一者。13.一种方法,包括:对一个或更多个经缩放精度的运算数执行一个或更多个矩阵数学运算;以及生成一个或更多个未经缩放精度的结果,所述一个或更多个未经缩放精度的结果具有
比所述一个或更多个经缩放精度的运算数更高的精度。14.根据权利要求13所述的方法,进一步包括:通过对具有所述更高的精度的一个或更多个输入值执行一个或更多个分解运算来确定所述一个或更多个经缩放精度的运算数。15.根据权利要求14所述的方法,进一步包括:对各个输入值执行多个分解,其中相应的分解包括将先前值舍入为分解值,从所述先前值中减去所述分解值以获取差值,然后将缩放因子应用于所述差值。16.根据权利要求15所述的方法,进一步包括:使用来自所述多个分解中的每一者的所述分解值来执行所述一个或更多个矩阵数学运算。...

【专利技术属性】
技术研发人员:V
申请(专利权)人:辉达公司
类型:发明
国别省市:

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

1