执行矩阵值指示的制作方法

文档序号:35536645发布日期:2023-09-22 01:11阅读:71来源:国知局
执行矩阵值指示的制作方法

至少一个实施例涉及用于执行一个或更多个矩阵运算的处理资源。例如,至少一个实施例涉及执行编译器以生成用于存储稀疏矩阵的非零元素的索引值的指令的处理器或计算系统,用于存储具有所述稀疏矩阵的非零元素的值的压缩数组(array)的指令,用于执行矩阵乘法运算的指令,以及用于解压缩所述矩阵乘法运算的结果以生成结果稀疏矩阵(例如,包括零值和非零值)的指令。


背景技术:

1、矩阵是按行和列排列的一组数字,或者一般来说,矩阵的元素由两个索引来索引。这些数字称为矩阵的元素、条目或值。矩阵具有广泛的应用范围,包括神经网络和机器学习。为了计算神经网络或机器学习算法的数学运算,处理器可以使用一个或更多个矩阵执行若干运算,例如加法和乘法,其中这些运算对应于计算中间结果或最终结果。一些神经网络包括具有存储数百万甚至数十亿元素的矩阵的层。可以改进用于执行矩阵运算的存储器量、计算能力或计算资源。


技术实现思路



技术特征:

1.一种处理器,包括:

2.如权利要求1所述的处理器,其中所述一个或更多个电路用于通过至少使一个或更多个处理器将所述一个或更多个非零值的索引值存储在一个或更多个图形处理核心可访问的存储器中来指示所述一个或更多个非零值。

3.如权利要求1所述的处理器,其中用于指示的所述操作包括所述一个或更多个电路生成指令,所述指令使一个或更多个处理器在并行执行一个或更多个稀疏矩阵乘法运算时将所述一个或更多个非零值的索引存储在一个或更多个线程可访问的存储器中。

4.如权利要求1所述的处理器,其中所述操作是稀疏矩阵乘法运算,并且其中所述一个或更多个电路用于执行编译器以生成可执行指令,以执行所述操作。

5.如权利要求1所述的处理器,其中所述操作用于使编译器接收具有所述一个或更多个数据矩阵的稀疏信息的一个或更多个第一指令,并编译所述一个或更多个第一指令以生成一个或更多个第二指令,所述一个或更多个第二指令能够由图形处理单元(gpu)执行以利用所述稀疏信息执行矩阵乘法运算。

6.如权利要求1所述的处理器,其中所述操作包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加(imma)运算、单精度矩阵乘法运算或浮点乘法和累加运算。

7.如权利要求1所述的处理器,其中执行所述操作用于使编译器修改有向无环图(dag)接口,以接收具有所述一个或更多个数据矩阵的稀疏信息的一个或更多个指令。

8.如权利要求1所述的处理器,其中指示一个或更多个数据矩阵内的一个或更多个非零值包括:使所述一个或更多个电路执行编译器,以生成将由一个或更多个图形处理核心使用以执行一个或更多个矩阵乘法运算的操作数,并且其中所述操作数包括所述一个或更多个非零值的索引信息。

9.一种系统,包括存储器,其用于存储指令,所述指令作为由一个或更多个处理器执行的结果,使所述系统:

10.如权利要求9所述的系统,其中指示包括:使一个或更多个处理器将所述一个或更多个非零值的索引值存储在一个或更多个图形处理核心可访问的存储器中。

11.如权利要求9所述的系统,其中所述系统用于生成指令,所述指令使一个或更多个处理器在并行执行矩阵乘法运算时将所述一个或更多个非零值的索引存储在一个或更多个线程可访问的存储器中。

12.如权利要求9所述的系统,其中所述操作是稀疏矩阵乘法运算,其中所述系统用于接收一个或更多个指令以执行所述稀疏矩阵乘法运算,并且其中所述系统用于生成将由一个或更多个驱动器使用以执行所述操作的可执行指令。

13.如权利要求9所述的系统,其中所述操作用于使编译器接收具有稀疏信息的一个或更多个第一指令,并编译所述一个或更多个第一指令以生成一个或更多个第二指令,所述一个或更多个第二指令能够由图形处理单元(gpu)执行以利用所述稀疏信息执行矩阵乘法运算。

14.如权利要求9所述的系统,其中所述操作包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加(imma)运算、单精度矩阵乘法运算或浮点乘法和累加运算。

15.如权利要求9所述的系统,其中执行所述操作包括:使编译器修改有向无环图(dag)接口,以接收具有所述一个或更多个数据矩阵的稀疏信息的一个或更多个指令。

16.如权利要求9所述的系统,其中指示一个或更多个数据矩阵内的一个或更多个非零值包括:使所述一个或更多个电路执行编译器,以生成将由一个或更多个图形处理核心使用以执行一个或更多个矩阵乘法运算的操作数,其中所述操作数包括所述一个或更多个矩阵的索引信息。

17.一种机器可读介质,其上存储有一个或更多个指令,所述一个或更多个指令如果由一个或更多个处理器执行,则使一个或更多个处理器至少:

18.如权利要求17所述的机器可读介质,其中指示包括:使一个或更多个处理器将所述一个或更多个非零值的索引值存储在一个或更多个图形处理核心可访问的存储器中。

19.如权利要求17所述的机器可读介质,其中所述系统用于生成指令,所述指令使一个或更多个处理器在并行执行矩阵乘法运算时将所述一个或更多个非零值的索引存储在一个或更多个线程可访问的存储器中。

20.如权利要求17所述的机器可读介质,其中所述操作是稀疏矩阵乘法运算,并且其中执行所述稀疏矩阵乘法包括生成将由一个或更多个驱动器使用以执行所述操作的可执行指令。

21.如权利要求17所述的机器可读介质,其中所述操作用于使编译器接收具有稀疏信息的一个或更多个第一指令,并编译所述一个或更多个第一指令以生成一个或更多个第二指令,所述一个或更多个第二指令能够由图形处理单元(gpu)执行以利用所述稀疏信息执行矩阵乘法运算。

22.如权利要求17所述的机器可读介质,其中所述操作包括执行半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加运算(imma)、单精度矩阵乘法运算或乘法和累加运算。

23.如权利要求17所述的机器可读介质,其中执行所述操作用于使编译器修改有向无环图(dag)接口,以接收具有稀疏信息的一个或更多个指令。

24.如权利要求17所述的机器可读介质,其中指示一个或更多个数据矩阵内的一个或更多个非零值包括:使编译器生成将由一个或更多个图形处理核心使用以执行包括稀疏矩阵的一个或更多个矩阵乘法运算的操作数。

25.一种方法,包括:

26.如权利要求25所述的方法,所述方法还包括:

27.如权利要求25所述的方法,其中所述方法进一步包括:

28.如权利要求25所述的方法,其中所述操作是稀疏矩阵乘法运算,其中所述方法进一步包括:

29.如权利要求25所述的方法,其中所述方法进一步包括:

30.如权利要求25所述的方法,其中所述方法进一步包括:

31.如权利要求25所述的方法,其中所述方法进一步包括:

32.如权利要求25所述的方法,其中所述方法进一步包括:

33.一种处理器,包括:

34.如权利要求33所述的处理器,其中所述一个或更多个电路用于响应于所述api的一个或更多个输出来生成用于压缩所述一个或更多个数据矩阵的一个或更多个指令。

35.如权利要求33所述的处理器,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在数据结构中。

36.如权利要求33所述的处理器,其中所述一个或更多个电路用于响应于接收到用于利用一个或更多个图形处理核心执行稀疏矩阵乘法运算的一个或更多个指令来执行所述api。

37.如权利要求33所述的处理器,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在一个或更多个图形处理单元可访问的数组中。

38.如权利要求33所述的处理器,其中一个或更多个处理器执行所述api用于使一个或更多个图形处理单元的一个或更多个编译器生成一个或更多个指令以使一个或更多个图形处理单元执行压缩操作。

39.如权利要求33所述的处理器,其中一个或更多个处理器执行所述api用于通过压缩所述一个或更多个矩阵的一个或更多个行来压缩所述一个或更多个数据矩阵。

40.如权利要求33所述的处理器,其中一个或更多个处理器用于通过使所述一个或更多个矩阵的一个或更多个列被压缩来执行所述api。

41.如权利要求33所述的处理器,其中压缩用于使所述一个或更多个数据矩阵以压缩格式存储在向量、数组或表中,其中所述压缩格式能够由一个或更多个图形处理单元的一个或更多个驱动器访问。

42.一种系统,包括存储器,其用于存储指令,所述指令作为由一个或更多个处理器执行的结果,使所述系统:

43.如权利要求42所述的系统,其中所述系统用于响应于所述api的一个或更多个输出来生成用于压缩所述一个或更多个数据矩阵的一个或更多个指令。

44.如权利要求42所述的系统,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在数据结构中。

45.如权利要求42所述的系统,其中所述系统用于响应于接收到至少部分地基于所述稀疏矩阵的非零值的一个或更多个指示利用一个或更多个图形处理核心执行稀疏矩阵乘法运算的一个或更多个指令来执行所述api。

46.如权利要求42所述的系统,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在一个或更多个图形处理核心可访问的数组中。

47.如权利要求42所述的系统,其中执行所述api用于使一个或更多个图形处理单元的一个或更多个编译器生成一个或更多个指令,以使一个或更多个图形处理单元执行压缩操作。

48.如权利要求42所述的系统,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个行来压缩一个或更多个数据矩阵。

49.如权利要求42所述的系统,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个列来压缩一个或更多个数据矩阵。

50.一种机器可读介质,其上存储有一个或更多个指令,所述一个或更多个指令如果由一个或更多个处理器执行,则使一个或更多个处理器至少:

51.如权利要求50所述的机器可读介质,其中所述一个或更多个指令如果由一个或更多个处理器执行,则进一步使一个或更多个处理器至少:

52.如权利要求50所述的机器可读介质,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在一个或更多个图形处理核心的一个或更多个线程可访问的数据结构中。

53.如权利要求50所述的机器可读介质,其中所述一个或更多个指令如果由一个或更多个处理器执行,则进一步使一个或更多个处理器至少:

54.如权利要求50所述的机器可读介质,其中压缩包括:将所述一个或更多个数据矩阵的非零值存储在一个或更多个图形处理核心可访问的数组中。

55.如权利要求50所述的机器可读介质,其中执行所述api用于使一个或更多个图形处理单元的一个或更多个编译器生成一个或更多个指令,其中所述一个或更多个指令使所述一个或更多个图形处理单元执行一个或更多个压缩操作。

56.如权利要求50所述的机器可读介质,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个行来压缩一个或更多个数据矩阵。

57.如权利要求50所述的机器可读介质,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个列来压缩一个或更多个数据矩阵。

58.一种方法,包括:

59.如权利要求58所述的方法,进一步包括:

60.如权利要求58所述的方法,进一步包括:

61.如权利要求58所述的方法,其中执行所述api是响应于接收到用于利用一个或更多个图形处理单元执行稀疏矩阵乘法运算的一个或更多个指令。

62.如权利要求58所述的方法,其中压缩包括:

63.如权利要求58所述的方法,还包括:

64.如权利要求58所述的方法,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个行来压缩一个或更多个数据矩阵。

65.如权利要求58所述的方法,其中所述api用于通过压缩所述一个或更多个矩阵的一个或更多个列来压缩一个或更多个数据矩阵。

66.一种处理器,包括:

67.如权利要求65所述的处理器,其中所述mma运算包括用于至少部分地基于稀疏矩阵的非零值的一个或更多个指示以及所述两个或更多个矩阵包含压缩数据而利用一个或更多个图形处理单元执行乘法运算的一个或更多个指令。

68.如权利要求65所述的处理器,其中一个或更多个电路用于至少部分地基于一个或更多个压缩矩阵来执行一个或更多个矩阵乘法运算。

69.如权利要求65所述的处理器,其中所述压缩数据包括所述两个或更多个矩阵中的所述至少一个矩阵的非零值。

70.如权利要求65所述的处理器,其中所述运算包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加(imma)运算、单精度矩阵乘法运算或浮点乘法和累加运算。

71.如权利要求65所述的处理器,其中执行所述mma运算包括:编译器接收一个或更多个指令以压缩稀疏矩阵、接收一个或更多个第二指令以存储所述一个或更多个矩阵的所述非零值的索引,以及接收一个或更多个第三指令以将所述mma运算的乘积扩展为等于输入矩阵大小的矩阵大小。

72.如权利要求65所述的处理器,其中执行所述操作用于使编译器修改有向无环图(dag)接口,以接收具有稀疏信息的一个或更多个指令。

73.如权利要求65所述的处理器,其中执行包括:所述一个或更多个电路生成指令,以利用一个或更多个图形处理核心并行执行所述mma运算。

74.一种系统,包括用于存储指令的存储器,所述指令作为由一个或更多个处理器执行的结果,使所述系统:

75.如权利要求73所述的系统,其中所述mma运算用于使编译器生成用于至少部分地基于稀疏矩阵的非零值的一个或更多个指示以及所述两个或更多个矩阵包含压缩数据来执行乘法运算的一个或更多个指令。

76.如权利要求73所述的系统,其中所述系统用于至少部分地基于一个或更多个压缩矩阵来执行一个或更多个矩阵乘法运算。

77.如权利要求73所述的系统,其中所述压缩数据包括所述两个或更多个矩阵中的所述至少一个矩阵的非零值。

78.如权利要求73所述的系统,其中所述mma运算包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加运算(imma)或单精度矩阵乘法运算。

79.如权利要求73所述的系统,其中执行所述mma运算包括:编译器接收一个或更多个指令以压缩稀疏矩阵,接收一个或更多个第二指令以存储所述一个或更多个矩阵的所述非零值的索引,以及接收一个或更多个第三指令以将所述mma运算的乘积扩展为等于输入矩阵大小的矩阵大小。

80.如权利要求73所述的系统,其中执行所述操作用于使编译器修改有向无环图(dag)接口,以接收具有稀疏信息的一个或更多个指令。

81.如权利要求73所述的系统,其中执行包括:所述一个或更多个电路生成指令,以利用一个或更多个图形处理核心并行执行所述mma运算。

82.一种机器可读介质,其上存储有一个或更多个指令,所述一个或更多个指令如果由一个或更多个处理器执行,则使一个或更多个处理器至少:

83.如权利要求81所述的机器可读介质,其中所述一个或更多个指令如果由一个或更多个处理器执行,则进一步使一个或更多个处理器至少:

84.如权利要求81所述的机器可读介质,其中所述一个或更多个指令如果由一个或更多个处理器执行,则进一步使一个或更多个处理器至少:

85.如权利要求81所述的机器可读介质,其中所述压缩数据包括所述两个或更多个矩阵中的所述至少一个矩阵的非零值。

86.如权利要求81所述的机器可读介质,其中所述mma运算包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加运算(imma)或单精度矩阵乘法运算。

87.如权利要求81所述的机器可读介质,其中所述一个或更多个指令如果由一个或更多个处理器执行,则进一步使一个或更多个处理器至少:

88.一种方法,包括:

89.如权利要求87所述的方法,还包括:

90.如权利要求87所述的方法,进一步包括:

91.如权利要求87所述的方法,进一步包括:

92.如权利要求87所述的方法,其中执行包括:

93.如权利要求87所述的方法,其中所述运算包括半精度矩阵乘法和累加(hmma)运算、整数矩阵乘法和累加(imma)运算、单精度矩阵乘法运算或浮点乘法和累加运算。

94.一种处理器,包括:

95.如权利要求93所述的处理器,其中所述一个或更多个电路用于至少部分地基于一个或更多个第二指令来生成一个或更多个第一指令以解压缩一个或更多个矩阵。

96.如权利要求93所述的处理器,其中用于解压缩的api是用于执行一个或更多个稀疏矩阵乘法运算的api库的一部分。

97.如权利要求93所述的处理器,其中所述一个或更多个电路用于响应于利用一个或更多个图形处理核心执行稀疏矩阵乘法运算来解压缩一个或更多个数据矩阵。

98.如权利要求93所述的处理器,其中解压缩包括:基于存储在一个或更多个图形处理核心可访问的存储器中的非零值的指示将压缩矩阵转换为稀疏矩阵。

99.如权利要求93所述的处理器,其中解压缩包括:至少部分地基于所存储的非零值的索引值,将零作为值存储为一个或更多个矩阵值。

100.如权利要求93所述的处理器,其中解压缩包括:基于稀疏矩阵乘法运算的结果和压缩矩阵的非零值的索引值生成乘积矩阵。

101.如权利要求93所述的处理器,其中解压缩包括:使用分散向量来生成包括稀疏矩阵的零值的乘积矩阵。

102.如权利要求93所述的处理器,其中api的一个或更多个输出用于使一个或更多个处理器至少部分地基于压缩矩阵乘法的输入矩阵的非零元素的索引值将所述压缩矩阵乘法的结果转换为稀疏矩阵。

103.一种系统,包括存储器,其用于存储指令,所述指令作为由一个或更多个处理器执行的结果,使所述系统:

104.如权利要求102所述的系统,其中所述系统用于至少部分地基于一个或更多个第二指令来生成一个或更多个第一指令以解压缩一个或更多个矩阵。

105.如权利要求102所述的系统,其中所述系统用于响应于接收到用于利用一个或更多个图形处理核心执行稀疏矩阵乘法运算的一个或更多个指令,来解压缩一个或更多个数据矩阵。

106.如权利要求102所述的系统,其中解压缩包括:至少部分地基于所存储的非零值的索引值来生成零作为值。

107.如权利要求102所述的系统,其中解压缩包括至少部分地基于所存储的非零值的索引值,将零作为值存储为一个或更多个矩阵值。

108.如权利要求102所述的系统,其中解压缩包括:基于稀疏矩阵乘法运算的结果和压缩矩阵的非零值的索引值生成乘积矩阵。

109.如权利要求102所述的系统,其中解压缩包括:使用分散向量来生成包括稀疏矩阵的零值的乘积矩阵。

110.如权利要求102所述的系统,其中api的一个或更多个输出用于使一个或更多个处理器至少部分地基于压缩矩阵乘法的输入矩阵的非零元素的索引值将所述压缩矩阵乘法的结果转换为稀疏矩阵。

111.一种机器可读介质,其上存储有一个或更多个指令,所述一个或更多个指令如果由一个或更多个处理器执行,则使一个或更多个处理器至少:

112.如权利要求110所述的机器可读介质,其中所述一个或更多个电路用于至少部分地基于一个或更多个第二指令来生成一个或更多个第一指令,以解压缩一个或更多个矩阵。

113.如权利要求110所述的机器可读介质,其中用于解压缩的api是用于执行一个或更多个稀疏矩阵乘法运算的api库的一部分。

114.如权利要求110所述的机器可读介质,其中所述一个或更多个电路用于响应于利用一个或更多个图形处理核心执行稀疏矩阵乘法运算来解压缩一个或更多个数据矩阵。

115.如权利要求110所述的机器可读介质,其中解压缩包括:基于存储在一个或更多个图形处理核心可访问的存储器中的非零值的指示来将压缩矩阵转换为稀疏矩阵。

116.如权利要求110所述的机器可读介质,其中解压缩包括:至少部分地基于所存储的非零值的索引值,将零作为值存储为一个或更多个矩阵值。

117.如权利要求110所述的机器可读介质,其中解压缩包括:基于稀疏矩阵乘法运算的结果和压缩矩阵的非零值的索引值生成乘积矩阵。

118.如权利要求110所述的机器可读介质,其中解压缩包括:使用分散向量来生成包括稀疏矩阵的零值的乘积矩阵。

119.一种方法,包括:

120.如权利要求118所述的方法,进一步包括:

121.如权利要求118所述的方法,其中用于解压缩的api是用于执行一个或更多个稀疏矩阵乘法运算的api库的一部分。

122.如权利要求118所述的方法,进一步包括:

123.如权利要求118所述的方法,进一步包括:

124.如权利要求118所述的方法,进一步包括:


技术总结
用于执行操作以指示一个或更多个数据矩阵内的一个或更多个非零值;执行API以压缩一个或更多个数据矩阵;对两个或更多个数据矩阵执行矩阵乘法累加(MMA)运算,其中所述两个或更多个矩阵中的至少一个矩阵包含压缩数据;和/或执行API以解压缩一个或更多个数据矩阵的装置、系统和技术。在至少一个实施例中,一个或更多个电路被配置为接收和编译一个或更多个指令以执行用于稀疏矩阵乘法的计算操作。

技术研发人员:辛哉昱,B·K·Y·阿图库里,E·H·格尼什,J·文卡塔斯
受保护的技术使用者:辉达公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1