CN117786297A - 算子运算方法、装置、电子设备和存储介质 - Google Patents
算子运算方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117786297A CN117786297A CN202311827823.7A CN202311827823A CN117786297A CN 117786297 A CN117786297 A CN 117786297A CN 202311827823 A CN202311827823 A CN 202311827823A CN 117786297 A CN117786297 A CN 117786297A
- Authority
- CN
- China
- Prior art keywords
- operator
- matrix
- identity matrix
- tensor
- candidate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000011159 matrix material Substances 0.000 claims abstract description 319
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 8
- 230000008707 rearrangement Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 13
- 230000004044 response Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000008030 elimination Effects 0.000 description 7
- 238000003379 elimination reaction Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- IZUPBVBPLAPZRR-UHFFFAOYSA-N pentachlorophenol Chemical compound OC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl IZUPBVBPLAPZRR-UHFFFAOYSA-N 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供一种算子运算方法、装置、电子设备和存储介质,所述方法包括:响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵;在张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果。本发明提供的算子运算方法、装置、电子设备和存储介质,响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,从而能够在算力较高的张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,快速得到运算结果,提高算子运算速度。
Description
技术领域
本发明涉及神经网络推理技术领域,尤其涉及一种算子运算方法、装置、电子设备和存储介质。
背景技术
算子性能优化是指对深度学习模型中的基本计算算子(如卷积算子(cov算子)、重排算子(permute算子)等)进行针对性的优化,以提高其计算效率和性能,也就是算子性能优化旨在使得深度学习模型在训练和推理过程中能够更快速地完成计算任务,从而提高整体的效率和性能表现。
相关技术中,多通过对待运算算子进行算子消除以实现算子性能优化,但并非所有场景都能进行算子消除,例如某些算子对整个模型结构有依赖关系,消除这些算子可能会破坏模型的完整性和准确性,也就是在某些场景下,算子消除可能会导致模型性能下降或产生错误输出。
发明内容
本发明提供一种算子运算方法、装置、电子设备和存储介质,用以解决现有技术中通过算子消除的方式进行算子性能优化无法适用于所有场景的缺陷。
本发明提供一种算子运算方法,包括:
响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;
在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
根据本发明提供的一种算子运算方法,所述基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵,包括:
基于所述输入张量的形状,以及所述输出张量的形状,构造所述单位矩阵。
根据本发明提供的一种算子运算方法,所述输入张量的形状包括所述输入张量的行数和所述输入张量列数,所述输出张量的形状包括所述输出张量的行数和所述输出张量的列数;
所述基于所述输入张量的形状,以及所述输出张量的形状,构造所述单位矩阵,包括:
基于所述输入张量的行数或所述输出张量的列数,构建第一候选单位矩阵;
基于所述输入张量的列数或所述输出张量的行数,构建第二候选单位矩阵;
基于所述第一候选单位矩阵对应的运算代价,以及所述第二候选单位矩阵对应的运算代价,从所述第一候选单位矩阵和所述第二候选单位矩阵中确定所述单位矩阵。
根据本发明提供的一种算子运算方法,所述基于所述第一候选单位矩阵对应的运算代价,以及所述第二候选单位矩阵对应的运算代价,从所述第一候选单位矩阵和所述第二候选单位矩阵中确定所述单位矩阵,包括:
从所述第一候选单位矩阵和所述第二候选单位矩阵中选取运算代价最小的候选单位矩阵作为所述单位矩阵。
根据本发明提供的一种算子运算方法,所述第一候选单位矩阵的运算代价基于如下步骤确定:
基于所述输入张量的转置矩阵的形状,以及所述第一候选单位矩阵的形状,确定所述输入张量的转置矩阵与所述第一候选单位矩阵的第一矩阵乘运算量;
基于所述第一候选单位矩阵的形状,确定所述第一候选单位矩阵的第一占用内存量;
基于所述第一矩阵乘运算量,以及所述第一占用内存量,确定所述第一候选单位矩阵的运算代价。
根据本发明提供的一种算子运算方法,所述第二候选单位矩阵的运算代价基于如下步骤确定:
基于所述输入张量的转置矩阵的形状,以及所述第二候选单位矩阵的形状,确定所述输入张量的转置矩阵与所述第二候选单位矩阵的第二矩阵乘运算量;
基于所述第二候选单位矩阵的形状,确定所述第二候选单位矩阵的第二占用内存量;
基于所述第二矩阵乘运算量,以及所述第二占用内存量,确定所述第二候选单位矩阵的运算代价。
根据本发明提供的一种算子运算方法,所述基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果,之前还包括:
将所述待运算算子替换为矩阵乘法算子。
根据本发明提供的一种算子运算方法,所述待运算算子为重排算子。
本发明还提供一种算子运算方法装置,包括:
构造单元,用于响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;
运算单元,用于在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述算子运算方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述算子运算方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述算子运算方法。
本发明提供的算子运算方法、装置、电子设备和存储介质,响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,从而能够在算力较高的张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,快速得到运算结果,提高算子运算速度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的算子运算方法的流程示意图;
图2是本发明提供的第一候选单位矩阵的构建流程示意图;
图3是本发明提供的为第二候选单位矩阵的构建流程示意图;
图4是本发明提供的第一候选单位矩阵的运算代价确定方法的流程示意图;
图5是本发明提供的第二候选单位矩阵的运算代价确定方法的流程示意图;
图6是本发明提供的算子运算装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,多通过对待运算算子进行算子消除以实现算子性能优化,但并非所有场景都能进行算子消除,例如某些算子对整个模型结构有依赖关系,消除这些算子可能会破坏模型的完整性和准确性,也就是在某些场景下,算子消除可能会导致模型性能下降或产生错误输出。此处,待运算算子可以为permute算子。
此外,相关技术中对于无法消除的算子,通常采用向量核(vector core)来实现相应的算子运算,但向量核的算力较低,进而导致算子运算速度较慢。
对此,本发明提供一种算子运算方法。图1是本发明提供的算子运算方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤110、响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵。
步骤120、在张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果。
此处,待运算算子即需要进行算子运算的算子,如待运算算子可以为permute算子。待运算算子对应的输入张量指待运算算子进行算子操作的原始数据,其通常可以理解为模型的输入或者上一层的输出。待运算算子对应的输出张量指对输入张量进行算子操作后得到的结果数据,其通常可以理解为模型的输出或者下一层的输入。
此外,待运算算子对应的算子操作可以理解为对待运算算子对应的输入张量进行的具体操作,该操作可以包括数学运算、向量化操作、卷积操作、池化操作等。换言之,待运算算子的算子操作是用于对输入张量进行变换和处理,以得到输出张量。
考虑到张量核(Tensor core)的算力远高于向量核,因此为了提高运算速度,本发明实施例在张量核上进行算子运算。然而,张量核上进行运算的形式为ATE(其中,A为任意矩阵,AT为A的转置矩阵,E为单位矩阵),也就是说,在张量核上进行相应算子运算的要求为:①待运算算子对应的算子操作为张量转置操;②构建得到对应的单位矩阵。
对此,在待运算算子对应的算子操作是将最内层两个轴进行对换的情况下,表明对输入张量进行的算子操作为张量转置操作,满足在张量核上进行相应算子运算的要求①。
例如,输入张量的形状为(A,B,C,D,),输出张量的形状为(A,B,D,C),即待运算算子对应的算子操作为对输入张量的最内层两个轴进行了对换,得到输出张量,也就是对输入张量进行了转置操作。
在满足要求①的基础上,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,以满足要求②。其中,在构造单位矩阵时,需要满足如下条件:输入张量的转置矩阵与单位矩阵进行矩阵乘运算时,得到的运算结果对应的矩阵形状与输出张量的形状相同。其中,单位矩阵在进行矩阵乘运算时可以为左矩阵,也可以为右矩阵,本发明实施例对此不作具体限定。
在构建得到单元矩阵后,由于张量核的算力较高,从而在张量核,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,能够快速得到运算结果。
本发明实施例提供的算子运算方法,响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,从而能够在算力较高的张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,快速得到运算结果,提高算子运算速度。
作为一种可选实施例,待运算算子可以是文本生成模型中的算子,输入张量可以是基于文本生成模型的输入文本确定的,即输入张量与输入文本相关。进一步地,将输入文本输入至文本生成模型,提取得到输入张量,并对输入张量采用上述实施例的方法执行待运算算子对应的算子运算操作,从而能够快速得到输出张量,并基于输出张量快速得到输入文本对应的输出文本,也就是采用上述实施例的方法提高了文本生成模型的文本生成效率。
基于上述实施例,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,包括:
基于输入张量的形状,以及输出张量的形状,构造单位矩阵。
具体地,输入张量的形状用于表征输入张量在各维度上的尺寸大小,如输入张量在行方向上的大小(即输入张量的行数),输入张量在列方向上的大小(即输入张量的列数)。同理,输出张量的形状用于表征输出张量在各维度上的尺寸大小,如输出张量在行方向上的大小(即输出张量的行数),输出张量在列方向上的大小(即输出张量的列数)。
在构造单位矩阵时,为了实现输入张量与输出张量逻辑上等效算子语义表达,需要满足如下条件:输入张量的转置矩阵与单位矩阵进行矩阵乘运算时,得到的运算结果对应的矩阵形状与输出张量的形状相同。
可选地,在单位矩阵为左矩阵时,运算结果对应的矩阵为“单位矩阵×输入张量的转置矩阵”,该矩阵形状需与输出张量的形状相同。在单位矩阵为右矩阵时,运算结果对应的矩阵为“输入张量的转置矩阵×单位矩阵”,该矩阵形状需与输出张量的形状相同。
基于上述任一实施例,输入张量的形状包括输入张量的行数和输入张量列数,输出张量的形状包括输出张量的行数和输出张量的列数;
基于输入张量的形状,以及输出张量的形状,构造单位矩阵,包括:
基于输入张量的行数或输出张量的列数,构建第一候选单位矩阵;
基于输入张量的列数或输出张量的行数,构建第二候选单位矩阵;
基于第一候选单位矩阵对应的运算代价,以及第二候选单位矩阵对应的运算代价,从第一候选单位矩阵和第二候选单位矩阵中确定单位矩阵。
具体地,由于待运算算子对应的算子操作是将最内层两个轴进行对换,即将输入张量的行与列进行了对换后,得到输出张量,也就是输入张量的行数与输出张量的列数相同,输入张量的列数与输出张量的行数相同。
基于输入张量的行数或输出张量的列数,构建得到的第一候选单位矩阵为右矩阵,即第一候选单位矩阵的行数和列数相同,且第一候选单位矩阵的行数和列数等于输入张量的行数,也等于输出张量的列数。
基于输入张量的列数或输出张量的行数,构建得到的第二候选单位矩阵为左矩阵,即第二候选单位矩阵的行数和列数相同,且第二候选单位矩阵的行数和列数等于输入张量的列数,也等于输出张量的行数。
图2是本发明提供的第一候选单位矩阵的构建流程示意图,如图2所示,输入张量input0的形状为[128,256],输出张量input1的形状为[256,128],待运算算子为重排算子(permute),对应输入张量input0的转置矩阵input0 T的形状为[256,128],构建得到的第一候选单位矩阵eye0为右矩阵,其形状为[128,128],进而输入张量input0的转置矩阵与第一候选单位矩阵eye0进行矩阵乘算子操作(gemm)后得到的结果矩阵output的形状为[256,128],与输出张量input1的形状相同。
图3是本发明提供的为第二候选单位矩阵的构建流程示意图,如图3所示,输入张量input0的形状为[128,256],输出张量input1的形状为[256,128],待运算算子为重排算子(permute),对应输入张量input0的转置矩阵input0 T的形状为[256,128],构建得到的第一候选单位矩阵eye1为左矩阵,其形状为[256,256],进而输入张量input0的转置矩阵与第一候选单位矩阵eye0进行矩阵乘算子操作(gemm)后得到的结果矩阵output的形状为[256,128],与输出张量input1的形状相同。
此外,运算代价通常可以包括计算代价和存储代价。其中,计算代价用于表征对应运算的计算复杂度,如运算量越大,计算复杂度越大,对应的计算代价越大。存储代价用于表征对应运算所占用的内存量,占用内存量越大,存储代价越大。
其中,在选取单位矩阵时,可以从第一候选单位矩阵和第二候选单位矩阵中选取运算代价最小的候选单位矩阵作为单位矩阵,从而可以保证运算的计算复杂度最低且占用内存量最小,以提高运算速度。
基于上述任一实施例,第一候选单位矩阵的运算代价基于如下步骤确定:
基于输入张量的转置矩阵的形状,以及第一候选单位矩阵的形状,确定输入张量的转置矩阵与第一候选单位矩阵的第一矩阵乘运算量;
基于第一候选单位矩阵的形状,确定第一候选单位矩阵的第一占用内存量;
基于第一矩阵乘运算量,以及第一占用内存量,确定第一候选单位矩阵的运算代价。
具体地,根据输入张量的转置矩阵的形状和第一候选单位矩阵的形状,可以确定输入张量的转置矩阵与第一候选单位矩阵的矩阵乘运算量。例如,若输入张量的转置矩阵的形状为m×n,第一候选单位矩阵的形状为n×n,则第一矩阵乘运算量为:计算m×n个数,且每个数对应的计算次数为n×(n-1)。
根据第一候选单位矩阵的形状,可以确定第一候选单位矩阵的占用内存量。例如,第一候选单位矩阵的形状为n×n,则第一占用内存量为n×n。
最后,根据第一矩阵乘运算量和第一占用内存量,可以确定第一候选单位矩阵的运算代价。可选地,可以基于运算代价与矩阵乘运算量和占用内存量的函数关系,确定第一候选单位矩阵的运算代价。其中,该函数关系可以通过对不同矩阵乘运算量、不同占用内存量以及对应的运算代价进行拟合分析得到。
相应地,基于上述确定第一候选单位矩阵的运算代价相同方法,确定第二候选单位矩阵的运算代价:
基于输入张量的转置矩阵的形状,以及第二候选单位矩阵的形状,确定输入张量的转置矩阵与第二候选单位矩阵的第二矩阵乘运算量;
基于第二候选单位矩阵的形状,确定第二候选单位矩阵的第二占用内存量;
基于第二矩阵乘运算量,以及第二占用内存量,确定第二候选单位矩阵的运算代价。
图4是本发明提供的第一候选单位矩阵的运算代价确定方法的流程示意图,如图4所示,第一矩阵乘运算量为:计算256×128个数,且每个数对应的计算次数为128×(128-1)。第一占用内存量为第一候选单位矩阵eye0所占用内存量:128×128。
图5是本发明提供的第二候选单位矩阵的运算代价确定方法的流程示意图,如图5所示,第二矩阵乘运算量为:计算256×128个数,且每个数对应的计算次数为256×(256-1)。第二占用内存量为第二候选单位矩阵eye1所占用内存量:256×256。
由图5和图6可知,第一矩阵乘运算量小于第二矩阵乘运算量,且第一占用内存量小于第二占用内存量,因此第一候选单位矩阵对应的运算代价小于第二候选单位矩阵对应的运算代价,进而可以选取运算代价较小的第一候选单位矩阵作为单位矩阵。
基于上述任一实施例,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果,之前还包括:
将待运算算子替换为矩阵乘法算子。
具体地,由于输入张量的转置矩阵以及单位矩阵所进行的是矩阵乘运算,因此将待运算算子替换为矩阵乘法算子(gemm),从而可以基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果。其中,待运算算子为重排算子(permute)。
表1为采用向量核和张量核分别进行算子运算的性能对比列表,如表1所示,性能倍数=在张量核上运算的时钟周期(cycle数)/在向量核上运算的时钟周期(cycle数),由表1可知,在张量核上运算的时钟周期明显少于在向量核上运算的时钟周期,即在张量核上运算时运算速度较高。
表1
下面对本发明提供的算子运算装置进行描述,下文描述的算子运算装置与上文描述的算子运算方法可相互对应参照。
基于上述任一实施例,图6是本发明提供的算子运算装置的结构示意图,如图6所示,该装置包括:
构造单元610,用于响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于待运算算子对应的输入张量和输出张量,构造单位矩阵;
运算单元620,用于在张量核上,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果。
基于上述任一实施例,基于待运算算子对应的输入张量和输出张量,构造单位矩阵,包括:
基于输入张量的形状,以及输出张量的形状,构造单位矩阵。
基于上述任一实施例,输入张量的形状包括输入张量的行数和输入张量列数,输出张量的形状包括输出张量的行数和输出张量的列数;
基于输入张量的形状,以及输出张量的形状,构造单位矩阵,包括:
基于输入张量的行数或输出张量的列数,构建第一候选单位矩阵;
基于输入张量的列数或输出张量的行数,构建第二候选单位矩阵;
基于第一候选单位矩阵对应的运算代价,以及第二候选单位矩阵对应的运算代价,从第一候选单位矩阵和第二候选单位矩阵中确定单位矩阵。
基于上述任一实施例,基于第一候选单位矩阵对应的运算代价,以及第二候选单位矩阵对应的运算代价,从第一候选单位矩阵和第二候选单位矩阵中确定单位矩阵,包括:
从第一候选单位矩阵和第二候选单位矩阵中选取运算代价最小的候选单位矩阵作为单位矩阵。
基于上述任一实施例,第一候选单位矩阵的运算代价基于如下步骤确定:
基于输入张量的转置矩阵的形状,以及第一候选单位矩阵的形状,确定输入张量的转置矩阵与第一候选单位矩阵的第一矩阵乘运算量;
基于第一候选单位矩阵的形状,确定第一候选单位矩阵的第一占用内存量;
基于第一矩阵乘运算量,以及第一占用内存量,确定第一候选单位矩阵的运算代价;
相应地,第二候选单位矩阵的运算代价基于如下步骤确定:
基于输入张量的转置矩阵的形状,以及第二候选单位矩阵的形状,确定输入张量的转置矩阵与第二候选单位矩阵的第二矩阵乘运算量;
基于第二候选单位矩阵的形状,确定第二候选单位矩阵的第二占用内存量;
基于第二矩阵乘运算量,以及第二占用内存量,确定第二候选单位矩阵的运算代价。
基于上述任一实施例,基于输入张量的转置矩阵以及单位矩阵进行矩阵乘运算,得到运算结果,之前还包括:
将待运算算子替换为矩阵乘法算子。
基于上述任一实施例,待运算算子为重排算子。
图7是本发明提供的电子设备的结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、存储器(memory)720、通信接口(Communications Interface)730和通信总线740,其中,处理器710,存储器720,通信接口730通过通信总线740完成相互间的通信。处理器710可以调用存储器720中的逻辑指令,以执行算子运算方法,该方法包括:响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
此外,上述的存储器720中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的算子运算方法,该方法包括:响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的算子运算方法,该方法包括:响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种算子运算方法,其特征在于,包括:
响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;
在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
2.根据权利要求1所述的算子运算方法,其特征在于,所述基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵,包括:
基于所述输入张量的形状,以及所述输出张量的形状,构造所述单位矩阵。
3.根据权利要求2所述的算子运算方法,其特征在于,所述输入张量的形状包括所述输入张量的行数和所述输入张量列数,所述输出张量的形状包括所述输出张量的行数和所述输出张量的列数;
所述基于所述输入张量的形状,以及所述输出张量的形状,构造所述单位矩阵,包括:
基于所述输入张量的行数或所述输出张量的列数,构建第一候选单位矩阵;
基于所述输入张量的列数或所述输出张量的行数,构建第二候选单位矩阵;
基于所述第一候选单位矩阵对应的运算代价,以及所述第二候选单位矩阵对应的运算代价,从所述第一候选单位矩阵和所述第二候选单位矩阵中确定所述单位矩阵。
4.根据权利要求3所述的算子运算方法,其特征在于,所述基于所述第一候选单位矩阵对应的运算代价,以及所述第二候选单位矩阵对应的运算代价,从所述第一候选单位矩阵和所述第二候选单位矩阵中确定所述单位矩阵,包括:
从所述第一候选单位矩阵和所述第二候选单位矩阵中选取运算代价最小的候选单位矩阵作为所述单位矩阵。
5.根据权利要求3所述的算子运算方法,其特征在于,所述第一候选单位矩阵的运算代价基于如下步骤确定:
基于所述输入张量的转置矩阵的形状,以及所述第一候选单位矩阵的形状,确定所述输入张量的转置矩阵与所述第一候选单位矩阵的第一矩阵乘运算量;
基于所述第一候选单位矩阵的形状,确定所述第一候选单位矩阵的第一占用内存量;
基于所述第一矩阵乘运算量,以及所述第一占用内存量,确定所述第一候选单位矩阵的运算代价。
6.根据权利要求3所述的算子运算方法,其特征在于,所述第二候选单位矩阵的运算代价基于如下步骤确定:
基于所述输入张量的转置矩阵的形状,以及所述第二候选单位矩阵的形状,确定所述输入张量的转置矩阵与所述第二候选单位矩阵的第二矩阵乘运算量;
基于所述第二候选单位矩阵的形状,确定所述第二候选单位矩阵的第二占用内存量;
基于所述第二矩阵乘运算量,以及所述第二占用内存量,确定所述第二候选单位矩阵的运算代价。
7.根据权利要求1至6任一项所述的算子运算方法,其特征在于,所述基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果,之前还包括:
将所述待运算算子替换为矩阵乘法算子。
8.根据权利要求1至6任一项所述的算子运算方法,其特征在于,所述待运算算子为重排算子。
9.一种算子运算装置,其特征在于,包括:
构造单元,用于响应于待运算算子对应的算子操作是将最内层两个轴进行对换,基于所述待运算算子对应的输入张量和输出张量,构造单位矩阵;
运算单元,用于在张量核上,基于所述输入张量的转置矩阵以及所述单位矩阵进行矩阵乘运算,得到运算结果。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述算子运算方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述算子运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311827823.7A CN117786297A (zh) | 2023-12-27 | 2023-12-27 | 算子运算方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311827823.7A CN117786297A (zh) | 2023-12-27 | 2023-12-27 | 算子运算方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117786297A true CN117786297A (zh) | 2024-03-29 |
Family
ID=90388919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311827823.7A Pending CN117786297A (zh) | 2023-12-27 | 2023-12-27 | 算子运算方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117786297A (zh) |
-
2023
- 2023-12-27 CN CN202311827823.7A patent/CN117786297A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bouboulis et al. | Online distributed learning over networks in RKH spaces using random Fourier features | |
Su et al. | Vitas: Vision transformer architecture search | |
CN107944545B (zh) | 应用于神经网络的计算方法及计算装置 | |
CN105512723A (zh) | 一种用于稀疏连接的人工神经网络计算装置和方法 | |
CN114764549B (zh) | 基于矩阵乘积态的量子线路模拟计算方法、装置 | |
CN107451097B (zh) | 国产申威26010众核处理器上多维fft的高性能实现方法 | |
CN108171328B (zh) | 一种神经网络处理器和采用其执行的卷积运算方法 | |
CN111461335B (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
CN112200300A (zh) | 卷积神经网络运算方法及装置 | |
CN113344172A (zh) | 将卷积映射到通道卷积引擎 | |
Zhang et al. | Automatic design of deterministic and non-halting membrane systems by tuning syntactical ingredients | |
CN116128019A (zh) | Transformer模型的并行训练方法及装置 | |
Chowdhury et al. | A computational model for tensor core units | |
KR20230104235A (ko) | 워크로드 균형 활성화 희소성을 가진 컨볼루션을 위한 방법 및 시스템 | |
CN112613577A (zh) | 神经网络的训练方法、装置、计算机设备及存储介质 | |
CN112132281A (zh) | 一种基于人工智能的模型训练方法、装置、服务器及介质 | |
CN117786297A (zh) | 算子运算方法、装置、电子设备和存储介质 | |
Ivutin et al. | Design efficient schemes of applied algorithms parallelization based on semantic Petri-Markov net | |
Liao et al. | Reduced-complexity deep neural networks design using multi-level compression | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
CN113297860A (zh) | 机器翻译模型的优化方法、***、电子设备和存储介质 | |
CN112862071A (zh) | 一种数据处理方法及装置 | |
CN113869517A (zh) | 一种基于深度学习模型的推理方法 | |
EP4273758A1 (en) | Quantum preprocessing method and apparatus, storage medium, and electronic apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |