CN114723014A - 张量切分模式的确定方法、装置、计算机设备及介质 - Google Patents

张量切分模式的确定方法、装置、计算机设备及介质 Download PDF

Info

Publication number
CN114723014A
CN114723014A CN202210415394.1A CN202210415394A CN114723014A CN 114723014 A CN114723014 A CN 114723014A CN 202210415394 A CN202210415394 A CN 202210415394A CN 114723014 A CN114723014 A CN 114723014A
Authority
CN
China
Prior art keywords
operator
calculation
target
tensor
segmentation
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
Application number
CN202210415394.1A
Other languages
English (en)
Inventor
万学磊
田野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Enflame Technology Co ltd
Original Assignee
Shanghai Enflame Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Enflame Technology Co ltd filed Critical Shanghai Enflame Technology Co ltd
Priority to CN202210415394.1A priority Critical patent/CN114723014A/zh
Publication of CN114723014A publication Critical patent/CN114723014A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种张量切分模式的确定方法、装置、计算机设备及介质。该方法包括获取包括多个计算算子的待张量切分的计算图;根据与计算算子对应的可选张量切分模式集,确定与计算图对应的包括多个目标计算算子和目标计算算子的目标张量切分模式的数据条目集;根据各目标张量切分模式,计算各数据条目分别对应的计算耗时;根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新数据条目集;在更新后的数据条目集中获取目标数据条目,从而确定计算图中各计算算子的张量切分模式。本发明实施例的技术方案提供一种可适用复杂场景,能够高效确定算子较优切分模式的方法。

Description

张量切分模式的确定方法、装置、计算机设备及介质
技术领域
本发明实施例涉及人工智能芯片技术,尤其涉及一种张量切分模式的确定方法、装置、计算机设备及介质。
背景技术
现有的人工智能处理器通常在片内集成多个或多组并行计算单元以实现数据的并行化处理,减少神经网络训练或者推理处理的时间,因此芯片对上层的神经网络图编译器有需求。其中一种处理方法是将计算图中所有算子的输入张量数据进行切分,分配给多个计算单元上执行。
上述处理方法面临的一些具体问题如下:在部分场景下不切分可能比切分更划算;整个计算图上算子成千上万,每个算子支持的张量切分形式也通常有多种,因此需要处理的排列组合方式非常多,从中较为快速找到一个最优的或者较优的切分方式是各巨大挑战;网络千变万化,不可能为每个网络进行单独的适配,通用性和可扩展性也是必须要解决的一个问题。
当前主流的计算框架如Pytorch和TensorFlow等不支持上述场景的优化处理。因此,急需探求一种可适用复杂场景的,高效确定算子较优切分模式的方法,满足各种应用场景下的张量切分需求。
发明内容
本发明实施例提供一种张量切分模式的确定方法、装置、计算机设备及介质,以提供一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
第一方面,本发明实施例提供了一种张量切分模式的确定方法,该方法包括:
获取待张量切分的计算图,计算图中包括多个计算算子;
根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
第二方面,本发明实施例还提供了一种张量切分模式的确定装置,该装置包括:
计算图获取模块,用于获取待张量切分的计算图,计算图中包括多个计算算子;
数据条目集确定模块,用于根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
计算耗时确定模块,用于根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
数据条目集更新模块,用于根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
张量切分模式确定模块,用于在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
第三方面,本发明实施例还提供了一种计算机设备,该设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的张量切分模式的确定方法。
第四方面,本发明实施例还提供了一种计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的张量切分模式的确定方法。
本发明实施例通过获取待张量切分的包括多个计算算子的计算图;根据与计算算子对应的可选张量切分模式集,确定与计算图对应的各数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式的数据条目集;根据各数据条目中包括的各目标张量切分模式,计算与每个数据条目分别对应的计算耗时;根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各交叉数据条目的计算耗时,更新数据条目集;在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式的技术手段,解决现有技术无法在复杂场景中高效确定算子较优切分方式的问题,提供一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
附图说明
图1为本发明实施例一提供的一种张量切分模式的确定方法的流程图;
图2为本发明实施例二提供的另一种张量切分模式的确定方法的流程图;
图3a为本发明实施例三提供的另一种张量切分模式的确定方法的流程图;
图3b为本发明实施例三提供的一种获取交叉数据条目的具体应用场景;
图3c为本发明实施例三提供的一种对进行随机替换操作的具体应用场景;
图4为本发明实施例四提供的一种张量切分模式的确定装置的结构示意图;
图5为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种张量切分模式的确定方法的流程图,本实施例可适用于对算子进行张量切分的情况,该方法可以由张量切分模式的确定装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可集成在人工智能处理器中,具体包括如下步骤:
S101、获取待张量切分的计算图,计算图中包括多个计算算子。
其中,一个计算图对应一个计算任务,计算图是对计算任务的计算过程的图形化表示,一个计算图对应一个或者多个输入张量数据,并对应一个或者多个输出张量数据。
计算图中包括有多个计算算子,计算算子可以理解为实现设定计算操作的计算符,例如:加、减、乘方或者卷积等。同样的,每个计算算子对应一个或者多个输入张量数据,并对应一个或者多个输出张量数据。将多个计算算子按照预设的拓扑结构进行组合,可以形成该计算图。
S102、根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式。
其中,可选张量切分模式集可以是各计算算子对应的全部可以实施的张量切分模式的集合。数据条目可以是多个计算算子与其各自对应的张量切分模式组成的映射关系条目。数据条目集可以是多个数据条目的集合。目标计算算子可以是指能够确定张量切分模式的计算算子。目标张量切分模式可以是指每个数据条目中包括的计算算子所对应的张量切分模式。
在本实施例中,可以根据与计算图中每个计算算子对应的可选张量切分模式集,确定出与计算图对应的多个数据条目以构成数据条目集。
S103、根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时。
其中,计算耗时可以是指每个数据条目中各计算算子与各计算算子的目标张量切分模式共同作用下的耗时。
在本实施例中,可以根据各数据条目中各计算算子以及各计算算子对应的目标张量切分模式,计算出每个数据条目分别对应的计算耗时。
S104、根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集。
其中,数据条目对可以包括两条数据条目,交叉数据条目可以是指根据每个数据条目对生成的条目,交叉数据条目可以是根据数据条目对中一个数据条目的一部分与另一个数据条目的一部分组合得到的。
具体的,可以从数据条目集中随机选取数据条目,生成多个数据条目对,从而根据每个数据条目对分别生成对应的交叉数据条目,并根据各交叉数据条目的计算耗时,更新数据条目集,即,替换数据条目集中计算耗时最长的数据条目。
S105、在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
其中,目标数据条目可以是从更新后的数据条目集中获取的某个数据条目。
在本实施例中,可以从更新后的数据条目集中获取计算耗时最短的数据条目作为目标数据条目,根据该目标数据条目,可以确定出计算图中各计算算子对应的张量切分模式。
本发明实施例的技术方案,通过获取待张量切分的包括多个计算算子的计算图;根据与计算算子对应的可选张量切分模式集,确定与计算图对应的各数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式的数据条目集;根据各数据条目中包括的各目标张量切分模式,计算与每个数据条目分别对应的计算耗时;根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各交叉数据条目的计算耗时,更新数据条目集;在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式的技术手段,解决了现有技术无法在复杂场景中高效确定算子较优切分方式的问题,提供了一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
实施例二
图2为本发明实施例二提供的另一种张量切分模式的确定方法的流程图,本实施例在上述各实施例的基础上,优选是将根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集操作进一步细化,参考图2,具体包括如下步骤:
S201、获取待张量切分的计算图,计算图中包括多个计算算子。
S202、对计算图中的各计算算子进行拓扑排序。
如前所述,在该计算图中定义了多个计算算子的拓扑结构,该拓扑结构代表了各计算算子在整个计算任务中的执行顺序,通过解析该计算图,可以获取各计算算子的执行顺序,进而,可以按照执行顺序由前到后的顺序,对各计算算子进行拓扑排序。
S203、创建数据条目模板,并按照排序顺序,依次获取一个当前计算算子。
其中,数据条目模板可以是多含至少两个空白填充位置的模板,例如,计算算子填充处与张量切分模式填充处。
在本实施例中,可以创建包含多个空白填充位置的数据条目模板,按照拓扑排序顺序,依次选取计算算子作为当前计算算子。
S204、根据当前计算算子的算子类型,查询算子信息库,并在确定算子信息库中存储与当前计算算子对应的可选张量切分模式集时,将当前计算算子确定为目标计算算子。
其中,算子信息库可以是预先构建的信息库,算子信息库可以包括算子类型与可选张量切分模式集的映射关系,在每个可选张量切分模式集中,存储有一个或者多个可选张量切分模式,也即,一个计算算子可以对应一个或者多个可选张量切分模式。每个可选张量切分模式中包括:各输入端的输入切分状态和各输出端的参考输出切分状态。
示例性的,如表1所示:卷积类型的计算算子对应两种可选张量切分模式,每个可选张量切分模式对应匹配的输入切分状态及参考输出切分状态。
表1
算子类型 张量切分模式序号 输入0状态 输入1状态 输出0状态
Conv 0 FF FF FF
1 00 01 00
如表1所示,该卷积类型的计算算子共具有两个输入端和一个输出端,输入0状态可以理解为该计算算子的第一个输入端的输入切分状态,输入1状态可以理解为该计算算子的第二个输入端的输入切分状态,输出0状态可以理解为该计算算子唯一输出端的输出切分状态的参考值。
其中,该输入切分状态可以理解为具体的输入张量数据的切分形式。例如,可以为对输入张量数据中的设定维度进行切分操作或者复制操作,该参考输出切分状态可理解为输出张量数据可能的切分形式,例如,可以对输出张量数据中的设定维度进行合并操作或者归约操作等。
需要说明的是,之所以将上述切分状态区分为输入切分状态和参考输出切分状态,主要考虑到当输入切分状态确定后,相应的输出切分状态实际上也是有很多可能性的,其可能会由于基于的计算场景的不同,而有所区别,因此,仅通过构建的信息库的方式,可能会无法枚举全部可能的输出切分状态。进而,可以在该信息库中,仅列出一种适配通用场景的参考输出切分状态,以辅助确定出与一个输入切分状态最匹配的目标输出切分状态。也即,该目标输出切分状态为与输入切分状态对应的,具体的输入张量数据的切分形式
在本实施例中,也可以预先设置不同的张量数据切分形式的表达形式,例如,表1中所述的“FF”、“00”或者“01”等。
具体的,可以根据当前计算算子所属的算子类型,查询算子信息库中是否存在与当前计算算子对应的可选张量切分模式集,如果确定存在,表示当前计算算子可以进行切分操作(例如,如前所述的切分、复制、合并以及归约等),那么可以将当前计算算子确定为目标计算算子。相应的,如果确定算子信息库中不存在当前计算算子对应的可选张量切分模式集,表示当前计算算子不可以进行切分操作,那么可以舍弃当前计算算子,按照排序顺序,依次获取下一个计算算子作为当前计算算子,进行上述确定目标计算算子的操作。
S205、根据目标计算算子的可选张量切分模式集,确定目标计算算子的目标张量切分模式,并将目标计算算子和目标张量切分模式加入至数据条目模板中。
具体的,在对目标计算算子的多个可选张量切分模式中,选定某一具体可选张量切分模式,并根据该可选张量切分模式,确定出目标计算算子的目标张量切分模式,从而将目标计算算子和目标计算算子的目标张量切分模式加入预先创建的数据条目模板中,即,填充数据条目模板相应的空白片段处。在本实施例的一个可选实施方式中,根据目标计算算子的可选张量切分模式集,确定目标计算算子的目标张量切分模式,可以包括:
在目标计算算子的可选张量切分模式集中选取备选张量切分模式,可选张量切分模式中包括:各输入端的输入切分状态和各输出端的参考输出切分状态;根据备选张量切分模式中的备选输入切分状态,以及备选参考输出切分状态,推导得到与备选输入切分状态对应的目标输出切分状态;验证备选输入切分状态和目标输出切分状态,是否满足与目标计算算子对应的输入输出有效性条件;若是,则将所述备选输入切分状态和目标输出切分状态,确定为目标计算算子的目标张量切分模式;否则,返回执行在目标计算算子的可选张量切分模式集中选择备选张量切分模式的操作,直至成功确定出目标计算算子的目标张量切分模式。
其中,备选张量切分模式可以是在目标计算算子的可选张量切分模式集的全部可选张量切分模式中,选择出的一个可选张量切分模式。具体的,可以通过随机选择的方式,获取该备选张量切分模式。例如,如果一个目标计算算子的可选张量切分模式集中包括5个可选张量切分模式,上述5个可选张量切分模式按照0-4进行顺序编号,进而,可以生成一个[0,4]之间的随机数,并根据该随机数的具体值,在5个可选张量切分模式,确定备选张量切分模式。
输入切分状态可以是指张量依附在计算算子输入位置处的状态。参考输出切分状态可以是指算子信息库中提供的,用于参考的张量依附在计算算子输出位置处的状态。
在本实施例的一个可选的实施方案中,根据备选张量切分模式中的备选输入切分状态,以及备选参考输出切分状态,推导得到与备选输入切分状态对应的目标输出切分状态可以为:
将所述备选张量切分模式,以及与该计算图匹配的计算环境(例如,计算图所适配的计算网络、计算单元的数量值、或者原始输入数据总维度等)输入至预先构建的张量状态推导函数中,并获取相应的输出切分状态推导结果,作为该目标输出切分状态。
可选的,可以根据不同的算子类型,构建匹配的张量状态推导函数,例如,如果有N个算子类型的计算算子,可以相应构建N个不同的张量状态推导函数。
具体的,可以根据一个设定算子类型的计算算子的算子属性以及算子计算逻辑等参数,构建得到与该算子类型匹配的张量状态推导函数。
其中,算子属性可以包括:该计算算子是否对输入张量进行调轴处理等,算子计算逻辑是指计算算子具体采用何种计算方式对输入张量进行计算。
在本实施例中,当针对一个计算算子的算子类型调用匹配的张量状态推导函数进行输出状态的推导时,可以首先检测备选张量切分模式中的备选参考输出切分状态是否为一个具体的张量切分操作,例如,备选参考输出切分状态为将张量在第X轴进行切分为一个具体的张量切分操作,而备选参考输出切分状态为对输出张量不进行任何切分则不为一个具体张量切分操作。
若检测备选参考输出切分状态为一个具体的张量切分操作,则可以直接将该备选参考输出切分状态作为目标输出切分状态输出;若检测备选参考输出切分状态不为一个具体的张量切分操作,则可以通过该张量状态推导函数,以及该备选张量切分模式中的备选输入切分状态,推导得到目标输出切分状态。
输入输出有效性条件可以是指用于验证是否对不能进行切分的算子误切分的条件。例如,部分算子在某些计算场景下是不能进行切分的,否则会影响精度,因此需要校验,以去除不合法的张量切分模式。
其中,该输入输出有效性条件,可以通过分析各类型的计算算子在各计算场景下的计算表现,归纳汇总得到。
其中,输入切分状态与输出切分状态可以用掩码表示,示例性的,如表2所示:不同输入切分状态与输出切分状态代表的不同的物理含义。
表2
输入切分状态 物理含义 输出切分状态 物理含义
FF 张量不进行任何操作 FF 对输出张量不进行任何操作
FC 张量复制 FE 张量归约
00 对张量在第0轴进行切分 00 对张量在第0轴进行合并
01 对张量在第1轴进行切分 01 对张量在第1轴进行合并
02 对张量在第2轴进行切分 02 对张量在第2轴进行合并
03 对张量在第3轴进行切分 03 对张量在第3轴进行合并
其中,具体的掩码可自由定义,形式不限于上表中的具体符号。
具体的,可以从目标计算算子在算子信息库中查询得到的全部可选张量切分模式中,随机获取备选张量切分模式。进而可以根据备选张量切分模式中的备选输入切分状态,以及备选参考输出切分状态,推导得到与备选输入切分状态对应的目标输出切分状态,典型的,可以由张量状态推导函数进行目标输出切分状态的推导。
推导得到目标输出切分状态后,可以验证备选输入切分状态与推导的目标输出切分状态是否满足当前目标计算算子相对应的输入输出有效性条件,如果满足输入输出有效性条件,那么可以将备选输入切分状态和目标输出切分状态,确定为目标计算算子的目标张量切分模式;否则,可以返回执行在目标计算算子的可选张量切分模式集中选择备选张量切分模式的操作,直至成功确定出目标计算算子的目标张量切分模式。
其中,根据备选参考输出切分状态,推导得到目标输出切分状态的具体方式可以参考如下:
如果备选参考输出切分状态是“FF”,可以直接用张量状态推导函数的推导结果作为目标输出切分状态。
在本实施例的另一个可选实施方式中,在目标计算算子的可选张量切分模式集中选取备选张量切分模式,可以包括:
检测所述目标计算算子是否存在前一相邻算子;若是,则在为前一相邻算子确定出的目标张量切分模式中,获取目标输出切分状态;根据前一相邻算子的目标输出切分状态,在目标计算算子的可选张量切分模式集中,筛选出与前一相邻算子满足输入输出连接关系有效性校验条件的可选张量切分模式;在筛选出的各可选张量切分模式中,选取所述备选张量切分模式。
其中,该前一相邻算子,是指在计算图中位于当前处理的目标计算算子的前一拓扑位置的计算算子,且该计算算子同样为目标计算算子。
其中,连接关系有效性校验条件可以是用于检查两个彼此相连的计算算子中,前一计算算子的输出切分状态与后一计算算子的输入切分状态是否可以有效的连接在一起。同样的,可以通过分析不同算子在不同的计算场景中的计算表现,归纳汇总得到。
在本实施例的一个可选的实施方式中,可以构建查询字典的方式,得到该输入输出连接关系有效性校验条件,该查询字典中可以包括多个键值对,每个键值对中的键名为前一计算算子的输出切分状态,每个键值对中的键值,为在键名对应的前一计算算子的输出切分状态下,后一计算算子的至少一个可选的输入切分状态。
具体的,在针对前一计算算子的输出切分状态A和后一计算算子的输入切分状态B进行输入输出连接关系有效性校验条件的验证时,可以首先根据输出切分状态A,在查询字典中键名与该输出切分状态A匹配的目标键值对,进而判断输入切分状态B是否为该目标键值对的键值中的一个数据项,若是,确定输入切分状态B和输出切分状态A满足输入输出连接关系有效性校验条件;否则,确定输入切分状态B和输出切分状态A不满足输入输出连接关系有效性校验条件。
在本实施例中,在目标计算算子的可选张量切分模式集中选取备选张量切分模式,可以根据输入输出有效性筛选获得。具体的,可以检测目标计算算子是否存在前一相邻的计算算子,如果存在,可以为这前一相邻算子确定出目标张量切分模式,并在该目标张量切分模式中,获取目标输出切分状态,进而在目标计算算子的可选张量切分模式集中,筛选出与前一相邻算子的目标输出切分状态满足输入输出连接关系有效性校验条件的可选张量切分模式,作为备选张量切分模式。
需要说明,每个目标计算算子对应的可选张量切分模式为多个,因此在生成一个数据条目的过程中,需要随机从中选取一个进行确定目标计算算子的目标张量切分模式的操作。
S206、返回执行按照排序顺序,依次获取一个当前计算算子的操作,直至完成对计算图中全部计算算子的处理,以生成一个数据条目。
可选的,对于按照排序顺序初次选取的计算算子,将计算算子与对应的目标张量切分模式加入至数据条目模板后,可以按照排序顺序获取下一个计算算子作为当前计算算子,并进行确定相应的目标张量切分模式及添加数据条目模板的操作。按照排序顺序,依次获取计算算子,重复执行上述添加数据条目模板的操作,直至完成对计算图中全部计算算子的处理,生成一个数据条目。
需要说明,待张量切分的计算图中所包含的各计算算子可以存在不需要进行张量切分的情况,对于这种计算算子,可以不加入数据条目中,因此,数据条目中包括的计算算子可以是计算图中计算算子的子集。
S207、重复执行从创建数据条目模板到生成数据条目的流程,直至生成设定数量的数据条目,以构成所述数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式。
在本实施例中,每个目标计算算子的备选张量切分模式为多个,需要随机从中选取一个进行确定目标计算算子的目标张量切分模式的操作,因此需要重复执行从创建数据条目模板到生成数据条目的流程。每个重复执行操作的过程中,均可以为每个目标计算算子确定出一个目标张量切分模式,进而可以根据与每个目标计算算子对应的目标张量切分模式,组合构成一个数据条目,直至生成设定数量的数据条目,从而可以根据多个数据条目构成数据条目集。
可以理解的是,数据条目集中的每个数据条目中所包含的目标计算算子的数量均相同,但是与各目标计算算子分别对应的各目标张量切分模式不完全相同。
S208、根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时。
在本实施例的一个可选实施方式中,根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时,可以包括:
在全部数据条目中获取当前处理条目,并获取与计算图对应的原始算子耗时图,原始算子耗时图与计算图中的算子拓扑结构相同;在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图;查询预先构建的耗时模型库,计算与所述目标算子耗时图对应的计算耗时。
其中,原始算子耗时图可以是指根据初始待张量切分的包含多个计算算子的计算图所获取的耗时图,原始算子耗时图与计算图中的算子拓扑结构相同。算子拓扑结构可以是根据待张量切分的计算图中的多个计算算子获得的拓扑结构。切分算子可以是指用于进行张量数据切分的算子,是区别于计算图中的计算算子之外的新的算子,切分算子可以与目标张量切分模式对应。目标算子耗时图可以是指在原始算子耗时图中加入切分算子后,并完成相应处理操作后得到的与数据条目对应的耗时图,
其中,相应处理操作可以包括各切分算子的合并和对消等操作。预先构建的耗时模型库可以包括计算算子和切分算子分别与计算耗时的对应关系。
具体的,可以在数据条目集的全部数据条目中依次获取一个数据条目作为当前处理条目,并根据计算图获取与计算图中的算子拓扑结构相同的原始算子耗时图。进而在原始算子耗时图中加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图,从而通过查询预先构建的耗时模型库,获得与目标算子耗时图中各算子(包括计算算子与切分算子)分别对应的多个计算耗时,对多个计算耗时求和,可以得到与目标算子耗时图对应的计算耗时。
可选的,在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图,可以包括:
在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子;对所加入的各所述切分算子进行合并和/或对消处理,生成与当前处理条目对应的目标算子耗时图。
具体的,在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,检测这些切分算子是否可以进行合并和/或对消处理,如果是,可以执行相应操作得到目标算子耗时图,如果不是,可以直接得到目标算子耗时图。
在一个具体的例子中,如果在算子耗时图中包括有切分算子A和切分算子B,切分算子A用于对1号计算算子的输出张量数据的第2轴进行1次切分,切分得到N个张量数据;而切分算子B用于对2号计算算子的输入张量数据的第2轴进行一次切分,切分得到N个张量数据,而上述1号计算算子和2号计算算子顺序相连,进而,可以将上述切分算子A和切分算子B进行合并操作,将上述两个切分算子合并为一个新的计算算子C,用于对1号计算算子的输出张量数据的第2轴进行1次切分,切分得到2N个张量数据。
在另一个具体的例子中,如果在算子耗时图中包括有切分算子D和切分算子E,切分算子D用于对3号计算算子的输出张量数据在第2轴进行一次合并,;而切分算子E用于对4号计算算子的输入张量数据的第2轴进行一次切分,而上述3号计算算子和4号计算算子顺序相连,进而,可以将上述切分算子C和切分算子D进行对消操作,以去除该算子耗时图中包括的切分算子D和切分算子E。
这样设置的好处在于,可以去除冗余的合并和切分操作,缩短数据条目的计算耗时。
S209、根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集。
在本实施例中,引入了优中选优的处理逻辑。假设该数据条目集中的各数据条目中包含有较优数据条目,则理论上来说,通过将上述各数据条目中包括的各目标计算算子的目标张量切分模式进行有效的组合,是有可能得到更优的数据条目的。基于上述理论,通过获取数据条目集中的两两数据条目组合得到数据条目对,使用每个数据条目对生成匹配的交叉数据条目的方式,是可能构建出更低计算耗时的数据条目的。进而,在构建出上述更低计算耗时的数据条目时,可以使用该数据条目替换数据条目集中的最大计算耗时的数据条目。
S210、在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
本发明实施例的技术方案,通过对待张量切分的计算图中的各计算算子进行拓扑排序;创建数据条目模板,并按照排序顺序,依次获取当前计算算子,查询算子信息库,确定目标计算算子,从而确定目标计算算子的目标张量切分模式,将目标计算算子和目标张量切分模式加入至数据条目模板中,返回执行依次获取当前计算算子的操作,直至完成对计算图中全部计算算子的处理,生成一个数据条目;重复执行从创建数据条目模板到生成数据条目的流程,直至生成设定数量的数据条目,构成数据条目集;计算每个数据条目分别对应的计算耗时;根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,根据各交叉数据条目的计算耗时,更新数据条目集;在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式的技术手段,解决了现有技术无法在复杂场景中高效确定算子较优切分方式的问题,提供了一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
在上述技术方案的基础上,在完成对计算图中全部计算算子的处理,以生成一个数据条目之后,还可以包括:
根据所生成数据条目以及计算图中各计算算子的拓扑排序中,验证两两相邻的计算算子是否满足输入输出连接关系有效性校验条件;如果确定任一相邻的两个计算算子不满足输入输出连接关系有效性校验条件,则丢弃所述数据条目。
在本实施例中,每生成一个数据条目之后,可以根据该数据条目,验证计算图中任意相邻的两个计算算子是否满足输入输出连接关系有效性校验条件,以确保当前数据条目的有效性。具体可以根据所生成数据条目以及计算图中各计算算子的拓扑排序,验证两两相邻的计算算子是否满足输入输出连接关系有效性校验条件,如果确定存在任意一组相邻的两个计算算子不满足输入输出连接关系有效性校验条件,则可以丢弃当前所验证的数据条目,如果数据条目中全部任意相邻的两个计算算子均满足输入输出连接关系有效性校验条件,则表示当前的数据条目有效,可以继续使用。
实施例三
图3a为本发明实施例三提供的另一种张量切分模式的确定方法的流程图,本实施例在上述各实施例的基础上,优选是将根据在数据条目集中选取的多个数据条目对,组合得到多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集操作进一步细化,参考图3,具体包括如下步骤:
S301、获取待张量切分的计算图,计算图中包括多个计算算子。
S302、根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式。
S303、根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时。
S304、在所述数据条目集中选取第一数据条目和第二数据条目。
在本实施例的一个可选实施方式中,在所述数据条目集中选取第一数据条目和第二数据条目,可以包括:
根据所述数据条目集中各数据条目的计算耗时,计算与所述数据条目集对应的总计算耗时;根据所述总计算耗时,确定与各所述数据条目分别对应的耗时比重;根据各所述数据条目的耗时比重,以及各所述数据条目在所述数据条目集中的排布顺序,计算与各数据条目对应的累计概率范围;随机生成两个位于[0,1]之间的随机数,并在确定各随机数落入不同累计概率范围时,获取与所落入的累计概率范围对应的第一数据条目和第二数据条目。
其中,总计算耗时可以是对各数据条目的计算耗时进行求和得到。耗时比重可以是各数据条目的计算耗时占总计算耗时的比重。排布顺序可以是各数据条目的生成顺序。累计概率范围可以是根据各数据条目的耗时比重计算得到。
具体的,可以对各数据条目的计算耗时进行求和,得到数据条目集的总计算耗时,从而计算出各数据条目的计算耗时占总计算耗时的比重,根据该比重与各数据条目在数据条目集中的顺序,计算得到各数据条目的累计概率范围,生成两个位于[0,1]之间的随机数,在确定两个随机数落入不同累计概率范围时,获取与所落入的累计概率范围对应的第一数据条目和第二数据条目。相应的,如果生成的两个随机数落入同一个累计概率范围,可以重新生成随机数获取第一数据条目和第二数据条目。
示例性的,数据条目集中有3个数据条目,且排布顺序为数据条目1、数据条目2和 数据条目3,数据条目1的计算耗时为1分钟,数据条目2和数据条目3的计算耗时均为2分钟, 则数据条目集的总计算耗时为5分钟,那么数据条目1的耗时比重为
Figure DEST_PATH_IMAGE001
,数据条目2的和数据 条目3的耗时比重均为
Figure 16323DEST_PATH_IMAGE002
,因此,数据条目1对应的累计概率范围为[
Figure DEST_PATH_IMAGE003
Figure 621879DEST_PATH_IMAGE001
],数据条目2对应的 累计概率范围为(
Figure 136037DEST_PATH_IMAGE001
Figure 937771DEST_PATH_IMAGE004
],数据条目3对应的累计概率范围为(
Figure DEST_PATH_IMAGE005
Figure 204673DEST_PATH_IMAGE006
]。生成的两个随机数为0.2 和0.7,分别落在[
Figure 761557DEST_PATH_IMAGE003
Figure DEST_PATH_IMAGE007
]和(
Figure 231852DEST_PATH_IMAGE005
Figure 165173DEST_PATH_IMAGE006
]中,则第一数据条目和第二数据条目分别可以是数据条目1 和数据条目3。
S305、根据所述第一数据条目和第二数据条目,组合得到满足输入输出连接关系有效性校验条件的交叉数据条目。
在本实施例的一个可选实施方式中,根据所述第一数据条目和第二数据条目,组合得到满足输入输出连接关系有效性校验条件的交叉数据条目,可以包括:
在数据条目中包括的各目标计算算子中,选取交叉算子;根据所述交叉算子在数据条目中的位置,在第一数据条目和第二数据条目中分别获取第一条目部分和第二条目部分;所述交叉算子为第一条目部分的末位算子,或者第二条目部分中的首个算子;将所述第一条目部分和第二条目部分组合得到备选交叉条目,并在备选交叉条目中获取交叉算子;根据计算图中各计算算子的拓扑排序,获取与交叉算子匹配的相邻算子;验证交叉算子与匹配的相邻算子是否满足输入输出连接关系有效性校验条件;若是,则将备选交叉条目确定为交叉数据条目;否则,返回执行在数据条目中包括的各目标计算算子中,选取交叉算子的操作,直至满足结束选取条件;在满足结束选取条件时,将所述第一数据条目或者第二数据条目,确定为所述交叉数据条目。
其中,第一条目部分可以是第一数据条目中从第一个目标计算起至交叉算子的部分。第二条目部分可以是第二数据条目中从交叉算子起至最后一个目标计算算子的部分。备选交叉条目可以是由第一条目部分和第二条目部分组合得到的,未验证输入输出连接关系有效性的条目。
在本实施例中,可以从数据条目包括的各目标算子中选取交叉算子,并根据交叉算子在数据条目中的位置,将第一数据条目中从第一个目标计算算子起至交叉算子的部分作为第一条目部分,将第二数据条目中从交叉算子起至最后一个目标计算算子的部分作为第二条目部分,从而将第一条目部分和第二条目部分组合得到备选交叉条目。由于备选交叉条目是拼接组合得到,因此可以对其拼接处的两个相邻算子进行输入输出连接关系有效性进行验证,可以从备选交叉条目中获取交叉算子,根据计算图中各计算算子的拓扑排序,获取与交叉算子匹配的相邻算子,进行输入输出连接关系有效性校验。如果满足该校验条件,则可以将备选交叉条目确定为交叉数据条目;否则,可以返回执行在数据条目中包括的各目标计算算子中,选取交叉算子的操作,直至满足结束选取条件;在满足结束选取条件时,将所述第一数据条目或者第二数据条目,确定为所述交叉数据条目。
示例性的,图3b为本发明实施例三提供的一种获取交叉数据条目的具体应用场景。
1)假定数据条目集中的数据条目个数为N,根据各数据条目分别对应的计算耗时与数据条目集的总计算耗时,计算每个数据条目的耗时比重,并按照各数据条目在数据条目集中的顺序,计算每个数据条目的累计概率范围。
2)生成两个[0,1]之间的随机数p1和p2,看p1和p2分别落于哪段累计概率范围,取出p1和p2分别对应的数据条目,简记为数据条目m和数据条目n,。
3)当p1和p2落于不同的累计概率范围,即数据条目m和数据条目_n不相同时,获取数据条目中的目标计算算子个数,假设为M,生成一个[0,M)的随机整数k作为交叉位置。
4)由数据条目m中第0至第k个目标计算算子的部分,及数据条目n中第k个至最后一个目标计算算子的部分,组合成一个新的数据条目k,并生成对应的算子耗时图。
5)对数据条目k交叉点处的算子执行输入输出连接关系有效性检查。若有效,则继续后续处理;否则重新交叉,直至合法为止。
S306、计算与所述交叉数据条目对应的计算耗时,并根据所述数据条目集中各数据条目以及所述交叉数据条目的计算耗时,更新所述数据条目集。
在本实施例的一个可选实施方式中,在计算与所述交叉数据条目对应的计算耗时之前,还可以包括:
在检测到满足随机替换条件时,在所述交叉数据条目中选取替换算子;对所述替换算子的目标张量切分模式进行满足输入输出有效性条件以及输入输出连接关系有效性校验条件的替换。
其中,替换算子可以是随机选取的,对其已经确定的目标张量切分模式进行替换的目标计算算子。
检测到满足随机替换条件可以包括:随机生成目标随机数,并将所述目标随机数与预设的变异门限值进行比对;如果确定所述目标随机数大于或者等于所述变异门限值,则确定满足随机替换条件。
其中,目标随机数可以是介于(0,1)之间的值。预设的变异门限值可以是介于(0,1)之间的值。生成的目标随机数如果大于或者等于变异门限值,则可以确定满足随机替换条件。
可选的,对所述替换算子的目标张量切分模式进行满足输入输出有效性条件以及输入输出连接关系有效性校验条件的替换,可以包括:
获取与替换算子的目标张量切分模式对应的可选张量切分模式,作为比对张量切分模式;在算子信息库中存储的与所述替换算子对应的可选张量切分模式集中,选取区别与比对张量切分模式的替换张量切分模式;根据替换张量切分模式中的替换输入切分状态,以及替换参考输出切分状态,推导得到与替换输入切分状态对应的替换输出切分状态;验证替换输入切分状态和替换输出切分状态,是否满足与替换算子对应的输入输出有效性条件;若是,则根据计算图中各计算算子的拓扑排序,获取与替换算子匹配的相邻算子;根据所述替换输入切分状态和替换输出切分状态,验证所述替换算子是否与匹配的相邻算子满足输入输出连接关系有效性校验条件;若是,则使用所述替换输入切分状态和替换输出切分状态,对所述替换算子进行目标张量切分模式的替换。
其中,比对张量切分模式是与目标张量切分模式对应的可选张量切分模式。也即,在与替换算子对应的可选张量切分模式集中获取的,用于最终计算得到该目标张量切分模式所选用的张量切分模式,也即,比对张量切分模式中的输入张量切分状态,与该标张量切分模式中的输入张量切分状态相一致。
替换张量切分模式可以在替换算子的可选张量切分模式集中获取的,不同于比对张量切分模式的,一个张量切分模式。
示例性的,选取一个目标计算算子作为替换算子,该替换算子在算子信息库中存储的可选张量切分模式集包括张量切分模式1、张量切分模式2、张量切分模式3和张量切分模式4。与该替换算子的目标张量切分模式对应的可选张量切分模式为张量切分模式1(即,比对张量切分模式),那么该替换算子对应的替换张量切分模式为切分模式2、切分模式3和切分模式4中的任一个。
示例性的,图3c为本发明实施例三提供的一种对进行随机替换操作的具体应用场景。
1)给定一个变异门限值G,G的值介于(0,1)之间。
2)随机生成一个0到1之间的随机数p,与G进行比较;若p高于G,则进行后续处理,否则跳过本处理环节。
3)获取数据条目中的目标计算算子个数,假设为K。生成一个[0,K)的随机整数j作为变异位置。
4)取出j对应的目标计算算子作为替换算子,查询该算子在算子信息库中的全部可选张量切分模式,假设其可选张量切分模式的总个数为N。随机生成一个[0,N)之间的随机数作为新的替换切分模式,该替换切分模式不同于该目标计算算子当前对应的比对张量切分模式。
5)根据(4)中的替换切分模式中的替换输入张量切分模式,以及替换参考输出切分状态,调用张量状态推导函数,推导替换算子的替换输出切分状态。
6)根据计算图中各计算算子的拓扑排序,进行输入输出连接关系有效性校验,检查随机替换的结果是否合法。若不合法,则终止随机替换处理;若合法,则刷新数据条目中的位置j的替换算子信息,并更新完成替换算子替换后的交叉数据条目的算子耗时图。
S307、返回执行在所述数据条目集中选取第一数据条目和第二数据条目的操作,直至满足结束更新条件。
S308、在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
本发明实施例的技术方案,通过获取包括多个计算算子的待张量切分的计算图,根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,计算与每个数据条目分别对应的计算耗时,在所述数据条目集中选取第一数据条目和第二数据条目,根据第一数据条目和第二数据条目,组合得到满交叉数据条目,计算与交叉数据条目对应的计算耗时,并根据数据条目集中各数据条目以及交叉数据条目的计算耗时,更新所述数据条目集,返回执行在所述数据条目集中选取第一数据条目和第二数据条目的操作,直至满足结束更新条件,在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式的技术手段,解决了现有技术无法在复杂场景中高效确定算子较优切分方式的问题,提供了一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
实施例四
图4为本发明实施例四提供的一种张量切分模式的确定装置的结构示意图,该装置可以用于执行本发明任意实施例提供的张量切分模式的确定方法。该装置包括:计算图获取模块401、数据条目集确定模块402、计算耗时确定模块403、数据条目集更新模块404和张量切分模式确定模块405。其中:
计算图获取模块401,用于获取待张量切分的计算图,计算图中包括多个计算算子;
数据条目集确定模块402,用于根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
计算耗时确定模块403,用于根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
数据条目集更新模块404,用于根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
张量切分模式确定模块405,用于在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
本发明实施例的技术方案,通过获取待张量切分的包括多个计算算子的计算图;根据与计算算子对应的可选张量切分模式集,确定与计算图对应的各数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式的数据条目集;根据各数据条目中包括的各目标张量切分模式,计算与每个数据条目分别对应的计算耗时;根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各交叉数据条目的计算耗时,更新数据条目集;在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式的技术手段,解决了现有技术无法在复杂场景中高效确定算子较优切分方式的问题,提供了一种可适用复杂场景,能够高效确定算子较优切分模式的方法。
上述装置中,可选的是,数据条目集确定模块402,可以包括:
计算算子拓扑排序单元,用于对计算图中的各计算算子进行拓扑排序;
当前计算算子获取单元,用于创建数据条目模板,并按照排序顺序,依次获取一个当前计算算子;
目标计算算子确定单元,用于根据当前计算算子的算子类型,查询算子信息库,并在确定算子信息库中存储与当前计算算子对应的可选张量切分模式集时,将当前计算算子确定为目标计算算子;
数据条目模板添加单元,用于根据目标计算算子的可选张量切分模式集,确定目标计算算子的目标张量切分模式,并将目标计算算子和目标张量切分模式加入至数据条目模板中;
数据条目生成单元,用于返回执行按照排序顺序,依次获取一个当前计算算子的操作,直至完成对计算图中全部计算算子的处理,以生成一个数据条目;
数据条目集构成单元,用于重复执行从创建数据条目模板到生成数据条目的流程,直至生成设定数量的数据条目,以构成所述数据条目集。
上述装置中,可选的是,数据条目模板添加单元,可以包括:
备选张量切分模式选取子单元,用于在目标计算算子的可选张量切分模式集中选取备选张量切分模式,可选张量切分模式中包括:各输入端的输入切分状态和各输出端的参考输出切分状态;
目标输出切分状态推导子单元,用于根据备选张量切分模式中的备选输入切分状态,以及备选参考输出切分状态,推导得到与备选输入切分状态对应的目标输出切分状态;
切分状态验证子单元,用于验证备选输入切分状态和目标输出切分状态,是否满足与目标计算算子对应的输入输出有效性条件;
目标张量切分模式确定子单元,用于若是,则将所述备选输入切分状态和目标输出切分状态,确定为目标计算算子的目标张量切分模式;
目标张量切分模式成功确定子单元,用于否则,返回执行在目标计算算子的可选张量切分模式集中选择备选张量切分模式的操作,直至成功确定出目标计算算子的目标张量切分模式。
上述装置中,可选的是,备选张量切分模式选取子单元,可以具体用于:
检测所述目标计算算子是否存在前一相邻算子;
若是,则在为前一相邻算子确定出的目标张量切分模式中,获取目标输出切分状态;
根据前一相邻算子的目标输出切分状态,在目标计算算子的可选张量切分模式集中,筛选出与前一相邻算子满足输入输出连接关系有效性校验条件的可选张量切分模式;在筛选出的各可选张量切分模式中,选取所述备选张量切分模式。
上述装置中,可选的是,还包括,数据条目丢弃单元,用于在完成对计算图中全部计算算子的处理,以生成一个数据条目之后:
根据所生成数据条目以及计算图中各计算算子的拓扑排序中,验证两两相邻的计算算子是否满足输入输出连接关系有效性校验条件;
如果确定任一相邻的两个计算算子不满足输入输出连接关系有效性校验条件,则丢弃所述数据条目。
上述装置中,可选的是,计算耗时确定模块403,可以包括:
原始算子耗时图获取单元,用于在全部数据条目中获取当前处理条目,并获取与计算图对应的原始算子耗时图,原始算子耗时图与计算图中的算子拓扑结构相同;
目标算子耗时图生成单元,用于在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图;
计算耗时计算单元,用于查询预先构建的耗时模型库,计算与所述目标算子耗时图对应的计算耗时。
上述装置中,可选的是,目标算子耗时图生成单元,可以具体用于:
在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子;
对所加入的各所述切分算子进行合并和/或对消处理,生成与当前处理条目对应的目标算子耗时图。
上述装置中,可选的是,数据条目集更新模块404,可以包括:
第一和第二数据条目选取单元,用于在所述数据条目集中选取第一数据条目和第二数据条目;
交叉数据条目获取单元,用于根据所述第一数据条目和第二数据条目,组合得到满足输入输出连接关系有效性校验条件的交叉数据条目;
数据条目集更新单元,用于计算与所述交叉数据条目对应的计算耗时,并根据所述数据条目集中各数据条目以及所述交叉数据条目的计算耗时,更新所述数据条目集;
结束更新条件满足单元,用于返回执行在所述数据条目集中选取第一数据条目和第二数据条目的操作,直至满足结束更新条件。
上述装置中,可选的是,第一和第二数据条目选取单元,可以具体用于:
根据所述数据条目集中各数据条目的计算耗时,计算与所述数据条目集对应的总计算耗时;
根据所述总计算耗时,确定与各所述数据条目分别对应的耗时比重;
根据各所述数据条目的耗时比重,以及各所述数据条目在所述数据条目集中的排布顺序,计算与各数据条目对应的累计概率范围;
随机生成两个位于[0,1]之间的随机数,并在确定各随机数落入不同累计概率范围时,获取与所落入的累计概率范围对应的第一数据条目和第二数据条目。
上述装置中,可选的是,交叉数据条目获取单元,可以具体用于:
在数据条目中包括的各目标计算算子中,选取交叉算子;
根据所述交叉算子在数据条目中的位置,在第一数据条目和第二数据条目中分别获取第一条目部分和第二条目部分;所述交叉算子为第一条目部分的末位算子,或者第二条目部分中的首个算子;
将所述第一条目部分和第二条目部分组合得到备选交叉条目,并在备选交叉条目中获取交叉算子;
根据计算图中各计算算子的拓扑排序,获取与交叉算子匹配的相邻算子;
验证交叉算子与匹配的相邻算子是否满足输入输出连接关系有效性校验条件;
若是,则将备选交叉条目确定为交叉数据条目;否则,返回执行在数据条目中包括的各目标计算算子中,选取交叉算子的操作,直至满足结束选取条件;
在满足结束选取条件时,将所述第一数据条目或者第二数据条目,确定为所述交叉数据条目。
上述装置中,可选的是,还包括,目标张量切分模式替换单元,用于在计算与所述交叉数据条目对应的计算耗时之前:
替换算子选取子单元,用于在检测到满足随机替换条件时,在所述交叉数据条目中选取替换算子;
目标张量切分模式替换子单元,用于对所述替换算子的目标张量切分模式进行满足输入输出有效性条件以及输入输出连接关系有效性校验条件的替换。
上述装置中,可选的是,检测到满足随机替换条件包括:
随机生成目标随机数,并将所述目标随机数与预设的变异门限值进行比对;
如果确定所述目标随机数大于或者等于所述变异门限值,则确定满足随机替换条件。
上述装置中,可选的是,目标张量切分模式替换子单元,可以具体用于:
获取与替换算子的目标张量切分模式对应的可选张量切分模式,作为比对张量切分模式;
在算子信息库中存储的与所述替换算子对应的可选张量切分模式集中,选取区别与比对张量切分模式的替换张量切分模式;
根据替换张量切分模式中的替换输入切分状态,以及替换参考输出切分状态,推导得到与替换输入切分状态对应的替换输出切分状态;
验证替换输入切分状态和替换输出切分状态,是否满足与替换算子对应的输入输出有效性条件;
若是,则根据计算图中各计算算子的拓扑排序,获取与替换算子匹配的相邻算子;
根据所述替换输入切分状态和替换输出切分状态,验证所述替换算子是否与匹配的相邻算子满足输入输出连接关系有效性校验条件;
若是,则使用所述替换输入切分状态和替换输出切分状态,对所述替换算子进行目标张量切分模式的替换。
本发明实施例所提供的张量切分模式的确定装置可执行本发明任意实施例所提供的张量切分模式的确定方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器501、存储器502、输入装置503和输出装置504;计算机设备中处理器501的数量可以是一个或多个,图5中以一个处理器501为例;计算机设备中的处理器501、存储器502、输入装置503和输出装置504可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器502作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的张量切分模式的确定方法对应的程序指令/模块(例如,张量切分模式的确定装置中的计算图获取模块401、数据条目集确定模块402、计算耗时确定模块403、数据条目集更新模块404和张量切分模式确定模块405)。处理器501通过运行存储在存储器502中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的张量切分模式的确定方法,该方法可以包括:
获取待张量切分的计算图,计算图中包括多个计算算子;
根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器502可进一步包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置503可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置504可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种张量切分模式的确定方法,该方法包括:
获取待张量切分的计算图,计算图中包括多个计算算子;
根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的张量切分模式的确定方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述张量切分模式的确定装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (16)

1.一种张量切分模式的确定方法,其特征在于,包括:
获取待张量切分的计算图,计算图中包括多个计算算子;
根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
2.根据权利要求1所述的方法,其特征在于,根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,包括:
对计算图中的各计算算子进行拓扑排序;
创建数据条目模板,并按照排序顺序,依次获取一个当前计算算子;
根据当前计算算子的算子类型,查询算子信息库,并在确定算子信息库中存储与当前计算算子对应的可选张量切分模式集时,将当前计算算子确定为目标计算算子;
根据目标计算算子的可选张量切分模式集,确定目标计算算子的目标张量切分模式,并将目标计算算子和目标张量切分模式加入至数据条目模板中;
返回执行按照排序顺序,依次获取一个当前计算算子的操作,直至完成对计算图中全部计算算子的处理,以生成一个数据条目;
重复执行从创建数据条目模板到生成数据条目的流程,直至生成设定数量的数据条目,以构成所述数据条目集。
3.根据权利要求2所述的方法,其特征在于,根据目标计算算子的可选张量切分模式集,确定目标计算算子的目标张量切分模式,包括:
在目标计算算子的可选张量切分模式集中选取备选张量切分模式,可选张量切分模式中包括:各输入端的输入切分状态和各输出端的参考输出切分状态;
根据备选张量切分模式中的备选输入切分状态,以及备选参考输出切分状态,推导得到与备选输入切分状态对应的目标输出切分状态;
验证备选输入切分状态和目标输出切分状态,是否满足与目标计算算子对应的输入输出有效性条件;
若是,则将所述备选输入切分状态和目标输出切分状态,确定为目标计算算子的目标张量切分模式;
否则,返回执行在目标计算算子的可选张量切分模式集中选择备选张量切分模式的操作,直至成功确定出目标计算算子的目标张量切分模式。
4.根据权利要求3所述的方法,其特征在于,在目标计算算子的可选张量切分模式集中选取备选张量切分模式,包括:
检测所述目标计算算子是否存在前一相邻算子;
若是,则在为前一相邻算子确定出的目标张量切分模式中,获取目标输出切分状态;
根据前一相邻算子的目标输出切分状态,在目标计算算子的可选张量切分模式集中,筛选出与前一相邻算子满足输入输出连接关系有效性校验条件的可选张量切分模式;在筛选出的各可选张量切分模式中,选取所述备选张量切分模式。
5.根据权利要求2所述的方法,其特征在于,在完成对计算图中全部计算算子的处理,以生成一个数据条目之后,还包括:
根据所生成数据条目以及计算图中各计算算子的拓扑排序中,验证两两相邻的计算算子是否满足输入输出连接关系有效性校验条件;
如果确定任一相邻的两个计算算子不满足输入输出连接关系有效性校验条件,则丢弃所述数据条目。
6.根据权利要求1所述的方法,其特征在于,根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时,包括:
在全部数据条目中获取当前处理条目,并获取与计算图对应的原始算子耗时图,原始算子耗时图与计算图中的算子拓扑结构相同;
在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图;
查询预先构建的耗时模型库,计算与所述目标算子耗时图对应的计算耗时。
7.根据权利要求6所述的方法,其特征在于,在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子,生成与当前处理条目对应的目标算子耗时图,包括:
在原始算子耗时图中,加入与当前处理条目中各目标算子的目标张量切分模式分别对应的切分算子;
对所加入的各所述切分算子进行合并和/或对消处理,生成与当前处理条目对应的目标算子耗时图。
8.根据权利要求1所述的方法,其特征在于,根据在数据条目集中选取的多个数据条目对,组合得到多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集,包括:
在所述数据条目集中选取第一数据条目和第二数据条目;
根据所述第一数据条目和第二数据条目,组合得到满足输入输出连接关系有效性校验条件的交叉数据条目;
计算与所述交叉数据条目对应的计算耗时,并根据所述数据条目集中各数据条目以及所述交叉数据条目的计算耗时,更新所述数据条目集;
返回执行在所述数据条目集中选取第一数据条目和第二数据条目的操作,直至满足结束更新条件。
9.根据权利要求8所述的方法,其特征在于,在所述数据条目集中选取第一数据条目和第二数据条目,包括:
根据所述数据条目集中各数据条目的计算耗时,计算与所述数据条目集对应的总计算耗时;
根据所述总计算耗时,确定与各所述数据条目分别对应的耗时比重;
根据各所述数据条目的耗时比重,以及各所述数据条目在所述数据条目集中的排布顺序,计算与各数据条目对应的累计概率范围;
随机生成两个位于[0,1]之间的随机数,并在确定各随机数落入不同累计概率范围时,获取与所落入的累计概率范围对应的第一数据条目和第二数据条目。
10.根据权利要求8所述的方法,其特征在于,根据所述第一数据条目和第二数据条目,组合得到满足输入输出连接关系有效性校验条件的交叉数据条目,包括:
在数据条目中包括的各目标计算算子中,选取交叉算子;
根据所述交叉算子在数据条目中的位置,在第一数据条目和第二数据条目中分别获取第一条目部分和第二条目部分;所述交叉算子为第一条目部分的末位算子,或者第二条目部分中的首个算子;
将所述第一条目部分和第二条目部分组合得到备选交叉条目,并在备选交叉条目中获取交叉算子;
根据计算图中各计算算子的拓扑排序,获取与交叉算子匹配的相邻算子;
验证交叉算子与匹配的相邻算子是否满足输入输出连接关系有效性校验条件;
若是,则将备选交叉条目确定为交叉数据条目;否则,返回执行在数据条目中包括的各目标计算算子中,选取交叉算子的操作,直至满足结束选取条件;
在满足结束选取条件时,将所述第一数据条目或者第二数据条目,确定为所述交叉数据条目。
11.根据权利要求8所述的方法,其特征在于,在计算与所述交叉数据条目对应的计算耗时之前,还包括:
在检测到满足随机替换条件时,在所述交叉数据条目中选取替换算子;
对所述替换算子的目标张量切分模式进行满足输入输出有效性条件以及输入输出连接关系有效性校验条件的替换。
12.根据权利要求11所述的方法,其特征在于,检测到满足随机替换条件包括:
随机生成目标随机数,并将所述目标随机数与预设的变异门限值进行比对;
如果确定所述目标随机数大于或者等于所述变异门限值,则确定满足随机替换条件。
13.根据权利要求11所述的方法,其特征在于,对所述替换算子的目标张量切分模式进行满足输入输出有效性条件以及输入输出连接关系有效性校验条件的替换,包括:
获取与替换算子的目标张量切分模式对应的可选张量切分模式,作为比对张量切分模式;
在算子信息库中存储的与所述替换算子对应的可选张量切分模式集中,选取区别与比对张量切分模式的替换张量切分模式;
根据替换张量切分模式中的替换输入切分状态,以及替换参考输出切分状态,推导得到与替换输入切分状态对应的替换输出切分状态;
验证替换输入切分状态和替换输出切分状态,是否满足与替换算子对应的输入输出有效性条件;
若是,则根据计算图中各计算算子的拓扑排序,获取与替换算子匹配的相邻算子;
根据所述替换输入切分状态和替换输出切分状态,验证所述替换算子是否与匹配的相邻算子满足输入输出连接关系有效性校验条件;
若是,则使用所述替换输入切分状态和替换输出切分状态,对所述替换算子进行目标张量切分模式的替换。
14.一种张量切分模式的确定装置,其特征在于,所述装置包括:
计算图获取模块,用于获取待张量切分的计算图,计算图中包括多个计算算子;
数据条目集确定模块,用于根据与计算算子对应的可选张量切分模式集,确定与计算图对应的数据条目集,数据条目中包括多个目标计算算子和目标计算算子的目标张量切分模式;
计算耗时确定模块,用于根据各所述数据条目中包括的各所述目标张量切分模式,计算与每个数据条目分别对应的计算耗时;
数据条目集更新模块,用于根据在数据条目集中选取的多个数据条目对,生成多个交叉数据条目,并根据各所述交叉数据条目的计算耗时,更新所述数据条目集;
张量切分模式确定模块,用于在更新后的数据条目集中获取目标数据条目,并根据目标数据条目,确定计算图中各计算算子的张量切分模式。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-14中任一项所述的张量切分模式的确定方法。
16.一种计算机可执行指令的存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-14中任一项所述的张量切分模式的确定方法。
CN202210415394.1A 2022-04-20 2022-04-20 张量切分模式的确定方法、装置、计算机设备及介质 Pending CN114723014A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210415394.1A CN114723014A (zh) 2022-04-20 2022-04-20 张量切分模式的确定方法、装置、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210415394.1A CN114723014A (zh) 2022-04-20 2022-04-20 张量切分模式的确定方法、装置、计算机设备及介质

Publications (1)

Publication Number Publication Date
CN114723014A true CN114723014A (zh) 2022-07-08

Family

ID=82246149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210415394.1A Pending CN114723014A (zh) 2022-04-20 2022-04-20 张量切分模式的确定方法、装置、计算机设备及介质

Country Status (1)

Country Link
CN (1) CN114723014A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617351A (zh) * 2022-11-29 2023-01-17 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
WO2024066847A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种基于多裸片的计算方法及相关设备
WO2024140032A1 (zh) * 2022-12-31 2024-07-04 北京希姆计算科技有限公司 确定算子切分策略的方法和装置
WO2024140033A1 (zh) * 2022-12-31 2024-07-04 北京希姆计算科技有限公司 一种算子切分方法、装置和算子编译系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024066847A1 (zh) * 2022-09-29 2024-04-04 华为技术有限公司 一种基于多裸片的计算方法及相关设备
CN115617351A (zh) * 2022-11-29 2023-01-17 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
CN115617351B (zh) * 2022-11-29 2023-03-21 上海燧原科技有限公司 算子的切分图样搜索方法、装置、计算机设备及存储介质
WO2024140032A1 (zh) * 2022-12-31 2024-07-04 北京希姆计算科技有限公司 确定算子切分策略的方法和装置
WO2024140033A1 (zh) * 2022-12-31 2024-07-04 北京希姆计算科技有限公司 一种算子切分方法、装置和算子编译系统

Similar Documents

Publication Publication Date Title
CN114723014A (zh) 张量切分模式的确定方法、装置、计算机设备及介质
CN108492201B (zh) 一种基于社区结构的社交网络影响力最大化方法
US20120254183A1 (en) Method and System for Clustering Data Points
CN111552509B (zh) 一种接口间依赖关系的确定方法及装置
CN111435343B (zh) 计算机系统日志模板的自动生成和在线更新方法与系统
CN107291716B (zh) 一种链路数据校验方法及装置
CN111966912B (zh) 基于知识图谱的推荐方法、装置、计算机设备及存储介质
WO2015180340A1 (zh) 一种数据挖掘方法及装置
CN106033425A (zh) 数据处理设备和数据处理方法
CN105183824B (zh) 数据整合方法及装置
Xiaolong et al. RFC: a feature selection algorithm for software defect prediction
CN108346098A (zh) 一种风控规则挖掘的方法及装置
US20100005203A1 (en) Method of Merging and Incremantal Construction of Minimal Finite State Machines
Nikolaou et al. Fast consistency checking of very large real-world rcc-8 constraint networks using graph partitioning
JPWO2019138584A1 (ja) 分類木生成方法、分類木生成装置および分類木生成プログラム
CN115130043B (zh) 基于数据库的数据处理方法、装置、设备及存储介质
CN106844533A (zh) 一种数据分组聚集方法及装置
CN109993338B (zh) 一种链路预测方法及装置
CN111488490B (zh) 视频聚类方法、装置、服务器及存储介质
CN114678114A (zh) 应用于智慧医疗的大数据挖掘评估方法及大数据挖掘系统
CN114328525A (zh) 数据处理方法及设备
KR20200120740A (ko) 빅데이터 개인정보의 익명화 및 익명화 데이터의 결합 방법
CN117811992B (zh) 一种网络不良信息传播抑制方法、装置、设备及存储介质
CN113064597B (zh) 一种冗余代码的识别方法、装置和设备
Lotfifar et al. A serial multilevel hypergraph partitioning algorithm

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
CB02 Change of applicant information

Country or region after: China

Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant after: Shanghai Suiyuan Technology Co.,Ltd.

Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306

Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd.

Country or region before: China

CB02 Change of applicant information