【技术实现步骤摘要】
改变操作数的精度
[0001]至少一个实施例涉及由并行处理单元(PPU)(如图形处理单元(GPU))用于执行矩阵乘法累加(MMA)运算的处理资源。例如,至少一个实施例涉及将第一类型的数据输入转换成第二类型的数据输入,并且使得对第二类型的数据输入执行MMA运算以生成第一类型的结果。
技术介绍
[0002]深度学习和其他运算经常涉及矩阵运算,矩阵运算由图形处理单元(GPU)和其他加速器加速。这些加速器和其他硬件通常具有关于加速器可以对其执行运算的数据的限制。例如,加速器可要求数据为特定数据类型。然而,数据可能不总是满足硬件的标准。因此,执行运算经常必须使用其他经常更慢的硬件来执行,或者不得不执行附加运算来准备数据以满足标准。使用此类其他硬件和/或执行此类其他运算会导致低效率,诸如更高的能量使用和/或更高的延时。
附图说明
[0003]图1A是示出了根据至少一个实施例的对tensorfloat32(TF32)输入操作数的矩阵乘法累加(MMA)运算的框图;
[0004]图1B是示出了根据至少一个实施例的使用TF32 MMA运算对FP32输入操作数的模拟的32位浮点(FP32)MMA运算的框图;
[0005]图2A是示出了根据至少一个实施例的TF32 MMA指令的输入和输出操作数的矩阵维度的框图;
[0006]图2B是示出了根据至少一个实施例的使用单个m16n8k4 MMA指令的m16n8k1 MMA运算的框图;
[0007]图3是示出了根据至少一个实施例的将FP32输入操作数分 ...
【技术保护点】
【技术特征摘要】
1.一种处理器,包括:一个或更多个电路,所述一个或更多个电路用于将第一数据类型的一个或更多个操作数变换为第二数据类型的一个或更多个操作数,以及使得对所述第二数据类型的所述一个或更多个操作数执行矩阵乘法累加MMA运算。2.如权利要求1所述的处理器,其中通过使所述第一数据类型的所述一个或更多个操作数的第一部分存储为所述第二数据类型的所述一个或更多个操作数以及使所述第一数据类型的所述一个或更多个操作数的第二部分存储为所述第二数据类型的一个或更多个其他操作数,来变换所述第一数据类型的所述一个或更多个操作数。3.如权利要求1所述的处理器,其中所述MMA运算如果由所述一个或更多个电路执行,则使所述一个或更多个电路执行特定于所述第二数据类型的一个或更多个数学运算。4.如权利要求1所述的处理器,其中第一数据类型的所述一个或更多个操作数包括一个或更多个第一数据集,并且所述第二数据类型的所述一个或更多个操作数包括一个或更多个第二数据集,所述一个或更多个第二数据集是通过组合所述一个或更多个第一数据集的一个或更多个子集从所述一个或更多个第一数据集变换的。5.如权利要求1所述的处理器,其中所述MMA运算如果由所述一个或更多个电路执行,则将生成所述第一数据类型的一个或更多个输出。6.如权利要求1所述的处理器,其中所述一个或更多个电路用于通过使一个或更多个第一位作为第一位集存储在所述第二数据类型的所述一个或更多个操作数中、使一个或更多个第二位作为第二位集存储在所述第二数据类型的所述一个或更多个操作数中、以及使一个或更多个第三位作为第三位集存储在所述第二数据类型的所述一个或更多个操作数中,来变换所述第一数据类型的所述一个或更多个操作数。7.一种系统,包括:一个或更多个处理器,所述一个或更多个处理器用于将第一数据类型的一个或更多个操作数转换成第二数据类型的一个或更多个操作数,以及使得对所述第二数据类型的所述一个或更多个操作数执行矩阵乘法累加MMA运算。8.如权利要求7所述的系统,其中所述第一数据类型的所述一个或更多个操作数包括具有一组维度的一个或更多个数据集,并且所述MMA运算如果由所述一个或更多个处理器执行,则将生成具有所述一组维度的子集的所述第一数据类型的一个或更多个其他数据集。9.如权利要求7所述的系统,其中所述第一数据类型的所述一个或更多个操作数包括具有一组维度的一个或更多个第一数据集,并且所述第二数据类型的所述一个或更多个操作数包括均具有所述一组维度的子集的一个或更多个第二数据集,所述一个或更多个第二数据集将由所述MMA运算使用。10.如权利要求7所述的系统,其中使得对所述第二数据类型的所述一个或更多个操作数执行所述MMA运算使所述一个或更多个处理器生成所述第一数据类型的一个或更多个数据集。11.如权利要求7所述的系统,其中所述一个或更多个处理器用于通过使一个或更多个第一位作为第一位集存储在所述第二数据类型的所述一个或更多个操作数中、使一个或更多个第二位作为第二位集存储在所述第二数据类型的所述一个或更多个操作数中、以及使
一个或更多个第三位作为第三位集存储在所述第二数据类型的所述一个或更多个操作数中,来转换所述第一数据类型的所述一个或更多个操作数。12.如权利要求7所述的系统,其中所述一个或更多个处理器用于通过计算所述第一数据类型的所述一个或更多个操作数中的每个操作数与所述第二数据类型的所述一个或更多个操作数中的每个操作数之间的一个或更多个差以及将所述一个或更多个差存储在所述第二数据类型的另外一个或更多个操作数中,来转换所述第一数据类型的所述一个或更多个操作数。13.如权利要求7所述的系统,其中所述MMA运算具有形状,并且所述第二数据类型的所述一个或更多个操作数包括满足所述形状的一个或更多个数据集。14.一种机器可读介质,具有存储在其上的一个或更多个指令,所述一个或更多个指令如果由一个或更多个处理器执行,则使所述一个或更多个处理器至少:将第一数据类型的一个或更多个操作数改变为第二数据类型的一个或更多个操作数,以及使得对所述第二数据类型的所述一个或更多个操作数执行矩阵乘法累加MMA运算。15.如权利要求14所述的机器可读介质,还包括指令,所述指令如果由所述一个或更多个处理器执行,则使所述一个或更多个处理器通过计算待存储为所述第二数据类型的所述一个或更多个操作数的所述第一数据类型的所述一个或更多个操作数的第一部分以及待存储为所述第二数据类型的一个或更多个其他操作数的所述第一数据类型的所述一个或更多个操作数的第二部分,来将所述第一数据类型的所述一个或更多个操作数改变为所述第二数据类型的所述一个或更多个操作数。16.如权利要求14所述的机器可读介质,还包括指令,所述指令如果由所述一个或更多个处理器执行,则使所述一个或更多个处理器通过使一个或更多个第一位作为第一位集存储在所述第二数据类型的所述一个或更多个操作数中、使一个或更多个第二位作为第二位集存储在所述第二数据类型的所述一个或更多个操作数中、以及使一个或更多个第三位作为第三位集存储在所述第二数据类型的所述一个或更多个操作数中,来改变所述第一数据类型的所述一个或更多个操作数。17.如权利要求14所述的机器可读介质,还包括指令,所述指令如果由所述一个或更多个处理器执行,则使所述一个或更多个处理器通过计算所述第一数据类型的所述一个或更多个操作数中的每个操作数与所述第二数据类型的所述一个或更多个操作数中的每个操作数之间的一个或更多个差以及将所述一个或更多个差存储在所述第二数据类型的另外一个或更多个操作数中,来转换所述第一数据类型的所述一个或更多个操作数。18.如权利要求14所述的机器可读介质,其中将对所述第二数据类型的所述一个或更多个操作数执行的所述MMA运算使得所述一个或更多个处理器生成所述第一数据类型的一个或更多个结果。19.如权利要求14所述的机器可读介质,其中第一数据类型的所述一个或更多个操作数包括一个或更多个第一数据集,并且所述第二数据类型的所述一个或更多个操作数包括一个或更多个第二数据集,所述一个或更多个第二数据集是至少部分地基于所述一个或更多个第一数据集计算的,并且将对所述一个或更多个第二数据集的一个或更多个组合执行所述MMA运算。20.如权利要求14所述的机器可读介质,其中所述MMA运算具有至少部分地基于所述第
二数据类型的所述一个或更多个操作数的一组维度确定的形状,并且所述MMA运算特定于所述第二数据类型。21.一种方法,包括:将第一数据类型的一个或更多个操作数变换为第二数据类型的一个或更多个操作数,以及使得对所述第二数据类型的所述一个或更多个操作数执行矩阵乘法累加MMA运算。22.如权利要求21所述的方法,进一步包括:通过使所述第一数据类型的所述一个或更多个操作数的一个或更多个第一位存储在所述第二数据类型的所述一个或更多个操作数中,使所述第一数据类型的所述一个或更多个操作数的一个或更多个第二位存储在所述第二数据类型的所述一个或更多个操作数中,以及使所述第一数据类型的所述一个或更多个操作数的一个或更多个第三位存储在所述第二数据类型的所述一个或更多个操作数中,来转换所述第一数据类型的所述一个或更多个操作数。23.如权利要求21所述的方法,进一步包括:通过计算所述第一数据类型的所述一个或更多个操作数中的每个操作数与所述第二数据类型的所述一个或更多个操作数中的每个操作数之间的一个或更多个差以及将所述一个或更多个差存储在所述第二数据类型的另外一个或更多个操作数中以能用作所述MMA运算的输入,来变换所述第一数据类型的所述一个或更多个操作数。24.如权利要求21所述的方法,其中将所述第一数据类型的所述一个或更多个操作数变换为所述第二数据类型的所述一个或更多个操作数包括:计算待存储为所述第二数据类型的所述一个或更多个操作数的所述第一数据类型的所述一个或更多个操作数的第一部分以及待存储为所述第二数据类型的一个或更多个其他操作数的所述第一数据类型的所述一个或更多个操作数的第二部分,并且将至少部分地基于所述第二数据类型的所述一个或更多个操作数和所述第二数据类型的所述一个或更多个其他操作数来执行所述MMA运算。25.如权利要求21所述的方法,其中所述MMA运算具有至少部分地基于所述第二数据类型的所述一个或更多个操作数的一个或更多个维度确定的形状,并且所述MMA运算特定于所述第二数据类型。26.如权利要求21所述的方法,进一步包括:由所述MMA运算至少部分地基于所述第二数据类型的所述一个或更多个操作数来生成所述第一数据类型的一个或更多个输出。27.如权利要求21所述的方法,其中所述MMA运算包括一个或更多个乘法运算和一个或更多个累加运算,用于至少部分地基于所述第二数据类型的所述一个或更多个操作数生成所述第一数据类型的一个或更多个数据集。28...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。