CN115617351A - 算子的切分图样搜索方法、装置、计算机设备及存储介质 - Google Patents
算子的切分图样搜索方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115617351A CN115617351A CN202211503027.3A CN202211503027A CN115617351A CN 115617351 A CN115617351 A CN 115617351A CN 202211503027 A CN202211503027 A CN 202211503027A CN 115617351 A CN115617351 A CN 115617351A
- Authority
- CN
- China
- Prior art keywords
- segmentation
- operator
- target
- tensor
- pattern
- 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.)
- Granted
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 540
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000001914 filtration Methods 0.000 claims abstract description 40
- 238000005259 measurement Methods 0.000 claims abstract description 31
- 239000002356 single layer Substances 0.000 claims description 8
- 238000003909 pattern recognition Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 28
- 239000011159 matrix material Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4432—Reducing the energy consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了算子的切分图样搜索方法、装置、计算机设备及存储介质。该方法包括:获取目标算子在目标芯片中的切分搜索空间:切分搜索空间中包括多个切分图样;根据多项切分约束条件在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;使用各备选切分图样对目标算子的标准算子实现进行编译,得到对应的目标算子实现;在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样分别对应的实测数据;根据各所述实测数据,在各备选切分图样中得到目标算子在目标芯片中的目标切分图样。通过本发明实施例的技术方案,能够快速识别出芯片中各算子较优的切分图样,使得芯片的算力能够得到充分的发挥。
Description
技术领域
本发明实施例涉及计算机硬件技术,具体涉及人工智能芯片技术,尤其涉及一种算子的切分图样搜索方法、装置、计算机设备及存储介质。
背景技术
AI芯片,例如,DLA(DeepLearningAccelerator,深度学习加速器),在开发完成后,一般都具有理论计算性能,也就是该AI芯片在理想情况下能够达到的最佳算力。AI芯片的理论计算性能由芯片理论运算能力决定,但是AI芯片的实际计算性能由AI芯片的数据存储方式(例如,单级存储或者多级存储)、带宽大小、芯片理论运算能力以及路由分配方式等综合因素来决定。
AI芯片的软件栈中内置有多个算子,在基于算子的实现过程中,输入数据流的不同切分方式(也即,切分图样)会决定数据存储方式和带宽需求,因而对AI芯片的计算性能影响很大。现有技术中,主要通过开发者对软件和硬件的先验知识来确定算子在不同的张量形状对应的切分方式,实现效率低,对开发者要求高,且往往未必能真正的确定出算子的最佳切分方式,
因此,如何快速的识别AI芯片中各算子较佳的切分方式,充分发挥AI芯片的计算性能,已成为目前亟待解决的问题。
发明内容
本发明提供一种算子的切分图样搜索方法、装置、计算机设备及存储介质,以实现快速、准确的确定出AI芯片中各算子较佳的切分图样。
第一方面,本发明实施例提供了一种算子的切分图样搜索方法,包括:
获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
第二方面,本发明实施例还提供了一种算子的切分图样搜索装置,该装置包括:
切分搜索空间获取模块,用于获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
备选切分图样获取模块,用于根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
算子实现获取模块,用于使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
运行结果数据获取模块,用于在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
目标切分图样识别模块,用于根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的算子的切分图样搜索方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的算子的切分图样搜索方法。
本发明实施例的技术方案,通过获取目标算子在目标芯片中的切分搜索空间,并根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样,之后,使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,并分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据,最后,根据各实测数据,在各备选切分图样中得到目标算子在目标芯片中的代价最优的目标切分图样;代价包括且不限于单算子运行时间,功耗,算力功耗比,包括特定上下文的算子的运行时间,功耗,算力功耗比等,解决了现有技术中无法准确、有效的识别出各算子对应的高效切分图样,对开发人员的经验依赖性大的问题,能够快速、准确的识别出芯片中各算子代价较优的切分图样,使得芯片的功耗约束能够满足,算力能够得到充分的发挥。
附图说明
图1是现有技术中的一种DLA的多级存储结构示意图;
图2是本发明实施例一中的一种算子的切分图样搜索方法的流程图;
图3a是本发明实施例二中的一种算子的切分图样搜索方法的流程图;
图3b是本发明实施例二中的一种算子参数的标准张量形状确定方法的流程图;
图3c是本发明实施例二中的一种可选的算子的切分图样搜索方法的流程图;
图4是本发明实施例三中的一种算子的切分图样搜索装置的结构示意图;
图5是本发明实施例四中的一种计算机设备的结果示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
为了后文便于描述,首先将本发明各实施例的发明构思进行简单介绍。首先,在AI芯片中,选取具有三层存储的DLA为例,计算基于DLA的算子切分方式的选取过程。
其中,在图1中示出了现有技术中的一种DLA多级存储的结构示意图。如图1所示,DLA中包含三层存储,每个DLA中包含多个簇,每个簇中包含多个计算单元,每个计算单元包含一个或多个乘法器阵列。各存储层级的存储容量自上而下逐级降低,带宽和访问速度逐级增加。当数据流输入至DLA时,输入数据自上而下的穿过多级存储,输出数据再自下而上的穿过多级存储。
以用于实现矩阵乘法的目标算子为例,假设预先规定该目标算子的左操作数张量形状为M*K,右操作数张量形状为K*N,计算结果的张量形状为M*N。进而,当一个形如M*K的左操作数,和一个形如K*N的右操作数输入至DLA后,DLA可以在每层存储中,均确定相应的切分方式,进而,当输入数据在经过上述三级存储最终输入至乘法器阵列中进行计算,并将计算结果逐级返回至DLA中进行合并存储的过程中,需要分别确定出左操作数、右操作数以及计算结果在簇中的切分方式{M0*K0,K0*N0,M0*N0},在计算单元内的切分方式{M1*K10,K11*N1,M1*N1},以及在乘法器阵列中的切分方式{M2*K20,K21*N2,M2*N2}。
在本实施例中,以确定设定算子在设定AI芯片内的切分方式为例,首先确定出与一个算子对应的全部算子参数,也即,前例的左操作数、右操作数以及计算结果,以及,芯片中包括的全部存储层级。之后,获取该算子的每个算子参数在每个存储层级下全部的备选切分方式(先不考虑合理性),并按照各种约束条件,例如,硬件约束条件以及软件栈约束条件等,逐步在上述各备选切分方式中滤除不满足约束条件的各切分方式,以删除上述各备选切分方式中大多数的不合理切分方式。最后,当剩余少数几个备选切分方式时,可以实测当输入数据按照剩余的各备选切分方式进行切分时,AI芯片基于该算子的计算性能,以在最后针对该算子所剩余的这些备选切分方式中,最终筛选出在每个存储层级的各方面性能表现较优的切分方式,并将该算子的上述切分方式在该芯片中进行存储,以供该芯片对该算子的调用执行时使用。
实施例一
图2为本发明实施例一提供的一种算子的切分图样搜索方法的流程图,本实施例可适用于快速、准确的确定出一个算子在一个AI芯片各存储层级中的切分方式的情况,该方法可以由算子的切分图样搜索装置来执行,该装置可采用硬件和/或软件的方式实现,并一般可以集成在具有数据处理功能的计算机设备中,具体包括如下步骤:
S110、获取目标算子在目标芯片中的切分搜索空间;其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式。
其中,目标芯片可以指与目标算子所适配的AI芯片。目标算子可以指目标芯片中的一个待检测的算子;算子可以指对函数或参数进行映射、变换或运算等操作的符号,示例性的,可以为加法算子、积分算子或概率算子等。
切分搜索空间可以指将目标算子配置于目标芯片之后,该目标算子的每个算子参数在目标芯片的每个存储层级下的全部切分方式的集合。
示例性的,可以根据目标算子的算子参数以及目标芯片的存储层级,共同确定该目标算子在目标芯片中的切分搜索空间。
其中,算子参数具体是指算子在完成相应计算时所需依赖的数据项。可选的,算子参数可以包括目标算子的输入数据以及输出结果等。可以理解的是,算子参数的数据形式一般是一个设定维度数的张量,且在每个张量维度下具有相应的数据尺寸。进而,每个算子参数可以在每个张量维度下进行相应的切分。
示例性的,以目标算子为矩阵乘法算子为例,输入数据由左操作数和右操作数组成,其中,左操作数的张量形状为M*K,右操作数的张量形状为K*N,也即,左操作数有两个张量维度,第一张量维度的尺寸为M个数据元素,第二张量维度的尺寸为K个数据元素;右操作数同样有两个张量维度,第一张量维度的尺寸为K个数据元素,第二张量维度的尺寸为N个数据元素,进而,左操作数在第一张量维度上理论可以有M种切分方式,左操作数在第二张量维度上理论可以有K种切分方式;右操作数在第一张量维度上理论可以有K种切分方式,右操作数在第二张量维度上理论可以有N种切分方式。同时,假设该目标算子配置于具有两个存储层级的目标AI芯片上,则该矩阵乘法算子在目标AI芯片上的切分搜索空间即可以为:
{1:M}×{1:K}×{1:K}×{1:N}×{1:M}×{1:K}×{1:K}×{1:N};
其中,第一组{1:M}×{1:K}×{1:K}×{1:N}代表左操作数和右操作数在第一存储层级上的全部切分方式,第二组{1:M}×{1:K}×{1:K}×{1:N}代表左操作数和右操作数在第二存储层级上的全部切分方式。如果将上述切分搜索空间看做一个八维张量的话,则上述八维张量共有M*K*K*N*M*K*K*N个切分图样。
其中,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式。也即,当唯一确定上述八维张量在每个张量维度下的唯一取值后,相当于确定出一个完整的切分图样,也即将该矩阵乘法算子运行于目标AI芯片时,针对矩阵乘法算子的一个完整的切分方式集合。
S120、根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样。
其中,备选切分图样可以指经过滤除后剩余的切分方式。切分约束条件可以指对切分搜索空间中不满足要求的切分图样进行滤除的条件,示例性的,可以为滤除切分搜索空间中图样重复的切分图样,也可以为滤除切分搜索空间中图样效果不佳的切分图样等。
其中,切分约束条件是指预先构建的可量化的约束规则,该切分约束条件中可以包括软件约束条件,例如,软件栈对最大或者最小切分的限定,也可以包括硬件约束条件,例如,对每个存储层级的存储空间大小的约束,对相邻存储层级的切分方式的倍数关系限定等。
其中,上述各切分约束条件,可以为计算机通过统计分析大量的算子切分方式后自动生成的约束规则,也可以为以算子切分方式为训练集生成的神经网络,也可以为AI芯片或者软件栈开发人员根据实际的开发场景预先设置的约束规则,本实施例对此并不限定。
可以理解的是,有些切分约束条件是无法直接使用数学表达式明确表达的约束规则,可能会涉及更加复杂,无法量化的抽象内容,进而,可以预先构建用于表达上述切分约束条件的神经网络,通过将切分搜索空间输入至上述神经网络中,可以得到滤除无效切分图样后的结果数据。
可以理解的是,通过将切分搜索空间中的每个切分图样与上述各切分约束条件进行匹配筛选,可以逐次筛选出不满足切分约束条件的各无效切分图样,以最终保留出满足切分约束条件的备选切分图样。
具体的,如果将切分搜索空间看做一个多维平面,则既可以以多维平面中的点为单位,筛选出无效切分图样,还可以以多维平面中的一个或者多个截面为单位,单次滤除该截面下的多个无效切分图样,本实施例对此并不进行限制。
S130、使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数。
其中,标准算子实现可以指与用于实现目标算子功能的软件或者硬件实现,可以理解为目标算子的功能配置模板。该标准算子实现中包含有待配置的切分参数,通过对该切分参数进行配置,该目标算子可以按照配置结果对输入参数进行相应的切分处理。通过使用各备选切分图样对上述切分参数进行配置,可以得到用于实现每个备选切分图样的目标算子实现。
目标算子实现,可以理解为不含有切分参数的算子实现,也即,一个目标算子实现会按照其所配置的备选切分图样执行相应的算子功能。
S140、在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据。
其中,实测数据可以指各目标算子实现在目标芯片中运行后所得的测试数据,示例性的,可以包括各目标算子实现对应的切分结果数据。
或者,该实测数据中还可以包含各目标算子实现在实际运行后的运行性能数据,例如,计算时间或者计算功耗等,本实施例对此并不进行限制。
S150、根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
其中,目标切分图样可以指目标算子的各算子参数在目标芯片的各存储层级下的一个较优的切分方式。
理想情况下,最终获取得到的目标切分图样即为最优切分图样。所谓理想情况,是指对滤除无效切分后的每个备选切分图样均计算相应的实测数据,并选择与最优实测数据对应的切分图样。但是,如果从性能角度引入了一些加速算法,则该目标切分图样有可能不是最优切分图样,但是其也是一定约束范围内的较优解。
示例性的,可以在与备选切分图样分别对应的结果数据中,获取最接近真实值的实测数据,并将与该实测数据所对应的备选切分图样作为目标切分图样。或者,还可以获取与计算耗时最短的实测数据所对应的备选切分图样作为目标切分图样;或者,还可以同时根据实测数据的准确性以及计算耗时,共同确定出目标切分图样等,本实施例对此并不进行限制。
在一个可选的实施方式中,根据所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样,可以包括:
根据预设的正确实现约束,在各所述实测数据中识别目标实测数据,并获取与所述目标实测数据匹配的目标切分图样。其中,正确实现约束可以指对各实测数据的正确性进行判定的条件。目标实测数据可以指符合正确性约束的实测数据。
在另一个可选的实施方式中,所述正确实现约束包括:正确性约束和精准度约束中的至少一项。其中,正确性约束可以指对实测数据的正确性进行约束,示例性的,可以为滤除与实际实测数据相比准确率较低的实测数据。精准度约束可以指对实测数据的精准度进行约束,示例性的,可以为滤除各实测数据中较实际实测数据偏差较大的实测数据。由此,可以通过正确性约束和精准度约束中的至少一项实现对各实测数据的判定,进而,获取与目标运行结果数据匹配的目标切分图样。
本发明实施例的技术方案,通过获取目标算子在目标芯片中的切分搜索空间,并根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样,之后,使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,并分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据,最后,根据运行各实测数据,在各备选切分图样中得到目标算子在目标芯片中的代价最优的目标切分图样;代价包括且不限于单算子运行时间,功耗,算力功耗比,包括特定上下文的算子的运行时间,功耗,算力功耗比等,解决了现有技术中无法准确、有效的识别出各算子对应的高效切分图样,对开发人员的经验依赖性大的问题,能够快速、准确的识别出芯片中各算子较优的切分图样,使得芯片的算力功耗约束能够满足,能够得到充分的发挥。
在本实施例的一个可选的实施方式中,根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样,可以包括:
根据第一类切分约束条件,在所述切分搜索空间中,滤除多个维度截面,得到切分搜索子空间;其中,所述维度截面为设定算子参数的设定张量维度在设定存储层级中全部切分方式的子集;根据第二类切分约束条件,在所述切分搜索子空间中,滤除多个无效切分图样,得到多个备选切分图样。
续前例,形如{1:M}×{1:K}×{1:K}×{1:N}×{1:M}×{1:K}×{1:K}×{1:N}的切分搜索空间中,矩阵乘法算子的左操作数的第一张量维度在第一存储层级下的全部切分方式为{1:M},上述内容可以理解为八维张量空间中的一个维度平面,不考虑八维张量空间中的其他维度平面,直接在该{1:M}中滤除切分方式,可以理解为在切分搜索空间中,滤除了维度截面。
其中,第一类切分约束条件可以指对切分搜索空间的无效的维度截面进行滤除的条件;示例性的,第一类切分约束条件可以为滤除切分搜索空间中不满足切分倍数要求的维度截面,也可以为滤除切分搜索空间中不能对硬件计算单元的算力充分利用的维度截面。
续前例,针对存储层级为二级的AI芯片,矩阵乘法算子的切分搜索空间为:{1:M}×{1:K}×{1:K}×{1:N}×{1:M}×{1:K}×{1:K}×{1:N},则可以得到{1:M}、{1:K}、{1:K}、{1:N}、{1:M}、{1:K}、{1:K}及{1:N}8个维度空间。每个维度空间中的一个维度点,为该维度空间下的一个维度截面。可以理解的是,一个维度点对应于该切分搜索空间中的一组切分图样。
切分搜索子空间可以指滤除多个维度截面后,每个维度空间下的剩余维度截面共同组成的切分搜索空间。
第二类切分约束条件可以指对切分搜索子空间内的一个空间点或者多个空间点进行无效滤除的条件。其中,一个空间点可以理解为同时指定每个维度空间中的具体维度点后,由上述各维度点共同组成的,位于该切分搜索子空间内的一个点。可以理解的是,每个空间点对应于切分搜索子空间中的一个切分图样。
示例性的,可以根据切分图样的容量大小进行第二类切分约束条件的设置,也可以根据切分图样的实现方式进行第二类切分约束条件的设置。
相应的,首先,在切分搜索空间中滤除掉不满足第一类切分约束条件的多个维度截面,生成切分搜索子空间;进一步的,在切分搜索子空间中滤除掉不满足第二类切分约束条件的多个无效切分图样,得到多个备选切分图样。由此,通过对维度截面以及无效切分图样进行滤除,可以实现首先以维度截面为单位,成批的滤除掉该切分搜索空间中的大量无效切分图样,再以实际的切分图样为单位,逐个的滤除无效切分图样,提高了无效切分图样的滤除效率,减少了上述滤除过程的复杂度。
可选的,所述第一类切分约束条件可以包括:不同存储层级间的切分倍数约束以及硬件计算单元的约束中的至少一项;
所述第二类切分约束条件包括已使用内存容量的约束、数据预取方式的约束、数据流实现的约束以及数据流性能的约束中的至少一项。
其中,不同存储层级间的切分倍数约束可以指各存储层级间切分倍数的约束,通常,为了便于数据搬运和数据存储,不同存储层级之间的切分尺寸呈倍数关系。
示例性的,可以设定第一存储层级中的切分尺度为第二存储层级的切分尺寸的2倍。相应的,当第一存储层级的切分尺寸为512bit时,相当于每次从第一存储层级搬运512bit的数据至第二存储层级。基于上述倍数关系,第二存储层级在每次获取到512bit的数据时,将该数据分为2个256bit的数据,分别搬运至第三存储层级。
硬件计算单元的约束可以指按照硬件计算单元的并行度对维度截面进行约束。例性的,可以设定各维度截面中数据流的并行度为硬件计算单元的并行度的整数倍;具体的,若硬件计算单元的并行度为100,则各维度截面中数据流的并行度为200或300等100的整数倍时,满足硬件计算单元的约束。
已使用内存容量的约束可以指对各算子参数所能占用的内存容量的约束,示例性的,矩阵乘法算子的左操作数与右操作数构成的数据集合,在每个存储层级中不能超过该存储层级为矩阵乘法算子所分配的总的存储空间。
数据预取方式的约束可以指根据各算子参数是否采取预取方式搬运至相应的存储层级中进行预存,示例性的,若采取数据预取方式,则在考虑已使用内存容量的约束时,需要将提前预取得数据量也考虑进来。
数据流实现的约束可以指根据预先设定的数据流实现方式对当前数据流的判定约束。
数据流性能的约束可以指根据预选设定的数据流性能标准对当前数据流的判定约束。
由此,通过设置各种类型的约束条件,可以后续为维度截面滤除及无效切分图样滤除提供有效的基础,进而可以将无效切分图样进行最大程度的滤除。
实施例二
图3a为本发明实施例二提供的一种算子的切分图样搜索方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中将获取目标算子在目标芯片中的切分搜索空间的操作,进一步细化为:获取目标算子中各算子参数的标准张量形状,以及所述目标芯片中包括的存储层级数量;根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间。如图3a所示,该方法包括:
S210、获取目标算子中各算子参数的标准张量形状,以及所述目标芯片中的存储层级数量。
其中,标准张量形状可以指将该目标算子适配于AI芯片后,针对目标算子的每个算子参数所实际设置的张量形状。也即,需要在AI芯片的各存储层级下逐级切分的数据的张量尺寸。一般来说,标准张量形状可以指目标算子的计算效率较高时,对应的算子参数的张量形状。
例如,当需要将一个形如M*K的左操作数,和一个形如K*N的右操作数输入至DLA时,上述M*K和K*N即为与左操作数和右操作数对应的标准张量形状。
在一个可选的实施方式中,获取目标算子中各算子参数的标准张量形状,可以包括:
获取目标算子中各算子参数的原始张量形状;根据各所述原始张量形状的数值特征,和/或所述目标芯片中的硬件计算单元并行度,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状。
其中,原始张量形状可以指为目标算子的每个算子参数预先设置的初始化的张量形状,其中,原始张量形状可以根据目标算子的具体应用场景进行预设。
在本实施例中,考虑到原始张量形状的确定方式比较自由,基于原始张量形状生成切分搜索空间时,可能会将一些较优的切分图样漏掉,进而,为了使得最终得到的切分搜索空间可以最大程度的包含各种类型的切分图样,需要预先对原始张量进行填充处理,得到匹配的标准张量形状。
数值特征可以指原始张量形状符合质数特征或合数特征,也可以是指原始张量形状的数值大小的特征。示例性的,若除1和原始张量形状自身外,该原始张量形状没法被其他自然数整除,则该原始张量形状的数值特征即为质数特征。
硬件计算单元并行度可以指可以在同一时间进行并行计算的硬件计算单元的单元数量。
填充处理可以指对原始张量形状进行数据填充,示例性的,可以为将原始张量形状填充至指定大小,例如,将形如M*K的原始张量形状直接填充至形如W*V的标准张量形状,其中,W大于M,V大于K。
或者,也可以对原始张量形状填充预设数值,例如,将形如M*K的原始张量形状直接填充至形如(M+1)*(K+1)的标准张量形状。
可选的,在图3b中使出了一种根据各所述原始张量形状的数值特征,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状的流程示意图。如图3b所示,该方法包括:
S2110、获取与当前算子参数对应的当前张量形状。
其中,当前算子参数为目标算子中的一个算子参数,当前张量形状初始化为该当前算子参数的原始张量形状。
例如,针对矩阵乘法算子的左操作数,其原始张量形状(也即,当前张量形状的初始值)为X*Y。
S2120、在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量。
续前例,针对上述左操作数,其共包括两个张量维度,一个是元素数量为X的第一张量维度,另一个是元素数量为Y的第二张量维度。
其中,当前张量维度,是指在当前张量形状中依次选取的一个张量维度。
S2130、获取与所述元素数量匹配的拆分因子集合,并检测所述拆分因子集合中包括的标准拆分因子的数量值。
S2140、检测所述数量值是否满足数量值门限条件:若是,执行S2150;否则,执行S2160。
S2150、检测是否完成对当前张量形状中全部张量维度的处理,若是,执行S2170;否则,返回执行S2120。
S2160、对所述元素数量进行加一填充后,返回执行S2130。
S2170、将当前张量形状确定为标准张量形状。
其中,拆分因子可以指对当前张量维度中的元素数量进行数值拆分后得到的各数值,示例性的,若当前张量维度中的元素数量为7,进行数值拆分后,得到的拆分因子即为1和7;若当前张量维度中的元素数量为8,进行数值拆分后,得到的拆分因子即为1,2,4或8。标准拆分因子可以指预先设定的拆分因子,示例性的,可以将标准拆分因子设为10或25等。数量值门限条件可以指对拆分因子集合中包括的标准拆分因子的数量值的评估数值,示例性的,可以设为3或4。
具体的,计算当前张量形状在当前张量维度中包括的元素数量的拆分因子集合,并判断该拆分因子集合中包括的标准拆分因子的数量值是否满足数量值门限条件,若不满足数量值门限条件,则对元素数量进行加一填充后,重新计算当前张量形状在当前张量维度中包括的元素数量的拆分因子集合,直至该拆分因子集合中包括的标准拆分因子的数量值满足数量值门限条件,在当前张量形状中依次获取当前张量维度,以得到与当前算子参数对应的标准张量形状。由此,解决了当前张量形状在当前张量维度中包括的元素数量不能被合理拆分,以致目标算子的计算效率降低的问题,提高了目标算子识别切分图样的速率。
可选的,根据所述目标芯片中的硬件计算单元并行度,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状,可以包括:
获取与当前算子参数对应的当前张量形状;在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量;如果确定所述元素数量小于所述硬件计算单元并行度,则将所述元素数量填充至所述硬件计算单元并行度;返回执行在当前张量形状中依次获取当前张量维度的操作,以得到与所述当前算子参数对应的标准张量形状。
具体的,将当前张量形状在当前张量维度中包括的元素数量与硬件计算单元并行度进行比较,若当前张量形状在当前张量维度中包括的元素数量小于硬件计算单元并行度,则将该当前张量形状在当前张量维度中包括的元素数量填充至硬件计算单元并行度,以得到与当前算子参数对应的标准张量形状。由此,解决了硬件计算单元不能被充分利用的问题,可以在充分利用硬件计算单元的同时,提高目标算子识别切分图样的速率。
S220、根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间。
在一个可选的实施方式中,根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间,可以包括:
根据每个算子参数的标准张量形状,确定每个算子参数在每个张量维度下的全部切分方式;根据每个算子参数在每个张量维度下的全部切分方式,生成单层切分搜索空间;根据所述单层切分搜索空间,以及所述存储层级数量,生成所述切分搜索空间。
其中,单层切分搜索空间可以指单存储层级中的切分搜索空间。具体的,可以根据各算子参数的标准张量形状,得到各算子参数在各张量维度中的全部切分方式,并生成单层切分搜索空间;进一步的,将各个层级的单层切分搜索空间进行组合,生成切分搜索空间。由此,可以根据各个单存储层级的单层切分搜索空间形成切分搜索空间。
S230、根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样。
S240、使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数。
S250、在目标芯片中分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据。
S260、根据预设的正确实现约束,在各所述实测数据中识别目标实测数据,并获取与所述目标实测数据匹配的目标切分图样。
本发明实施例的技术方案,通过利用目标算子中各算子参数的标准张量形状,以及目标芯片中包括的存储层级数量,得到目标算子在目标芯片中的切分搜索空间,进一步的,根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;进而,使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,并在目标芯片中分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据,并根据预设的正确实现约束,在各实测数据中得到目标实测数据,最终,获取与目标实测数据匹配的目标切分图样,解决了现有技术中无法快速识别出各算子对应的切分图样的问题,可以使得芯片的功耗约束能够满足,算力能够得到充分的发挥。
在一个可选的实施方式中,在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,还可以包括:
按照不同切分图样间的等价性约束规则,在全部备选切分图样,识别至少一个等价切分图样集,每个等价切分图样集中包括多个具有等价关系的等价切分图样;滤除每个等价切分图样集中包括的至少一个等价切分图样。
其中,等价性约束规则可以指将具有相同或者相近的计算性能的各切分图样进行等价的规则,如果算子中某些维度执行顺序的先后以及这些维度切分大小的交换,对AI芯片的性能基本不会带来影响,则表明这些维度具有对称性。若两个切分图样的切分方式并不相同,但是考虑到维度的对称性后,最终的切分结果相同,则该两个切分图样满足等价性约束规则。示例性的,若A切分图样为左操作数切分在H和W维度为[A, B],B切分图样为左操作数切分在H和W维度为[B, A],则A切分图样与B切分图样对AI芯片的性能基本一致,则A切分图样与B切分图样满足等价性约束规则。等价切分图样可以指满足等价性约束规则的切分图样。
具体的,在各备选切分图样中筛选出满足等价性约束规则的切分图样,组成等价切分图样集,进一步的,将等价切分图样集中的至少一个等价切分图样进行滤除。由此,可以进一步的减少备选切分图样的数量,避免使用相同切分结果的切分图样,引起的资源浪费问题。
在另一个可选的实施方式中,在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,还包括:
按照预设的切分性能确定规则,确定各所述备选切分图样的切分性能等级;根据所述切分性能等级,在各所述备选切分图样中,滤除低性能切分图样。
其中,切分性能确定规则可以指对各备选切分图样的切分性能进行评估的规则。切分性能等级可以指各备选切分图样的切分性能的等级,示例性的,可以为分为高级、中级和低级。具体的,可以按照预设的切分性能确定规则对各备选切分图样的切分性能等级进行评估,并滤除低等级的切分图样,保留高等级和中等级的切分图样。由此,可以提高切分结果的准确性。
图3c是本发明实施例二中的一种可选的算子的切分图样搜索方法的流程图;具体的,获取目标算子中各算子参数的原始张量形状,之后,根据各原始张量形状的数值特征,和/或目标芯片中的硬件计算单元并行度,对各原始张量形状进行填充处理,得到各算子参数的标准张量形状;进而,根据各标准张量形状,以及存储层级数量,获取目标算子在目标芯片中的切分搜索空间;进一步的,在切分搜索空间中逐次滤除不满足不同存储层级间的切分倍数约束、硬件计算单元的约束、已使用内存容量的约束、数据预取方式的约束、数据流实现的约束以及数据流性能的约束的无效切分图样,得到多个备选切分图样;最终,在目标芯片中,按照各备选切分图样分别运行设定的实测数据,得到与每个备选切分图样分别对应的运行结果数据,并根据正确性约束和精准度约束在各运行结果数据中识别目标运行结果数据,以获取与目标运行结果数据匹配的较优切分图样(即目标切分图样)。
实施例三
图4为本发明实施例三提供的一种算子的切分图样搜索装置的结构示意图,该装置可以执行上述各实施例中涉及到的算子的切分图样搜索方法。该装置可采用软件和/或硬件的方式实现,如图4所示,所述算子的切分图样搜索装置具体包括:切分搜索空间获取模块310、备选切分图样获取模块320、算子实现获取模块330、运行结果数据获取模块340、目标切分图样识别模块350。
其中,切分搜索空间获取模块310,用于获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
备选切分图样获取模块320,用于根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
算子实现获取模块330,用于使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
运行结果数据获取模块340,用于在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
目标切分图样识别模块350,用于根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
本发明实施例的技术方案,通过获取目标算子在目标芯片中的切分搜索空间,并根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样,之后,使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,并分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据,最后,根据各实测数据,在各备选切分图样中得到目标算子在目标芯片中的代价最优的目标切分图样;代价包括且不限于单算子运行时间,功耗,算力功耗比,包括特定上下文的算子的运行时间,功耗,算力功耗比等,解决了现有技术中无法准确、有效的识别出各算子对应的高效切分图样,对开发人员的经验依赖性大的问题,能够快速、准确的识别出芯片中各算子代价较优的切分图样,使得芯片的功耗约束能够满足,算力能够得到充分的发挥。
可选的,切分搜索空间获取模块310具体可以包括:数据获取单元及切分搜索空间获取单元;
其中,数据获取单元,用于获取目标算子中各算子参数的标准张量形状,以及所述目标芯片中的存储层级数量;
切分搜索空间获取单元,用于根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间。
可选的,切分搜索空间获取单元,具体可以用于:根据每个算子参数的标准张量形状,确定每个算子参数在每个张量维度下的全部切分方式;根据每个算子参数在每个张量维度下的全部切分方式,生成单层切分搜索空间;根据所述单层切分搜索空间,以及所述存储层级数量,生成所述切分搜索空间。
可选的,数据获取单元,具体可以用于:获取目标算子中各算子参数的原始张量形状;根据各所述原始张量形状的数值特征,和/或所述目标芯片中的硬件计算单元并行度,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状。
可选的,数据获取单元,具体可以用于:获取与当前算子参数对应的当前张量形状;在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量;获取与所述元素数量匹配的拆分因子集合,并检测所述拆分因子集合中包括的标准拆分因子的数量值;如果确定所述数量值不满足数量值门限条件,则对所述元素数量进行加一填充后,返回执行获取与所述元素数量匹配的拆分因子集合的操作,直至满足所述数量值门限条件;返回执行在当前张量形状中依次获取当前张量维度的操作,以得到与所述当前算子参数对应的标准张量形状。
可选的,数据获取单元,具体可以用于:获取与当前算子参数对应的当前张量形状;在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量;如果确定所述元素数量小于所述硬件计算单元并行度,则将所述元素数量填充至所述硬件计算单元并行度;返回执行在当前张量形状中依次获取当前张量维度的操作,以得到与所述当前算子参数对应的标准张量形状。
可选的,备选切分图样获取模块320具体可以用于:根据第一类切分约束条件,在所述切分搜索空间中,滤除多个维度截面,得到切分搜索子空间;其中,所述维度截面为设定算子参数的设定张量维度在设定存储层级中全部切分方式的子集;根据第二类切分约束条件,在所述切分搜索子空间中,滤除多个无效切分图样,得到多个备选切分图样。
可选的,所述第一类切分约束条件包括不同存储层级间的切分倍数约束以及硬件计算单元的约束中的至少一项;所述第二类切分约束条件包括已使用内存容量的约束、数据预取方式的约束、数据流实现的约束以及数据流性能的约束中的至少一项。
可选的,算子的切分图样搜索装置还可以包括:
等价性约束模块,用于在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,按照不同切分图样间的等价性约束规则,在全部备选切分图样,识别至少一个等价切分图样集,每个等价切分图样集中包括多个具有等价关系的等价切分图样;滤除每个等价切分图样集中包括的至少一个等价切分图样。
可选的,算子的切分图样搜索装置还可以包括:
切分性能确定模块,用于在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,按照预设的切分性能确定规则,确定各所述备选切分图样的切分性能等级;根据所述切分性能等级,在各所述备选切分图样中,滤除低性能切分图样。
可选的,目标切分图样识别模块350具体可以用于:根据预设的正确实现约束,在各所述运实测数据中识别目标实测数据,并获取与所述目标实测数据匹配的目标切分图样。
可选的,所述正确实现约束包括:正确性约束和精准度约束中的至少一项。
本发明实施例所提供的算子的切分图样搜索装置可执行本发明任意实施例所提供的算子的切分图样搜索方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图5中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的算子的切分图样搜索方法对应的程序指令/模块(例如,算子的切分图样搜索装置中的切分搜索空间获取模块310、备选切分图样获取模块320、算子实现获取模块330、运行结果数据获取模块340和目标切分图样识别模块350)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的算子的切分图样搜索方法。
该方法包括:
获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种算子的切分图样搜索方法,该方法包括:
获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的算子的切分图样搜索方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述算子的切分图样搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (15)
1.一种算子的切分图样搜索方法,其特征在于,包括:
获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
2.根据权利要求1所述的方法,其特征在于,获取目标算子在目标芯片中的切分搜索空间,包括:
获取目标算子中各算子参数的标准张量形状,以及所述目标芯片中的存储层级数量;
根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间。
3.根据权利要求2所述的方法,其特征在于,根据各所述标准张量形状,以及所述存储层级数量,获取目标算子在目标芯片中的切分搜索空间,包括:
根据每个算子参数的标准张量形状,确定每个算子参数在每个张量维度下的全部切分方式;
根据每个算子参数在每个张量维度下的全部切分方式,生成单层切分搜索空间;
根据所述单层切分搜索空间,以及所述存储层级数量,生成所述切分搜索空间。
4.根据权利要求2所述的方法,其特征在于,获取目标算子中各算子参数的标准张量形状,包括:
获取目标算子中各算子参数的原始张量形状;
根据各所述原始张量形状的数值特征,和/或所述目标芯片中的硬件计算单元并行度,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状。
5.根据权利要求4所述的方法,其特征在于,根据各所述原始张量形状的数值特征,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状,包括:
获取与当前算子参数对应的当前张量形状;
在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量;
获取与所述元素数量匹配的拆分因子集合,并检测所述拆分因子集合中包括的标准拆分因子的数量值;
如果确定所述数量值不满足数量值门限条件,则对所述元素数量进行加一填充后,返回执行获取与所述元素数量匹配的拆分因子集合的操作,直至满足所述数量值门限条件;
返回执行在当前张量形状中依次获取当前张量维度的操作,以得到与所述当前算子参数对应的标准张量形状。
6.根据权利要求4所述的方法,其特征在于,根据所述目标芯片中的硬件计算单元并行度,对各所述原始张量形状进行填充处理,得到各算子参数的标准张量形状,包括:
获取与当前算子参数对应的当前张量形状;
在当前张量形状中依次获取当前张量维度,并获取当前张量维度中包括的元素数量;
如果确定所述元素数量小于所述硬件计算单元并行度,则将所述元素数量填充至所述硬件计算单元并行度;
返回执行在当前张量形状中依次获取当前张量维度的操作,以得到与所述当前算子参数对应的标准张量形状。
7.根据权利要求1所述的方法,其特征在于,根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样,包括:
根据第一类切分约束条件,在所述切分搜索空间中,滤除多个维度截面,得到切分搜索子空间;
其中,所述维度截面为设定算子参数的设定张量维度在设定存储层级中全部切分方式的子集;
根据第二类切分约束条件,在所述切分搜索子空间中,滤除多个无效切分图样,得到多个备选切分图样。
8.根据权利要求7所述的方法,其特征在于,所述第一类切分约束条件包括不同存储层级间的切分倍数约束以及硬件计算单元的约束中的至少一项;
所述第二类切分约束条件包括已使用内存容量的约束、数据预取方式的约束、数据流实现的约束以及数据流性能的约束中的至少一项。
9.根据权利要求1-8任一项所述的方法,其特征在于,在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,还包括:
按照不同切分图样间的等价性约束规则,在全部备选切分图样,识别至少一个等价切分图样集,每个等价切分图样集中包括多个具有等价关系的等价切分图样;
滤除每个等价切分图样集中包括的至少一个等价切分图样。
10.根据权利要求1-8任一项所述的方法,其特征在于,在根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样之后,还包括:
按照预设的切分性能确定规则,确定各所述备选切分图样的切分性能等级;
根据所述切分性能等级,在各所述备选切分图样中,滤除低性能切分图样。
11.根据权利要求1所述的方法,其特征在于,根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样,包括:
根据预设的正确实现约束,在各所述实测数据中识别目标实测数据,并获取与所述目标实测数据匹配的目标切分图样。
12.根据权利要求11所述的方法,其特征在于,所述正确实现约束包括:正确性约束和精准度约束中的至少一项。
13.一种算子的切分图样搜索装置,其特征在于,包括:
切分搜索空间获取模块,用于获取目标算子在目标芯片中的切分搜索空间:其中,切分搜索空间中包括多个切分图样,切分图样包括目标算子的每个算子参数的每个张量维度在目标芯片的每个存储层级中的切分方式;
备选切分图样获取模块,用于根据多项切分约束条件,在切分搜索空间中逐次滤除无效切分图样,得到多个备选切分图样;
算子实现获取模块,用于使用各备选切分图样对目标算子的标准算子实现进行编译,得到与各备选切分图样对应的目标算子实现,标准算子实现中包含待配置的切分参数;
运行结果数据获取模块,用于在目标芯片中,分别运行与各备选切分图样对应的目标算子实现,得到与每个备选切分图样对应的实测数据;
目标切分图样识别模块,用于根据各所述实测数据,在各备选切分图样中识别目标算子在目标芯片中的目标切分图样。
14.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的算子的切分图样搜索方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的算子的切分图样搜索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503027.3A CN115617351B (zh) | 2022-11-29 | 2022-11-29 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503027.3A CN115617351B (zh) | 2022-11-29 | 2022-11-29 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115617351A true CN115617351A (zh) | 2023-01-17 |
CN115617351B CN115617351B (zh) | 2023-03-21 |
Family
ID=84880616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211503027.3A Active CN115617351B (zh) | 2022-11-29 | 2022-11-29 | 算子的切分图样搜索方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617351B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114091685A (zh) * | 2021-11-08 | 2022-02-25 | 北京百度网讯科技有限公司 | 深度学习框架的张量切分方法、装置、设备和存储介质 |
CN114416045A (zh) * | 2020-10-28 | 2022-04-29 | 华为技术有限公司 | 自动生成算子的方法和装置 |
CN114596438A (zh) * | 2022-03-10 | 2022-06-07 | 南京邮电大学 | 一种求解基因芯片图像分割的Memetic方法 |
CN114626552A (zh) * | 2022-03-24 | 2022-06-14 | 阿里巴巴(深圳)技术有限公司 | 机器学习模型的切分方法和装置 |
CN114723014A (zh) * | 2022-04-20 | 2022-07-08 | 上海燧原科技有限公司 | 张量切分模式的确定方法、装置、计算机设备及介质 |
CN114841327A (zh) * | 2022-05-27 | 2022-08-02 | 北京字节跳动网络技术有限公司 | 计算图的处理方法、装置、可读介质及电子设备 |
CN114925830A (zh) * | 2022-05-31 | 2022-08-19 | 展讯通信(天津)有限公司 | 一种算子编译方法、装置和电子设备 |
-
2022
- 2022-11-29 CN CN202211503027.3A patent/CN115617351B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416045A (zh) * | 2020-10-28 | 2022-04-29 | 华为技术有限公司 | 自动生成算子的方法和装置 |
CN114091685A (zh) * | 2021-11-08 | 2022-02-25 | 北京百度网讯科技有限公司 | 深度学习框架的张量切分方法、装置、设备和存储介质 |
CN114596438A (zh) * | 2022-03-10 | 2022-06-07 | 南京邮电大学 | 一种求解基因芯片图像分割的Memetic方法 |
CN114626552A (zh) * | 2022-03-24 | 2022-06-14 | 阿里巴巴(深圳)技术有限公司 | 机器学习模型的切分方法和装置 |
CN114723014A (zh) * | 2022-04-20 | 2022-07-08 | 上海燧原科技有限公司 | 张量切分模式的确定方法、装置、计算机设备及介质 |
CN114841327A (zh) * | 2022-05-27 | 2022-08-02 | 北京字节跳动网络技术有限公司 | 计算图的处理方法、装置、可读介质及电子设备 |
CN114925830A (zh) * | 2022-05-31 | 2022-08-19 | 展讯通信(天津)有限公司 | 一种算子编译方法、装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
ANURAG DIXIT等: "Object Detection and Lane Segmentation Using Multiple" * |
MOB604756EA4C07: "新一代深度学习框架研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN115617351B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Benatia et al. | Sparse matrix format selection with multiclass SVM for SpMV on GPU | |
Zhang et al. | BoostGCN: A framework for optimizing GCN inference on FPGA | |
Arnaiz-González et al. | MR-DIS: democratic instance selection for big data by MapReduce | |
CN114327844A (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
CN106709503A (zh) | 一种基于密度的大型空间数据聚类算法k‑dbscan | |
CN115860081B (zh) | 一种芯粒算法调度方法、系统、电子设备及存储介质 | |
Yin et al. | An improved genetic algorithm for task scheduling in cloud computing | |
Li et al. | Fast density peaks clustering algorithm based on improved mutual K-nearest-neighbor and sub-cluster merging | |
Ismaeel et al. | An efficient workload clustering framework for large-scale data centers | |
CN112328332B (zh) | 一种面向云计算环境的数据库配置优化方法 | |
CN115617351B (zh) | 算子的切分图样搜索方法、装置、计算机设备及存储介质 | |
CN115858648A (zh) | 数据库生成方法、数据流切分方法、装置、设备及介质 | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
CN112148483A (zh) | 一种容器迁移方法及相关装置 | |
Gavagsaz | Efficient parallel processing of k-nearest neighbor queries by using a centroid-based and hierarchical clustering algorithm | |
Yang et al. | Parallel heuristics for balanced graph partitioning based on richness of implicit knowledge | |
Hamdi-Larbi et al. | Machine learning to design an auto-tuning system for the best compressed format detection for parallel sparse computations | |
CN111984418B (zh) | 稀疏矩阵向量乘并行任务粒度参数自动调优方法和装置 | |
CN110415162B (zh) | 大数据中面向异构融合处理器的自适应图划分方法 | |
CN113191540A (zh) | 一种产业链路制造资源的构建方法及装置 | |
CN111984652A (zh) | 一种位图数据中空闲块的查找方法及相关组件 | |
US12019964B1 (en) | Optimizing use of computer resources in implementing circuit designs through machine learning | |
CN115664748A (zh) | 访问控制模型中安全策略集的风险检测方法及装置 | |
Pinari | Parallel Implementations of the Skyline Query using PySpark | |
Kuo et al. | Improve the Performance of Parallel Reduction on General-Purpose Graphics Processor Units Using Prediction Models |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee after: Shanghai Suiyuan Technology Co.,Ltd. Country or region after: China Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Patentee before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. Country or region before: China |