CN117032938B - 一种算子的并行调度方法、装置、电子设备及存储介质 - Google Patents
一种算子的并行调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117032938B CN117032938B CN202311287203.9A CN202311287203A CN117032938B CN 117032938 B CN117032938 B CN 117032938B CN 202311287203 A CN202311287203 A CN 202311287203A CN 117032938 B CN117032938 B CN 117032938B
- Authority
- CN
- China
- Prior art keywords
- operator
- model
- information
- target
- node
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000012549 training Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 16
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 9
- 238000010606 normalization Methods 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 238000013473 artificial intelligence Methods 0.000 description 107
- 238000004891 communication Methods 0.000 description 9
- 238000003062 neural network model Methods 0.000 description 9
- 238000005070 sampling Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种算子的并行调度方法、装置、电子设备及存储介质。该算子的并行调度方法,具体可以包括:确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。本发明实施例的技术方案使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种算子的并行调度方法、装置、电子设备及存储介质。
背景技术
极致的推理性能是AI(Artificial Intelligence,人工智能)算法部署的关键因素,能够显著提高AI业务的性价比。随着科技的发展和人工智能的进步,AI算力和AI算法的拓扑结构都在发生着显著的改变。现在较为流行的AI模型的推理框架主要聚焦于算子内部的并行性能优化,算子和算子之间大多是串行执行的,执行完一个算子再执行下一个算子,也即每次只执行一个算子。
然而,随着算子种类的多样化发展,以及AI模型结构的多分支发展,每次只执行一个算子可能无法完全用满设备上的并行计算单元及带宽,导致峰值性能和实际性能的差距较大,降低了设备的计算单元利用率和带宽利用率,无法发挥AI模型的推理性能。
发明内容
本发明实施例提供一种算子的并行调度方法、装置、电子设备及存储介质,能够使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
根据本发明的一方面,提供了一种算子的并行调度方法,包括:
确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;
确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;
根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。
根据本发明的另一方面,提供了一种算子的并行调度装置,包括:
模型拓扑图确定模块,用于确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;
算子节点开销确定模块,用于确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;
算子并行调度策略确定模块,用于根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的算子的并行调度方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的算子的并行调度方法。
本发明实施例的技术方案,通过确定目标AI模型,并确定目标AI模型对应的目标模型拓扑图,以确定目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,再根据算子节点开销对目标模型拓扑图进行更新,从而根据更新后的目标模型拓扑图确定目标AI模型对应的算子并行调度策略,进而根据算子并行调度策略对目标AI模型中的算子进行并行调度,解决了现有技术中由于只执行一个算子无法完全用满设备上的并行计算单元及带宽,导致的硬件资源利用率较低以及AI模型推理性能较差的问题,能够使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种算子的并行调度方法的流程图;
图2是本发明实施例二提供的一种算子的并行调度方法的流程图;
图3是本发明实施例二提供的一种算子信息预测模型的结构图;
图4是本发明实施例二提供的一种构建训练样本数据的示例流程图;
图5是本发明实施例二提供的一种算子信息预测模型训练的示例流程图;
图6是本发明实施例二提供的一种确定算子节点开销的示例流程图;
图7是本发明实施例三提供的一种算子的并行调度方法的示例流程图;
图8是本发明实施例四提供的一种算子的并行调度装置的示意图;
图9是实现本发明实施例的算子的并行调度方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例一提供的一种算子的并行调度方法的流程图,本实施例可适用于提高目标AI模型的推理性能,同时提高硬件资源的利用率的情况,该方法可以由算子的并行调度装置执行,该装置可以通过软件和/或硬件的方式实现,并一般可以直接集成在执行本方法的电子设备中,该电子设备可以是终端设备,也可以是服务器设备,本发明实施例并不对执行算子的并行调度方法的电子设备的类型进行限定。具体的,如图1所示,该算子的并行调度方法具体可以包括如下步骤:
S110、确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图。
其中,目标AI模型可以是任意AI模型中的一个目标。可以理解的是,不同AI模型可以对应不同的推理框架,也即不同AI模型中可以有不同的算子。目标模型拓扑图可以是目标AI模型对应的拓扑图。可以理解的是,不同推理框架的AI模型对应的拓扑图不同。
在本发明实施例中,确定目标AI模型,以确定目标AI模型对应的目标模型拓扑图。
S120、确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新。
其中,拓扑图算子节点可以是目标模型拓扑图中的算子节点。算子节点开销可以是目标模型拓扑图中的算子节点对应的算子在执行时所占用的时间、内存等。可以理解的是,目标模型拓扑图中可以有多个拓扑图算子节点,不同的拓扑图算子节点对应不同的算子节点开销。
在本发明实施例中,在确定目标AI模型对应的目标模型拓扑图之后,可以进一步确定目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,以根据算子节点开销对目标模型拓扑图进行更新。具体的,根据算子节点开销对目标模型拓扑图进行更新,可以是根据算子节点开销对目标模型拓扑图中的拓扑图算子节点进行更新。
S130、根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。
其中,算子并行调度策略可以是目标AI模型中的算子并行调度的策略。在本发明实施例中,在根据算子节点开销对目标模型拓扑图进行更新之后,可以进一步根据更新后的目标模型拓扑图确定目标AI模型对应的算子并行调度策略,从而根据算子并行调度策略对目标AI模型中的算子进行并行调度。可以理解的是,目标AI模型中可以包括多个算子,通过根据算子并行调度策略对目标AI模型中的算子进行并行调度,从而使得算子能够并行执行。
本实施例的技术方案,通过确定目标AI模型,并确定目标AI模型对应的目标模型拓扑图,以确定目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,再根据算子节点开销对目标模型拓扑图进行更新,从而根据更新后的目标模型拓扑图确定目标AI模型对应的算子并行调度策略,进而根据算子并行调度策略对目标AI模型中的算子进行并行调度,解决了现有技术中由于只执行一个算子无法完全用满设备上的并行计算单元及带宽,导致的硬件资源利用率较低以及AI模型推理性能较差的问题,能够使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
实施例二
图2是本发明实施例二提供的一种算子的并行调度方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了确定所述目标AI模型对应的目标模型拓扑图,确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,以及根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。如图2所示,该方法可以包括如下步骤:
S210、确定目标AI模型,并确定所述目标AI模型中的模型算子对应的节点类型,以根据所述节点类型确定所述模型算子对应的模型算子节点。
其中,模型算子可以是目标AI模型中的算子。示例性的,模型算子可以是卷积算子,矩阵乘算子,Binary(二进制)算子或分布式通信算子等,本发明实施例对此并不进行限制。节点类型可以是模型算子对应的类型,例如卷积算子对应的节点类型可以是卷积类型等,本发明实施例对此并不进行限制。模型算子节点可以是目标AI模型中的算子对应的节点。
在本发明实施例中,确定目标AI模型,以确定目标AI模型中的模型算子对应的节点类型,从而根据节点类型确定模型算子对应的模型算子节点。
S220、确定所述模型算子对应的算子计算依赖关系,并根据所述算子计算依赖关系确定所述模型算子节点的节点连接关系。
其中,算子计算依赖关系可以是模型算子在计算时所依赖的关系。示例性的,模型算子B在计算时,需要根据模型算子A的计算结果进行计算,说明模型算子A和模型算子B存在计算依赖关系,则可以确定算子计算依赖关系为“模型算子B的输入依赖模型算子A的输出”。节点连接关系可以是模型算子节点之间的连接关系。可以理解的是,存在算子计算依赖关系的模型算子对应的模型算子节点之间是相互连接的。不存在算子计算依赖关系的模型算子对应的模型算子节点之间是不存在连接关系的。
在本发明实施例中,在根据节点类型确定模型算子对应的模型算子节点之后,可以进一步确定模型算子对应的算子计算依赖关系,以根据算子计算依赖关系确定模型算子节点的节点连接关系。可以理解的是,确定模型算子对应的算子计算依赖关系,可以是根据目标AI模型中的模型算子的执行情况确定的。模型算子的执行情况例如可以是模型算子的执行顺序、模型算子的输入数据或模型栓子的输出数据等,本发明实施例对此并不进行限制。
S230、根据所述模型算子节点和所述节点连接关系确定所述目标AI模型对应的目标模型拓扑图。
在本发明实施例中,在根据算子计算依赖关系确定模型算子节点的节点连接关系之后,可以进一步根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图。
可选的,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,还可以包括:确定目标模型拓扑图中的未使用算子节点,并将未使用算子节点在目标模型拓扑图中删除;和/或确定目标模型拓扑图中的常量类型节点,并将常量类型节点在目标模型拓扑图中进行常量折叠;和/或确定目标模型拓扑图中的共同计算节点,并将共同计算节点在目标模型拓扑图中进行算子节点合并。
其中,未使用算子节点可以是在目标AI模型在推理过程中,未使用到的算子对应的节点。常量类型节点可以是节点类型为常量类型的节点。常量折叠可以是将常量类型节点与其他节点进行折叠,以对目标模型拓扑图进行精简。共同计算节点可以是能够共同计算的节点。
具体的,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,可以进一步确定目标模型拓扑图中的未使用算子节点,以将未使用算子节点在目标模型拓扑图中删除。上述技术方案,通过删除未使用算子节点,能够提高目标AI模型执行序列的运行性能。
具体的,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,还可以确定目标模型拓扑图中的常量类型节点,以将常量类型节点在目标模型拓扑图中进行常量折叠。示例性的,假设常量类型节点A为2,常量类型节点B为3,且常量类型节点A和常量类型节点B为乘法算子节点的输入,则将常量类型节点进行常量折叠后可以得到常量类型节点6。上述技术方案,通过将常量类型节点进行常量折叠能够精简拓扑图,减少节点,提高目标AI模型执行序列的运行性能。
具体的,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,还可以确定目标模型拓扑图中的共同计算节点,以将共同计算节点在目标模型拓扑图中进行算子节点合并。示例性的,假设算子节点A为加法算子,算子节点B为减法算子,且算子节点A的输出是算子节点B的输入,则算子节点A和算子节点B为共同计算节点,算子节点合并之后即可得到包括加法和减法的算子节点C。上述技术方案,通过算子节点合并,能够减少节点,提高目标AI模型执行序列的运行性能。
可以理解的是,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,可以进一步执行删除未使用算子节点、常量折叠、算子节点合并中的任意一项,也可以执行上述三项中的任意两项,或者还可以上述三项全部执行,本发明实施例对此并不进行限制。
S240、确定所述目标模型拓扑图中的拓扑图算子节点的算子输入输出信息;其中,所述算子输入输出信息包括算子输入形状、算子输出形状、算子输入数据类型和算子输出数据类型。
其中,算子输入输出信息可以是拓扑图算子节点对应的算子在执行计算时的输入信息和输出信息。算子输入形状可以是输入算子的形状。算子输出形状可以是算子输出的形状。算子输入数据类型可以是输入算子的数据类型。算子输出数据类型可以是算子输出的数据类型。
在本发明实施例中,在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,可以进一步确定目标模型拓扑图中的拓扑图算子节点的算子输入输出信息。可以理解的是,不同的拓扑图算子节点可以对应不同的算子输入输出信息。
S250、将所述算子输入输出信息输入至预先训练的算子信息预测模型中,以通过所述算子信息预测模型输出所述拓扑图算子节点对应的预测算子执行信息;其中,所述预测算子执行信息至少包括算子预测执行时间。
其中,算子信息预测模型可以是能够预测算子开销信息的模型。可选的,算子信息预测模型可以是神经网络模型。预测算子执行信息可以是通过算子信息预测模型预测得到的算子执行所需的开销信息。算子预测执行时间可以是通过算子信息预测模型预测得到的算子执行所需的时间。
在本发明实施例中,在确定目标模型拓扑图中的拓扑图算子节点的算子输入输出信息之后,可以进一步将算子输入输出信息输入至预先训练的算子信息预测模型中,以通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息。具体的,预测算子执行信息可以包括算子预测执行时间。可选的,预测算子执行信息还可以包括算子预测切分信息、算子预测计算单元占用数量和算子预测内存占用大小。
可选的,预先训练的算子信息预测模型可以包括第一模型分支、第二模型分支和第三模型分支;其中,第一模型分支可以包括至少一个线性层和一个加法层;第一模型分支中的第一个线性层和加法层之间残差连接;第二模型分支可以包括至少一个线性层;第三模型分支可以包括一个乘法层和一个线性层;第一模型分支可以对算子输入输出信息中的算子输入形状、和算子输出形状进行数据处理;第二模型分支可以对算子输入输出信息中的算子输入数据类型和算子输出数据类型进行数据处理;第三模型分支可以对第一模型分支的数据处理结果和第二模型分支的数据处理结果进行数据处理得到算子信息预测模型的输出结果。
其中,第一模型分支可以是算子信息预测模型中的一个分支。具体的,第一模型分支可以包括至少一个线性层和一个加法层,其中,第一个线性层和加法层之间可以进行残差连接,而且第一模型分支可以对算子输入输出信息中的算子输入形状、和算子输出形状进行数据处理。
其中,第二模型分支可以是算子信息预测模型中的另一个分支。具体的,第二模型分支可以包括至少一个线性层,可以对算子输入输出信息中的算子输入数据类型和算子输出数据类型进行数据处理。
其中,第三模型分支可以是算子信息预测模型中的又一个分支。具体的,第三模型分支可以包括一个乘法层和一个线性层,可以对第一模型分支的数据处理结果和第二模型分支的数据处理结果进行数据处理得到算子信息预测模型的输出结果。具体的,可以通过第三模型分支中的乘法层对第一模型分支的数据处理结果和第二模型分支的数据处理结果进行乘法处理后,再通过线性层对乘法处理得到的结果进行数据处理,从而得到算子信息预测模型的输出结果。
示例性的,图3是本发明实施例二提供的一种算子信息预测模型的结构图,如图3所示,第一模型分支可以包括三个线性层和一个加法层,第二模型分支可以包括三个线性层。
可选的,在将算子输入输出信息输入至预先训练的算子信息预测模型中之前,还可以包括:构建历史开销信息数据库,并确定历史开销信息数据库中每个算子对应的历史开销信息;根据各历史开销信息构建算子信息预测模型的训练样本数据,以根据训练样本数据对算子信息预测模型进行训练。
其中,历史开销信息数据库可以是历史开销信息构成的数据库。历史开销信息可以是算子在之前的执行计算过程中的开销信息。可选的,历史开销信息可以是经过人工进行极致优化过的算子数据流。
可选的,历史开销信息可以包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型、算子历史输出数据类型、算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间。
具体的,在将算子输入输出信息输入至预先训练的算子信息预测模型中之前,可以构建历史开销信息数据库,并确定历史开销信息数据库中每个算子对应的历史开销信息,以根据各历史开销信息构建算子信息预测模型的训练样本数据,从而根据训练样本数据对算子信息预测模型进行训练。
可选的,根据各历史开销信息构建算子信息预测模型的训练样本数据,可以包括:将历史开销信息进行信息拆分得到拆分输入信息和拆分标签信息,并分别对拆分输入信息和拆分标签信息进行归一化处理;根据归一化处理后的拆分输入信息和拆分标签信息,构建算子信息预测模型的训练样本数据;其中,拆分输入信息包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型和算子历史输出数据类型;拆分标签信息包括算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间。
其中,拆分输入信息可以是拆分后得到的算子的输入信息,例如可以包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型和算子历史输出数据类型。拆分标签信息可以是拆分后能够作为算子标签的信息,例如可以包括算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间。
具体的,在确定历史开销信息数据库中每个算子对应的历史开销信息之后,可以进一步将历史开销信息进行信息拆分得到拆分输入信息和拆分标签信息,以分别对拆分输入信息和拆分标签信息进行归一化处理,从而根据归一化处理后的拆分输入信息和拆分标签信息构建算子信息预测模型的训练样本数据。
示例性的,图4是本发明实施例二提供的一种构建训练样本数据的示例流程图,如图4所示,在cost信息数据库(也即历史开销信息数据库)中读取信息条目(也即历史开销信息),并将信息条目拆分为input(也即拆分输入信息)和label(也即拆分标签信息),再分别将input和label进行归一化处理,以将归一化处理后的数据(也即训练样本数据)进行存盘。
在本发明实施例的另一个具体示例中,图5是本发明实施例二提供的一种算子信息预测模型训练的示例流程图,如图5所示,算子信息预测模型在训练过程中,更新模型权重时的学习率可以通过学习的方式确定。
S260、将所述预测算子执行信息中的算子预测执行时间确定为所述拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新。
在本发明实施例中,在通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息之后,可以进一步将预测算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销,以根据算子节点开销对目标模型拓扑图进行更新。
可选的,算子信息预测模型输出的拓扑图算子节点对应的预测算子执行信息的数量可以为多个;相应的,在通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息之后,还可以包括:将各预测算子执行信息进行排序,并根据排序结果在各预测算子执行信息中确定至少一个筛选算子执行信息;根据各筛选算子执行信息分别在设备上运行拓扑图算子节点对应的算子,以确定各筛选算子执行信息中的目标算子执行信息;将目标算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销。
可以理解的是,在算子信息预测模型输出预测算子执行信息时,可以输出多个预测算子执行信息。其中,筛选算子执行信息可以是在多个预测算子执行信息中筛选得到的算子执行信息。可选的,筛选算子执行信息可以是一个或多个,本发明实施例对此并不进行限制。目标算子执行信息可以是筛选算子执行信息中的一个目标值。
具体的,在通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息之后,可以进一步将各预测算子执行信息进行排序,并根据排序结果在各预测算子执行信息中确定至少一个筛选算子执行信息,以根据各筛选算子执行信息分别在设备上运行拓扑图算子节点对应的算子,从而确定各筛选算子执行信息中的目标算子执行信息,进而将目标算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销。
示例性的,图6是本发明实施例二提供的一种确定算子节点开销的示例流程图,如图6所示,该方法具体可以包括:确定目标模型拓扑图中的拓扑图算子节点的算子输入输出信息,并将算子输入输出信息输入至神经网络模型(也即算子信息预测模型)中,得到采样点(也即预测算子执行信息)候选列表,并选取top5的切分采样点(也即筛选算子执行信息),再将采样点在设备上进行实测,得到最优采样点(也即目标算子执行信息)。
S270、根据所述算子节点开销和预设并发条件确定所述目标模型拓扑图中拓扑图算子节点的节点执行策略。
其中,预设并发条件可以是预先设定的算子并行执行所需要满足的条件。可选的,预设并发条件可以是在同一时刻能够并发的任务数量最多,并且并行任务的总开销最大。节点执行策略可以是拓扑图算子节点的执行策略。可选的,节点执行策略可以包括节点的执行流与执行序列。
在本发明实施例中,在根据算子节点开销对目标模型拓扑图进行更新之后,可以进一步根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略。
S280、根据所述拓扑图算子节点的节点执行策略确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。
在本发明实施例中,在根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略之后,可以进一步根据拓扑图算子节点的节点执行策略确定目标AI模型对应的算子并行调度策略,以根据算子并行调度策略对目标AI模型中的算子进行并行调度。
可选的,在根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略之后,还可以包括:确定拓扑图算子节点的内核属性信息,并根据内核属性信息确定拓扑图算子节点的节点下发策略;根据节点下发策略对节点执行策略进行策略优化,并根据策略优化后的节点执行策略确定目标AI模型对应的算子并行调度策略。
其中,内核属性信息可以是算子对应的内核的属性信息,例如可以是代码大小和参数大小等,本发明实施例对此并不进行限制。可以理解的是,每个算子都可以有一个或多个内核,内核可以是指在计算单元上运行的程序。节点下发策略可以是下发节点对应的算子的策略,例如可以是同时下发算子的策略,也可以是按顺序下发算子的策略等,本发明实施例对此并不进行限制。
具体的,在根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略之后,可以进一步确定拓扑图算在节点的内核属性信息,并根据内核属性信息确定拓扑图算子节点的节点下发策略,以根据节点下发策略对节点执行策略进行策略优化,从而根据策略优化后的节点执行策略确定目标AI模型对应的算子并行调度策略。
本实施例的技术方案,通过确定目标AI模型,并确定目标AI模型中的模型算子对应的节点类型,以根据节点类型确定模型算子对应的模型算子节点,再确定模型算子对应的算子计算依赖关系,并根据算子计算依赖关系确定模型算子节点的节点连接关系,从而根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图,再确定目标模型拓扑图中的拓扑图算子节点的算子输入输出信息,将算子输入输出信息输入至预先训练的算子信息预测模型中,以通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息,从而将预测算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销,并根据算子节点开销对目标模型拓扑图进行更新,再根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略,以根据拓扑图算子节点的节点执行策略确定目标AI模型对应的算子并行调度策略,从而根据算子并行调度策略对目标AI模型中的算子进行并行调度,解决了现有技术中由于只执行一个算子无法完全用满设备上的并行计算单元及带宽,导致的硬件资源利用率较低以及AI模型推理性能较差的问题,能够使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
实施例三
为了使本领域技术人员更好地理解本实施例算子的并行调度方法,下面采用一个具体示例进行说明。图7是本发明实施例三提供的一种算子的并行调度方法的示例流程图,如图7所示,该方法具体可以包括:
步骤一:通过图转换器将AI模型转换为拓扑图。具体的,对AI模型中的每种计算(也即算子)定义Node(节点)类型,Node中可以包含计算的特有属性及其他计算相关信息。将AI模型中的对应操作转换为对应的Node。根据AI模型中的计算依赖关系建立对应的Node的图拓扑连接。将图拓扑中未用到的Node进行消除,并重新建立图拓扑。将图拓扑中用到的常量表达式进行常量折叠,将拓扑图进行精简,并重新建立图拓扑。将图拓扑中可以共同计算的部分进行合并,得到一个Node,并重新建立图拓扑。
步骤二:通过cost分析模块确定拓扑图中各算子节点的cost(开销)。具体的,根据算子的输入形状,输出形状,输入数据类型,输出数据类型,利用神经网络模型预测当前算子的若干最优的切分采样点,即粗筛。然后将这些采样点在设备上进行实测,选出最优的采样点,即细筛。获取最优采样点对应的切分信息及执行时间,并将执行时间作为当前算子的开销。
具体的,训练神经网络模型可以包括:构建cost信息数据库;收集经过手工极致优化的算子数据流,构建cost信息数据库,数据库中每条信息包含输入形状,输出形状,输入数据类型,输出数据类型,memory占用大小,切分信息,执行时间,计算单元占用数量。构建训练样本;从数据库中读取cost信息,构建训练样本,这些样本用于神经网络模型的训练。神经网络模型的输入数据为输入形状,输出形状,输入数据类型,输出数据类型,神经网络模型的输出数据为切分信息,计算单元占用数量,memory占用大小,执行时间。通过构建的训练样本对神经网络模型进行训练。其中,神经网络模型属于数据驱动的一种机器学习技术,其基于经验风险最小的理论,具有很好的对物体的建模和拟合能力。硬件设备具有复杂的架构设计,直接对复杂的硬件结构建模很难,所以,这里将硬件设备看做黑盒,利用神经网络对硬件设备建模,硬件特性会反应到训练后的神经网络权重中,从而使得神经网络具有估计cost的能力。
步骤三:通过调度策略分析器确定拓扑图中各节点的执行流和执行序列。具体的,将带有cost的图拓扑输入调度策略分析。调度策略分析器基于cost与局部最大并发理论(也即在同一时刻能够并发的任务数量最多,并且并行任务的总cost最大)进行图遍历搜索,将不同算子映射到不同的stage(阶段)和stream(流)上,并使得同时并行的算子最大化利用硬件资源,初步得到执行流与执行序列。其中,有互相依赖关系的算子放到同一个stream上,无互相依赖关系的算子放到不同的stream上。调度策略分析器依据kernel(内核)的属性信息(code size代码大小及parameter size参数大小),优化kernel下发策略,将无依赖的kernel打包下发,对初步得到的执行流与执行序列进一步优化,减少算子执行之间的间隙,得到最终的执行流与执行序列。在最终的执行流与执行序列中,不同stage中的算子串行执行,相同stage中的算子并行执行,并行执行的任务cost之和最大,从而达到最大资源利用率。
上述技术方案,利用AI算法拓扑图节点间的依赖关系,利用神经网络预测算子的开销,并结合节点对应的算子的开销,通过有效的图搜索算法,生成高效的运行期调度策略,从而显著提高AI模型推理的性能。
实施例四
图8是本发明实施例四提供的一种算子的并行调度装置的示意图,如图8所示,所述装置包括:模型拓扑图确定模块810、算子节点开销确定模块820以及算子并行调度策略确定模块830,其中:
模型拓扑图确定模块810,用于确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;
算子节点开销确定模块820,用于确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;
算子并行调度策略确定模块830,用于根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度。
本实施例的技术方案,通过确定目标AI模型,并确定目标AI模型对应的目标模型拓扑图,以确定目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,再根据算子节点开销对目标模型拓扑图进行更新,从而根据更新后的目标模型拓扑图确定目标AI模型对应的算子并行调度策略,进而根据算子并行调度策略对目标AI模型中的算子进行并行调度,解决了现有技术中由于只执行一个算子无法完全用满设备上的并行计算单元及带宽,导致的硬件资源利用率较低以及AI模型推理性能较差的问题,能够使目标AI模型中的算子并行执行,从而提高了目标AI模型的推理性能,同时提高了硬件资源的利用率。
可选的,模型拓扑图确定模块810,可以具体用于:确定目标AI模型中的模型算子对应的节点类型,并根据节点类型确定模型算子对应的模型算子节点;确定模型算子对应的算子计算依赖关系,并根据算子计算依赖关系确定模型算子节点的节点连接关系;根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图。
可选的,模型拓扑图确定模块810,可以进一步用于:在根据模型算子节点和节点连接关系确定目标AI模型对应的目标模型拓扑图之后,确定目标模型拓扑图中的未使用算子节点,并将未使用算子节点在目标模型拓扑图中删除;和/或确定目标模型拓扑图中的常量类型节点,并将常量类型节点在目标模型拓扑图中进行常量折叠;和/或确定目标模型拓扑图中的共同计算节点,并将共同计算节点在目标模型拓扑图中进行算子节点合并。
可选的,算子节点开销确定模块820,可以具体用于:确定拓扑图算子节点的算子输入输出信息;其中,算子输入输出信息包括算子输入形状、算子输出形状、算子输入数据类型和算子输出数据类型;将算子输入输出信息输入至预先训练的算子信息预测模型中,以通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息;其中,预测算子执行信息至少包括算子预测执行时间;将预测算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销。
可选的,算子信息预测模型输出的拓扑图算子节点对应的预测算子执行信息的数量可以为多个;相应的,算子节点开销确定模块820,可以进一步用于:在通过算子信息预测模型输出拓扑图算子节点对应的预测算子执行信息之后,将各预测算子执行信息进行排序,并根据排序结果在各预测算子执行信息中确定至少一个筛选算子执行信息;根据各筛选算子执行信息分别在设备上运行拓扑图算子节点对应的算子,以确定各筛选算子执行信息中的目标算子执行信息;将目标算子执行信息中的算子预测执行时间确定为拓扑图算子节点对应的算子节点开销。
可选的,预先训练的算子信息预测模型可以包括第一模型分支、第二模型分支和第三模型分支;其中,第一模型分支可以包括至少一个线性层和一个加法层;第一模型分支中的第一个线性层和加法层之间残差连接;第二模型分支可以包括至少一个线性层;第三模型分支可以包括一个乘法层和一个线性层;第一模型分支可以对算子输入输出信息中的算子输入形状、和算子输出形状进行数据处理;第二模型分支可以对算子输入输出信息中的算子输入数据类型和算子输出数据类型进行数据处理;第三模型分支可以对第一模型分支的数据处理结果和第二模型分支的数据处理结果进行数据处理得到算子信息预测模型的输出结果。
可选的,算子节点开销确定模块820,还可以具体用于:在将算子输入输出信息输入至预先训练的算子信息预测模型中之前,构建历史开销信息数据库,并确定历史开销信息数据库中每个算子对应的历史开销信息;根据各历史开销信息构建算子信息预测模型的训练样本数据,以根据训练样本数据对算子信息预测模型进行训练。
可选的,历史开销信息可以包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型、算子历史输出数据类型、算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间;相应的,算子节点开销确定模块820,还可以进一步用于:将历史开销信息进行信息拆分得到拆分输入信息和拆分标签信息,并分别对拆分输入信息和拆分标签信息进行归一化处理;根据归一化处理后的拆分输入信息和拆分标签信息,构建算子信息预测模型的训练样本数据;其中,拆分输入信息包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型和算子历史输出数据类型;拆分标签信息包括算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间。
可选的,算子并行调度策略确定模块830,可以具体用于:根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略;根据拓扑图算子节点的节点执行策略确定目标AI模型对应的算子并行调度策略。
可选的,算子并行调度策略确定模块830,可以进一步用于:在根据算子节点开销和预设并发条件确定目标模型拓扑图中拓扑图算子节点的节点执行策略之后,确定拓扑图算子节点的内核属性信息,并根据内核属性信息确定拓扑图算子节点的节点下发策略;根据节点下发策略对节点执行策略进行策略优化,并根据策略优化后的节点执行策略确定目标AI模型对应的算子并行调度策略。
本发明实施例所提供的算子的并行调度装置可执行本发明任意实施例所提供的算子的并行调度方法,具备执行方法相应的功能模块和有益效果。
实施例五
图9示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图9所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如算子的并行调度方法。
在一些实施例中,算子的并行调度方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的算子的并行调度方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行算子的并行调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种算子的并行调度方法,其特征在于,包括:
确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;
确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;
根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度;
所述确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,包括:
确定所述拓扑图算子节点的算子输入输出信息;其中,所述算子输入输出信息包括算子输入形状、算子输出形状、算子输入数据类型和算子输出数据类型;
将所述算子输入输出信息输入至预先训练的算子信息预测模型中,以通过所述算子信息预测模型输出所述拓扑图算子节点对应的预测算子执行信息;其中,所述预测算子执行信息至少包括算子预测执行时间;
将所述预测算子执行信息中的算子预测执行时间确定为所述拓扑图算子节点对应的算子节点开销;
所述预先训练的算子信息预测模型包括第一模型分支、第二模型分支和第三模型分支;其中,所述第一模型分支包括至少一个线性层和一个加法层;所述第一模型分支中的第一个线性层和加法层之间残差连接;所述第二模型分支包括至少一个线性层;所述第三模型分支包括一个乘法层和一个线性层;
所述第一模型分支对所述算子输入输出信息中的算子输入形状、和算子输出形状进行数据处理;
所述第二模型分支对所述算子输入输出信息中的算子输入数据类型和算子输出数据类型进行数据处理;
所述第三模型分支对所述第一模型分支的数据处理结果和所述第二模型分支的数据处理结果进行数据处理得到所述算子信息预测模型的输出结果。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标AI模型对应的目标模型拓扑图,包括:
确定所述目标AI模型中的模型算子对应的节点类型,并根据所述节点类型确定所述模型算子对应的模型算子节点;
确定所述模型算子对应的算子计算依赖关系,并根据所述算子计算依赖关系确定所述模型算子节点的节点连接关系;
根据所述模型算子节点和所述节点连接关系确定所述目标AI模型对应的目标模型拓扑图。
3.根据权利要求2所述的方法,其他在于,在所述根据所述模型算子节点和所述节点连接关系确定所述目标AI模型对应的目标模型拓扑图之后,还包括:
确定所述目标模型拓扑图中的未使用算子节点,并将所述未使用算子节点在所述目标模型拓扑图中删除;和/或
确定所述目标模型拓扑图中的常量类型节点,并将所述常量类型节点在所述目标模型拓扑图中进行常量折叠;和/或
确定所述目标模型拓扑图中的共同计算节点,并将所述共同计算节点在所述目标模型拓扑图中进行算子节点合并。
4.根据权利要求1所述的方法,其特征在于,所述算子信息预测模型输出的所述拓扑图算子节点对应的预测算子执行信息的数量为多个;
在所述通过所述算子信息预测模型输出所述拓扑图算子节点对应的预测算子执行信息之后,还包括:
将各所述预测算子执行信息进行排序,并根据排序结果在各所述预测算子执行信息中确定至少一个筛选算子执行信息;
根据各所述筛选算子执行信息分别在设备上运行所述拓扑图算子节点对应的算子,以确定各所述筛选算子执行信息中的目标算子执行信息;
将所述目标算子执行信息中的算子预测执行时间确定为所述拓扑图算子节点对应的算子节点开销。
5.根据权利要求1所述的方法,其特征在于,在所述将所述算子输入输出信息输入至预先训练的算子信息预测模型中之前,还包括:
构建历史开销信息数据库,并确定所述历史开销信息数据库中每个算子对应的历史开销信息;
根据各所述历史开销信息构建所述算子信息预测模型的训练样本数据,以根据所述训练样本数据对所述算子信息预测模型进行训练。
6.根据权利要求5所述的方法,其特征在于,所述历史开销信息包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型、算子历史输出数据类型、算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间;
所述根据各所述历史开销信息构建所述算子信息预测模型的训练样本数据,包括:
将所述历史开销信息进行信息拆分得到拆分输入信息和拆分标签信息,并分别对所述拆分输入信息和所述拆分标签信息进行归一化处理;
根据归一化处理后的拆分输入信息和拆分标签信息,构建所述算子信息预测模型的训练样本数据;
其中,所述拆分输入信息包括算子历史输入形状、算子历史输出形状、算子历史输入数据类型和算子历史输出数据类型;所述拆分标签信息包括算子历史切分信息、算子历史内存占用大小、算子历史计算单元占用数量和算子历史执行时间。
7.根据权利要求1所述的方法,其特征在于,所述根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,包括:
根据所述算子节点开销和预设并发条件确定所述目标模型拓扑图中拓扑图算子节点的节点执行策略;
根据所述拓扑图算子节点的节点执行策略确定所述目标AI模型对应的算子并行调度策略。
8.根据权利要求7所述的方法,其特征在于,在所述根据所述算子节点开销和预设并发条件确定所述目标模型拓扑图中拓扑图算子节点的节点执行策略之后,还包括:
确定所述拓扑图算子节点的内核属性信息,并根据所述内核属性信息确定所述拓扑图算子节点的节点下发策略;
根据所述节点下发策略对所述节点执行策略进行策略优化,并根据策略优化后的节点执行策略确定所述目标AI模型对应的算子并行调度策略。
9.一种算子的并行调度装置,其特征在于,包括:
模型拓扑图确定模块,用于确定目标AI模型,并确定所述目标AI模型对应的目标模型拓扑图;
算子节点开销确定模块,用于确定所述目标模型拓扑图中的拓扑图算子节点对应的算子节点开销,并根据所述算子节点开销对所述目标模型拓扑图进行更新;
算子并行调度策略确定模块,用于根据更新后的目标模型拓扑图确定所述目标AI模型对应的算子并行调度策略,以根据所述算子并行调度策略对所述目标AI模型中的算子进行并行调度;
所述算子节点开销确定模块,用于确定所述拓扑图算子节点的算子输入输出信息;其中,所述算子输入输出信息包括算子输入形状、算子输出形状、算子输入数据类型和算子输出数据类型;
将所述算子输入输出信息输入至预先训练的算子信息预测模型中,以通过所述算子信息预测模型输出所述拓扑图算子节点对应的预测算子执行信息;其中,所述预测算子执行信息至少包括算子预测执行时间;
将所述预测算子执行信息中的算子预测执行时间确定为所述拓扑图算子节点对应的算子节点开销;
所述预先训练的算子信息预测模型包括第一模型分支、第二模型分支和第三模型分支;其中,所述第一模型分支包括至少一个线性层和一个加法层;所述第一模型分支中的第一个线性层和加法层之间残差连接;所述第二模型分支包括至少一个线性层;所述第三模型分支包括一个乘法层和一个线性层;
所述第一模型分支对所述算子输入输出信息中的算子输入形状、和算子输出形状进行数据处理;
所述第二模型分支对所述算子输入输出信息中的算子输入数据类型和算子输出数据类型进行数据处理;
所述第三模型分支对所述第一模型分支的数据处理结果和所述第二模型分支的数据处理结果进行数据处理得到所述算子信息预测模型的输出结果。
10.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的算子的并行调度方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一项所述的算子的并行调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311287203.9A CN117032938B (zh) | 2023-10-08 | 2023-10-08 | 一种算子的并行调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311287203.9A CN117032938B (zh) | 2023-10-08 | 2023-10-08 | 一种算子的并行调度方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117032938A CN117032938A (zh) | 2023-11-10 |
CN117032938B true CN117032938B (zh) | 2024-01-09 |
Family
ID=88632138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311287203.9A Active CN117032938B (zh) | 2023-10-08 | 2023-10-08 | 一种算子的并行调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117032938B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117271098B (zh) * | 2023-11-21 | 2024-02-13 | 北京燧原智能科技有限公司 | 一种ai模型计算核调度方法、装置、设备及存储介质 |
CN117785492B (zh) * | 2024-02-28 | 2024-05-17 | 上海燧原智能科技有限公司 | 一种算子的切分方式确定方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113822173A (zh) * | 2021-09-01 | 2021-12-21 | 杭州电子科技大学 | 基于节点归并和路径预测的行人属性识别训练加速方法 |
CN114217944A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种神经网络的针对模型并行的动态负载均衡方法 |
CN115391170A (zh) * | 2022-06-07 | 2022-11-25 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
CN116257336A (zh) * | 2022-12-23 | 2023-06-13 | 清华大学 | 波动数据流场景下的算子智能并行化流处理方法及装置 |
CN116302576A (zh) * | 2023-05-25 | 2023-06-23 | 中国地质大学(北京) | 一种弹性伸缩的流应用算子并行化方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930519B (zh) * | 2020-09-22 | 2020-12-15 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
-
2023
- 2023-10-08 CN CN202311287203.9A patent/CN117032938B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114217944A (zh) * | 2021-04-26 | 2022-03-22 | 无锡江南计算技术研究所 | 一种神经网络的针对模型并行的动态负载均衡方法 |
CN113822173A (zh) * | 2021-09-01 | 2021-12-21 | 杭州电子科技大学 | 基于节点归并和路径预测的行人属性识别训练加速方法 |
CN115391170A (zh) * | 2022-06-07 | 2022-11-25 | 北京一流科技有限公司 | 用于分布式数据处理的并行决策系统及其方法 |
CN116257336A (zh) * | 2022-12-23 | 2023-06-13 | 清华大学 | 波动数据流场景下的算子智能并行化流处理方法及装置 |
CN116302576A (zh) * | 2023-05-25 | 2023-06-23 | 中国地质大学(北京) | 一种弹性伸缩的流应用算子并行化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117032938A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117032938B (zh) | 一种算子的并行调度方法、装置、电子设备及存储介质 | |
CN116126346B (zh) | Ai模型的代码编译方法、装置、计算机设备及存储介质 | |
CN114861039B (zh) | 一种搜索引擎的参数配置方法、装置、设备及存储介质 | |
CN115730555A (zh) | 一种芯片布局方法、装置、设备及存储介质 | |
CN113204614B (zh) | 模型训练方法、优化训练数据集的方法及其装置 | |
CN116382658A (zh) | Ai模型的编译方法、装置、计算机设备及存储介质 | |
CN115495248B (zh) | 一种推理卡的内存分配方法、装置、电子设备及存储介质 | |
CN114661571B (zh) | 模型评测方法、装置、电子设备和存储介质 | |
CN116452861A (zh) | 目标模型训练方法、装置及电子设备 | |
CN115796228A (zh) | 算子融合方法、装置、设备以及存储介质 | |
CN115186738A (zh) | 模型训练方法、装置和存储介质 | |
CN116049420A (zh) | 知识图谱生成任务构建方法、装置、电子设备和存储介质 | |
CN114998649A (zh) | 图像分类模型的训练方法、图像分类方法及装置 | |
CN114611609A (zh) | 一种图网络模型节点分类方法、装置、设备及存储介质 | |
CN114328047A (zh) | 系统测试方法、装置、电子设备以及存储介质 | |
CN114035906A (zh) | 虚拟机迁移方法、装置、电子设备及存储介质 | |
CN117271098B (zh) | 一种ai模型计算核调度方法、装置、设备及存储介质 | |
CN117827619B (zh) | 异构算力的耗时预测仿真方法、装置、设备、介质及系统 | |
CN117609870B (zh) | 结构识别模型训练、模型结构识别方法、设备及介质 | |
CN116523051A (zh) | 一种模型混精推理方法、装置、设备及存储介质 | |
CN116205279A (zh) | 深度学习模型的硬件调度执行方法、装置、设备及介质 | |
CN117687993A (zh) | 一种数据迁移方法、装置、设备以及存储介质 | |
CN118607656A (zh) | 一种回归计算模型的参数确定方法、装置、设备及介质 | |
CN118468991A (zh) | 用户请求处理方法、装置、电子设备及存储介质 | |
CN118747516A (zh) | 模型训练方法、装置、电子设备、存储介质及程序产品 |
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 |