数据流策略生成方法、装置、电子设备和存储介质与流程

未命名 07-18 阅读:98 评论:0


1.本技术实施例涉及人工智能技术领域,尤其涉及一种数据流策略生成方法、装置、电子设备和存储介质。


背景技术:

2.数据流架构(data-flow architecture)是一种新型的计算架构,使用多核架构进行空间和时间计算,与cpu(central processing unit)、gpu(graphics processing unit)等共享内存架构相比,数据流架构明确地将任务划分为微任务并映射到多个处理单元(process element,pe),并明确编排处理单元之间的数据移动,一些场景下数据流架构可以实现比共享内存架构更高的系统利用率、能源效率和模型容量等,所以数据流架构可被应用于执行深度学习任务,比如神经网络模型的训练和推理。
3.在对数据流架构进行优化时,需要构建数据流策略,以基于数据流策略将计算图映射到硬件上。目前,在进行数据流架构优化时手动构建数据流策略,对计算图包括的多个算子(operator)进行手动分区,并将分区后的算子映射到特定硬件。
4.然而,通过手动构建数据流策略的方式对数据流架构进行优化,需要手动操作和专业知识,无法推广至不同的数据处理任务和硬件,因此适用性较差。


技术实现要素:

5.有鉴于此,本技术实施例提供一种数据流策略生成方法、装置、电子设备和存储介质,以至少解决或缓解上述问题。
6.根据本技术实施例的第一方面,提供了一种数据流策略生成方法,包括:获取数据处理任务对应的计算图;根据所述计算图和执行成本生成阶段间数据流策略,其中,所述阶段间数据流策略包括将所述计算图包括的算子划分为多个流水线阶段的策略,所述流水线阶段包括至少一个算子;根据所述阶段间数据流策略,生成所述多个流水线阶段对应的多个阶段内数据流策略;根据所述多个阶段内数据流策略更新所述执行成本,以优化所述阶段间数据流策略,获得用于执行所述数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。
7.根据本技术实施例的第二方面,提供了一种数据流策略生成装置,包括:获取单元,用于获取数据处理任务对应的计算图;第一生成单元,用于根据所述计算图和执行成本生成阶段间数据流策略,其中,所述阶段间数据流策略包括将所述计算图包括的算子划分为多个流水线阶段的策略,所述流水线阶段包括至少一个算子;第二生成单元,用于根据所述阶段间数据流策略,生成所述多个流水线阶段对应的多个阶段内数据流策略;更新单元,用于根据所述多个阶段内数据流策略更新所述执行成本,以优化所述阶段间数据流策略,获得用于执行所述数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。
8.根据本技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信
接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行上述第一方面所述方法对应的操作。
9.根据本技术实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行上述第一方面所述的方法。
10.根据本技术实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行上述第一方面的方法。
11.根据本技术实施例提供的数据流策略生成方案,数据流策略包括阶段间数据流策略和多个阶段内数据流策略,阶段间数据流策略可以根据计算图和执行成本确定,阶段内数据流策略根据阶段间数据流策略确定,根据阶段内数据流策略可以对执行成本进行更新,以实现阶段间数据流策略的优化,基于优化后的阶段间数据流策略可以生成新的阶段内数据流策略,重复上述优化过程可以获得用于数据处理任务的数据流策略,该数据流策略包括目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,从而实现了自动化生成数据流策略,可以适用于不同的数据处理任务和硬件资源,具有较强的适用性。
附图说明
12.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
13.图1是本技术一个实施例所应用示例性系统的示意图;
14.图2是本技术一个实施例的数据流策略生成方法的流程图;
15.图3是本技术一个实施例的流水线并行的示意图;
16.图4是本技术一个实施例的数据并行的示意图;
17.图5是本技术一个实施例的模型并行的示意图;
18.图6是本技术一个实施例的硬件资源的示意图;
19.图7是本技术一个实施例的阶段内数据流策略生成方法的流程图;
20.图8是本技术一个实施例的数据流策略生成过程的示意图;
21.图9是本技术另一个实施例的数据流策略生成过程的示意图;
22.图10是本技术一个实施例的数据流生成装置的示意图;
23.图11是本技术一个实施例的电子设备的示意图。
具体实施方式
24.以下基于实施例对本技术进行描述,但是本技术并不仅仅限于这些实施例。在下文对本技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本技术。为了避免混淆本技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
25.首先,对本技术实施例进行描述的过程中出现的部分名词或术语适用于如下解释。
26.数据流架构:数据流架构(data-flow architecture)是一种区别于cpu、gpu等共
享内存架构的计算架构,采用多核架构进行空间和时间计算,将数据和任务划分为微任务映射到多个处理单元,并编排处理单元之间的数据移动。
27.处理单元:处理单元(processing element,pe)是数据流架构中的基本计算块,处理单元通过片上网络连接。
28.片上网络:片上网络(network on chip,noc)是片上系统(system on chip,soc)一种新的通信方法。片上网络将芯片上的多个节点连接在一些,使各节点之间可以可靠地通信。片上网络包括的各节点可构成的拓扑结构包括2d/3d的网格网络(mesh)、圆环网络(torus)和环形网络等。
29.计算图:计算图是用于表示计算流的有向图,包括节点和连接节点的边,节点表示计算流中的算子(operator,op),连接节点的边表示相连接的两个节点存在数据依赖或控制依赖。
30.张量:张量(tensor)是指在处理单元之间传递的数据,张量的具体表现形式为多维数据,比如矩阵、向量等。
31.数据并行:数据并行(data parallel)是对深度学习模型进行分布式训练的一种常见形式,即把训练数据样本分成多份,在不同设备上复制出同样的模型参数同时进行训练,并将训练产生的参数梯度通过网络进行聚合之后完成参数更新。
32.模型并行:模型并行(model parallel)可以将整个计算图按不同的先后阶段划分到不同设备上,或是将单个算子(数据)进行切分由多个设备共同计算并在特定位置进行数据交换或聚合。
33.数据流策略:数据流策略表示对计算图进行划分、将算子划分为微算子、将张量切分为微张量及将微算子映射到处理单元的通用策略。
34.本技术的应用环境
35.本技术实施例提出了一种数据流策略生成的方案。整个数据流策略生成方案相对较为通用,可以用于采用数据流架构的各类硬件设备,比如用于数据中心、服务器、个人计算机、物联网(internet of things,iot)设备、嵌入式设备等。数据流策略生成方案与执行该方案的计算装置部署的硬件无关。
36.示例性系统
37.图1示出了一种适用于本技术实施例的数据流策略生成方法的示例性系统。如图1所示,该系统可以包括云服务端102、通信网络104和至少一个用户设备106,图1中示例为多个用户设备106。需要说明的是,本技术实施例的方案既可应用于云服务端102,也可应用于用户设备106。
38.云服务端102可以是用于存储信息、数据、程序和/或任何其他合适类型的内容的任何适当的设备,包括但不限于分布式存储系统设备、服务器集群、计算云服务端集群等。在一些实施例中,云服务端102可以执行任何适当的功能。例如,在一些实施例中,云服务端102可以用于生成通过数据流架构执行数据处理任务时的数据流策略。作为可选的示例,在一些实施例中,云服务端102可以生成针对数据处理任务的数据流策略,并基于数据流策略执行数据处理任务。在另一些实施例中,云服务端102可以生成针对数据处理任务的数据流策略,并将生成的数据流策略发送给用户设备106,由用户设备106根据数据流策略执行数据处理任务。
39.通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步转移模式(atm)网络、虚拟专用网(vpn)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如通信链路114)被链接到云服务端102。通信链路可以是适合于在云服务端102与用户设备106之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
40.用户设备106可以包括适合于进行交互的任何一个或多个用户设备。在一些实施例中,当由云服务端102进行数据流策略生成时,用户设备106可以向云服务端102发送策略生成请求,该策略生成请求包括数据处理任务的相关信息,以触发云服务端102根据该请求生成数据流策略,并将生成的数据流策略反馈给用户设备106。用户设备106可以包括任何合适类型的设备,例如,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、车辆系统和/或任何其他合适类型的用户设备。
41.在另一个适用于本技术实施例的数据流策略生成方法的示例性系统中,该系统可以包括上位机及一个或多个加速卡,上位机与加速卡通过总线等通信网络相连接。上位机可以生成通过数据流架构执行数据处理任务时的数据流策略,并根据数据流策略调度加速卡执行数据处理任务。加速卡包括由多个处理单元(pe)构成的片上网络(noc),同一片上网络(noc)内的处理单元(pe)通过片上网络(noc)进行通信,不同加速卡之间通过以太网等进行通信。上位机可以将数据流策略部署到一个加速卡上,也可以将数据流策略部署到多个加速卡上,对此本技术实施例不作限定。
42.本技术实施例主要着眼于云服务端102或上位机生成数据流策略的过程,在后文中会对数据流策略的生成过程进行详细描述。
43.数据流策略生成方法
44.基于上述系统,本技术实施例提供了一种数据流策略生成方法,以下通过多个实施例对该数据流策略生成方法进行详细说明。
45.图2是本技术一个实施例的数据流策略生成方法的流程图。如图2所示,该数据流策略生成方法包括如下步骤:
46.步骤201、获取数据处理任务对应的计算图。
47.计算图可以表示执行数据处理任务时数据流的方向,包括通过节点表示的多个算子,节点的连线表示算子间存在数据依赖或控制依赖。数据依赖是指后序算子需要基于前序算子的输出数据进行运算,控制依赖是指后序算子需要在前序算子输出数据后再进行运算。算子是执行数据处理任务时所需执行的各类运算,比如矩阵乘、矩阵加等。
48.数据处理任务可以是神经网络模型的训练任务,也可以是神经网络模型的推理任务。
49.步骤202、根据计算图和执行成本生成阶段间数据流策略。
50.执行成本是指基于相应数据流策略执行数据处理任务时的成本,比如可以是执行数据处理任务需要的硬件资源或时间。由于生成数据流策略是一个优化过程,在首轮生成阶段间数据流策略时,执行成本可以是对所生成阶段间数据流策略无影响或影响较小的预
设值,从第2轮生成阶段间数据流策略开始,执行成本可以根据上一轮生成的数据流策略确定。在数据流策略的优化过程中,执行成本可以指示基于所生成的数据流策略执行数据处理任务时是否满足硬件资源消耗和/或时间消耗的要求。
51.为了提高数据处理的效率,可以通过流水线并行(pipeline parallel)、数据并行(data parallel)、模型并行(model parallel)等多种方式实现算子并行。流水线并行是根据数据流向将计算图划分为多个流水线阶段,单个流水线阶段包括一个或多个算子,前序流水线阶段的输出数据作为后序流水线阶段的输入数据,数据处理过程以流水线的形式进行。数据并行是将数据拆分为作为不同的算子的输入数据,实现数据的并行数据。模型并行是根据将算子间的依赖关系,依赖同一算子的多个其他算子并行。
52.图3为本技术一个实施例的流水线并行的示意图,图4是本技术一个实施例的数据并行的示意图,图5是本技术一个实施例的模型并行的示意图。
53.如图3所示,计算图包括op0至op4,将op0和op1划分到流水线阶段0,将op2划分到流水线阶段1,将op3划分到流水线阶段2,将op4划分到流水线阶段3,将不同的流水线阶段映射到硬件上不同的处理单元,实现流水线并行。
54.如图4所示,待处理数据拆分为3个输入数据后分别作为op0、op1和op2的输入,对op0、op1和op2的输出数据进行聚合后获得对应于待处理数据的数据处理结果,将op0及其对应的输入数据映射为硬件上的实例(instance)0,将op1及其对应的输入数据映射为硬件上的实例1,将op2及其输入数据映射为硬件上的实例2,实例0、实例1和实例2并行执行,实现数据并行。
55.如图5所示,op1、op2和op3与op0存在数据依赖或控制依赖,分别将op0、op1、op2和op3映射到硬件上,在op0输出数据后,op1、op2和op3可以并行执行,实现模型并行。
56.阶段间数据流策略包括将计算图包括的算子划分为多个流水线阶段的策略,即可以根据阶段间数据流策略将计算图包括的多个算子划分为多个流水线阶段,使得流水线阶段包括至少一个算子。数据流策略包括阶段间数据流策略,基于阶段间数据流策略可以将计算图划分为多个流水线阶段,各流水线阶段可以通过流水线并行方式处理数据。
57.步骤203、根据阶段间数据流策略,生成多个流水线阶段对应的多个阶段内数据流策略。
58.由于阶段间数据流策略可以确定流水线阶段包括的算子,所以在生成阶段间数据流策略后,可以根据阶段间数据流策略确定流水线阶段内的数据处理方式,进而生成可以指示流水线阶段内算子实现方式的阶段内数据流策略。流水线阶段与阶段内数据流策略相对应,阶段内数据流策略可以指示相对应流水线阶段内的算子实现方式。
59.步骤204、根据多个阶段内数据流策略更新执行成本,以优化阶段间数据流策略,获得用于执行数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。
60.在获取多个阶段内数据流策略后,可以根据各阶段内数据流策略对执行成本进行更新,进而可以基于更新后的执行成本执行上述步骤202和步骤203,生成新的阶段间数据流策略,并根据新的阶段间数据流策略生成新的阶段内数据流策略,从而实现阶段间数据流策略的优化。在完成对阶段间数据流策略的优化,获得目标阶段间数据流策略后,可以获得与目标阶段间数据流策略相对应的多个阶段内数据流策略,进而获得包括目标阶段间数
据流策略和各目标阶段内数据流策略的数据流策略,该数据流策略可用于数据处理任务的执行。
61.阶段内数据流策略基于阶段间数据流策略确定,阶段间数据流策略基于执行成本优化,所以根据执行成本对阶段间数据流策略进行优化,可以获得满足需求的目标阶段间数据流策略,进而可以获得与目标阶段间数据流策略相对应的多个目标阶段内数据流策略,以获得用于数据处理任务的执行、且包括目标阶段间数据流策略和各目标阶段内数据流策略的数据流策略。
62.在本技术实施例中,数据流策略包括阶段间数据流策略和多个阶段内数据流策略,阶段间数据流策略可以根据计算图和执行成本确定,阶段内数据流策略根据阶段间数据流策略确定,根据阶段内数据流策略可以对执行成本进行更新,以实现阶段间数据流策略的优化,基于优化后的阶段间数据流策略可以生成新的阶段内数据流策略,重复上述优化过程可以获得用于数据处理任务的数据流策略,该数据流策略包括目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,从而实现了自动化生成数据流策略,可以适用于不同的数据处理任务和硬件资源,具有较强的适用性。
63.将数据流策略拆分为阶段间数据流策略和阶段内数据流策略进行优化,可以分别确定多个流水线阶段对应的阶段内数据流策略,减少了阶段内数据流策略的搜索空间,从而可以缩短生成数据流策略的耗时,提高数据流策略生成的效率。
64.在一种可能的实现方式中,在对阶段间数据流策略进行优化时,可以根据当前的多个阶段内数据流策略更新执行成本,并判断更新后的执行成本是否满足优化终止条件。如果更新后的执行成本不满足优化终止条件,则根据更新后的执行成本返回执行步骤202和步骤203,以对当前的阶段间数据流策略进行优化。如果更新后的执行成本满足优化终止条件,则将当前的阶段间数据流策略和相对应的多个阶段内数据流策略,确定为目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。
65.执行成本可以指示当前的阶段间数据流策略、及相对应的多个阶段内数据流策略是否满足执行数据处理任务的需求,所以可以根据执行数据处理任务的需求确定优化终止条件,进而根据执行成本与优化终止条件的匹配关系,确定对阶段间数据流策略的优化是否完成。
66.在本技术实施例中,根据在根据阶段间数据流策略生成相对应的多个阶段内数据流策略后,可以根据阶段内数据流策略对执行成本进行更新,根据更新后的执行成本与优化终止条件的匹配关系,确定是否继续对阶段间数据流策略进行优化,在优化结束后获得用于数据处理任务执行的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。基于执行成本与优化终止条件的匹配关系,控制阶段间数据流策略的优化过程的进行,同时执行成本作为优化阶段间数据流策略的依据,保证对阶段间数据流策略的优化过程能够顺利进行,且可以快速获得目标阶段间数据流策略,提高数据流策略生成的效率。
67.在一种可能的实现方式中,优化终止条件可以是执行成本收敛,或者数据处理任务的执行耗时小于时长阈值。
68.执行成本可以指示基于相对应阶段间数据流策略、及相对应的阶段内数据流策略执行数据处理任务时的成本,在优化阶段间数据流策略的过程中,需要对执行成本进行更新,进而根据更新后的执行成本生成新的阶段间数据流策略。如果在优化阶段间数据流策
略的过程中执行成本收敛,即执行成本不再随阶段内数据流策略的改变而变化,或者仅发生很小的改变,说明基于当前阶段间数据流策略、及相对应的阶段内数据流策略执行数据处理任务时的成本,已经达到了相对较优的状态,所以可以停止对阶段间数据流策略进行优化,因此可以将执行成本收敛作为优化终止条件。
69.阶段内数据流策略基于阶段间数据流策略确定,通过对阶段间数据流策略进行优化,可以使流水线阶段内更多的数据处理过程并行进行,从而缩短数据处理任务的执行耗时。如果优化阶段间数据流策略的过程中,根据当前的阶段间数据流策略、及相对应的阶段内数据流策略执行数据处理任务的耗时,已经小于确定的时长阈值,说明数据处理任务的执行耗时已经缩短至满足需求的水平,无需继续对阶段间数据流策略进行优化,因此可以将数据处理任务的执行耗时小于时长阈值作为优化终止条件。
70.在本技术实施例中,以执行成本收敛作为优化终止条件,基于获得的目标阶段间数据流策略、及相对应的阶段内数据流策略执行数据处理任务时,可以使执行数据处理任务的成本相对最低,以数据处理任务的执行耗时小于时长阈值为优化终止条件,基于获得的目标阶段间数据流策略、及相对应的阶段内数据流策略执行数据处理任务时,可以使数据处理任务的执行耗时满足需求。因此,以执行成本收敛或数据处理任务的执行耗时小于时长阈值为优化终止条件,可以满足针对数据处理任务执行的不同需求,以适用于不同的应用场景,提高该数据流策略生成方案的适用性。
71.在一种可能的实现方式中,在根据当前的多个阶段内数据流策略更新执行成本时,可以确定当前的多个阶段内数据流策略对应的多个阶段内执行成本,进而根据这多个阶段内执行成本更新执行成本。
72.阶段内数据流策略可以指示相对应流水线阶段内的数据处理方案,所以根据阶段内数据流策略,可以确定相对应流水线阶段的阶段内执行成本,阶段内执行成本可以指示相对应流水线阶段进行数据处理时的成本,比如时间消耗成本、硬件资源消耗成本等。数据处理任务的执行通过各流水线阶段内的数据处理综合实现,所以数据处理任务执行时的成本由各流水线阶段进行数据处理时的成本决定,而执行成本指示基于阶段间数据流策略、及相对应阶段内数据流策略执行数据处理任务时的成本,所以可以根据各流水线阶段的阶段内执行成本,来确定执行成本。
73.在一个例子中,预先获得阶段内成本模型和阶段间成本模型,将阶段内数据流策略输入阶段内成本模型,可以计算该阶段内数据流策略所对应流水线阶段的阶段内执行成本,将各流水线阶段的阶段内执行成本输入阶段间成本模型,可以计算新的执行成本。在通过阶段间成本模型计算新的执行成本时,还可以将当前的执行成本和各流水线阶段的阶段内执行成本输入阶段间成本模型,来计算新的执行成本。
74.在本技术实施例中,由于数据处理任务的执行通过多个流水线阶段的数据处理实现,根据阶段内数据流策略可以确定相对应流水线阶段的阶段内执行成本后,根据各流水线阶段的阶段内执行成本确定新的执行成本,获得更新后的执行成本,保证更新后的执行成本能够准确反映基于当前阶段间数据流策略、及相对应的多个阶段内数据流策略执行数据处理任务时的成本,进而保证所生成的数据流策略与执行数据处理任务的需求相匹配。
75.在一种可能的实现方式中,执行成本包括硬件资源和任务执行耗时,相应地,阶段间数据流策略包括将计算图包括的算子划分为多个流水线阶段的策略、将硬件资源划分为
多个处理单元组的策略、及将多个流水线阶段映射到多个处理单元组的策略。其中,流水线阶段包括至少一个算子,处理单元组包括至少一个处理单元。
76.在基于流水线架构执行数据处理任务时,数据处理任务的执行成本包括硬件资源消耗和执行时间消耗,在通常情况下,执行数据处理任务过程中使用硬件资源的数量,与数据处理任务的执行时间负相关,所以可以根据硬件资源和任务执行耗时作为执行成本对阶段间数据流策略进行优化,以执行数据处理任务时硬件资源消耗小或任务执行耗时短为目标,生成包括目标阶段间数据流策略、及多个目标阶段内数据流策略的数据流策略。
77.用于执行数据处理任务的硬件资源包括处理单元的计算能力、带宽、静态随机存取存储器(static random-access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)和片上网络(noc)等。硬件资源包括的多个处理单元(pe)通过片上网络连接。图6是本技术一个实施例的硬件资源的示意图。如图6所示,硬件资源包括由多个处理单元(pe)构成的多个片上网络(noc),片上网络(noc)由多个处理单元(pe)构成,同一片上网络(noc)内的处理单元(pe)通过片上网络(noc)进行通信,不同片上网络(noc)内的处理单元(pe)通过片上网络(noc)间的通信网络进行通信,片上网络(noc)间的通信网络比如可以是以太网。
78.在将硬件资源划分为多个处理单元组时,处理单元组包括至少一个处理单元(pe)。当处理单元组包括多个处理单元(pe)时,同一处理单元组中的处理单元(pe)可以位于同一片上网络(noc)内,也可以位于至少两个不同的片上网络(noc)内,对此本技术实施例不作限定。
79.处理单元组可以是无线网格网络(pe mesh),pe mesh包括阵列排布的多个pe,进而可以将划分出的流水线阶段映射到一个pe mesh,通过pe mesh执行相对应流水线阶段包括的算子。
80.在本技术实施例中,硬件资源的划分策略决定了处理单元组包括的处理单元的数量和计算能力,流水线阶段的划分策略决定了流水线阶段包括的算子,将流水线阶段映射到处理单元组的策略决定了流水线阶段与处理单元组的对应关系。在执行数据处理任务时,可以将流水线阶段包括的算子部署到该流水线阶段对应的处理单元组中,通过该流水线阶段对应的处理单元组包括的处理单元,执行该流水线阶段包括的算子。处理单元组所包括处理单元的数量和计算能力,会影响相对应流水线阶段中算子的执行速度,所以生成包括硬件资源的划分策略、流水线阶段的划分策略、及将流水线阶段映射到处理单元组的策略的阶段间数据流策略,可以根据阶段间数据流策略确定各流水线阶段可用的计算资源,进而可以确定流水线阶段对应的较优的阶段内数据流策略,减小确定阶段内数据流策略时的可变因素,从而缩短确定阶段内数据流策略的时间,以提高生成数据流策略的效率。
81.在一种可能的实现方式中,执行成本包括的硬件资源和任务执行耗时中有至少一个为可更新项,即在根据阶段内数据流策略更新执行成本时,可对硬件资源和任务执行耗时中的至少一个进行更新。
82.根据硬件资源和任务执行耗时是否为可更新项,执行成本存在如下3种情况:
83.(i)硬件资源为可更新项,任务执行耗时为固定项;
84.(ii)硬件资源为固定项,任务执行耗时为可更新项;
85.(iii)硬件资源和任务执行耗时均为可更新项。
86.针对上述情况(i),在根据阶段内数据流策略对执行成本进行更新时,执行成本包括的任务执行耗时保持不变,仅对执行成本包括的硬件资源进行更新,适用于要求任务执行耗时小于目标时长的前提下使用硬件资源少的场景。比如,数据处理任务是通过语音识别模型进行语音识别,要求该语音识别模型接收到输入语音数据后,在0.5s内输出语音识别结果,对于硬件资源的消耗没有限制,在生成该数据处理任务的数据流策略时,根据基于当前的阶段间数据流策略、及相对应的阶段内数据流策略进行语音识别时的硬件资源消耗和任务执行耗时,增加或减小硬件资源消耗,然后根据更新后的硬件资源生成新的阶段间数据流策略,实现阶段间数据流策略和相对应阶段内数据流策略的更新,直至输出语音识别结果的时延小于或等于0.5,且硬件资源最小。
87.在硬件资源为可更新项且任务执行耗时为固定项时,根据阶段内数据流策略更新可用的硬件资源,如果任务执行耗时小于目标时长,则减小可用的硬件资源,如果任务执行耗时大于目标时长,则增加可用的硬件资源,通过更新硬件资源对阶段间数据流策略进行优化,直至基于阶段间数据流策略和相对应的阶段内数据流策略执行数据处理任务时,任务执行耗时小于目标时长,且硬件资源消耗收敛,将此时的阶段间数据流策略和相对应的多个阶段内数据流策略,确定为目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,获得包括目标阶段间数据流策略和各目标阶段内数据流策略的数据流策略,进而将该数据流策略用于数据处理任务的执行。
88.针对上述情况(ii),在根据阶段内数据流策略对执行成本进行更新时,执行成本包括的硬件资源固定不变,仅对执行成本包括的任务执行耗时进行更新,适用于在硬件资源有限的前提下使任务执行耗时短的场景。比如,数据处理任务是语音识别模型的训练任务,在可分配硬件资源确定的前提下,使模型训练耗时最短,在生成该模型训练任务的数据流策略时,根据基于当前的阶段间数据流策略、及相对应的阶段内数据流策略进行模型训练时的硬件资源消耗和任务执行耗时,增大或减小任务执行耗时,然后根据更新后的任务执行耗时生成新的阶段间数据流策略,实现阶段间数据流策略和相对应阶段内数据流策略的更新,直至训练模型的耗时最短。
89.在硬件资源为固定项且任务执行耗时为可更新项时,根据阶段内数据流策略更新任务执行耗时,以任务执行耗时最小化为优化目标,通过更新任务执行耗时对阶段间数据流策略进行优化,直至基于阶段间数据流策略和相对应的阶段内数据流策略执行数据处理任务时,任务执行耗时收敛或小于目标时长,将此时的阶段间数据流策略和相对应的多个阶段内数据流策略,确定为目标阶段间数据流策略和相对应的多个阶段内数据流策略,获得包括目标阶段间数据流策略和各目标阶段内数据流策略的数据策略,进而将该数据流策略用于数据处理任务的执行。
90.对于上述情况(iii),在根据阶段内数据流策略对执行成本进行更新时,可以对执行成本包括的硬件资源和任务执行耗时进行更新,适用于硬件资源和任务执行耗时均不受限的场景。比如,数据处理任务是语音识别模型的训练任务,在可用硬件资源和任务执行耗时均不限定的前提下,使模型训练任务的总成本最低,总成本基于硬件资源消耗成本和任务执行耗时成本确定。在生成该模型训练任务的数据流策略时,根据基于当前的阶段间数据流策略、及相对应的阶段内数据流策略进行模型训练时的硬件资源消耗和任务执行耗时,对硬件资源和任务执行耗时中的至少一个进行增大或减小,然后根据更新后的硬件资
源和任务执行耗时生成新的阶段间数据流策略,实现阶段间数据流策略和相对应阶段内数据流策略的更新,直至执行该模型训练任务的总成本最低。
91.在硬件资源和任务执行耗时均为可更新项时,根据阶段内数据流策略更新硬件资源和任务执行耗时,以待处理任务的总成本最小化为优化目标,通过更新硬件资源和任务执行耗时对阶段间数据流策略进行优化,直至基于阶段间数据流策略和相对应的阶段内数据流策略执行数据处理任务时,执行任务的总成本最小或小于成本阈值,将此时的阶段间数据流策略和相对应的多个阶段内数据流策略,确定为目标阶段间数据流策略和相对应的多个阶段内数据流策略,获得包括目标阶段间数据流策略和各目标阶段内数据流策略的数据策略,进而将该数据流策略用于数据处理任务的执行。
92.在本技术实施例中,根据应用功能场景的不同,执行成本包括的硬件资源和任务执行耗时中的至少一个为可更新项,在可用的硬件资源固定的场景,硬件资源为固定项且任务执行耗时为可更新项,在要求任务执行耗时最小或小于目标时长的场景,硬件资源为可更新项且任务执行耗时为可更新项,在要求任务执行的总成本最小或小于成本阈值的场景,硬件资源和任务执行耗时均为可更新项,使得本技术实施例提供的数据流策略生成方案能够适用于不同的应用场景,提高了该数据流策略生成方案的适用性。
93.图7是本技术一个实施例的阶段内数据流策略生成方法的流程图。如图7所示,该阶段内数据流策略生成方法包括如下步骤:
94.步骤701、根据阶段间数据流策略,生成算子的多个候选数据流策略。
95.阶段间数据流策略包括对计算图中算子划分为多个流水线阶段的策略,流水线阶段包括至少一个算子,因此根据阶段间数据流策略可以确定流水线阶段包括的算子,进而可以基于流水线阶段分配到的硬件资源,确定该流水线阶段中算子的执行方案,生成算子的候选数据流策略,候选数据流策略包括将算子拆分为多个微算子的策略、将算子的张量切分为多个微张量的策略、及将微算子映射到处理单元的策略。
96.按照数据并行、模型并行等并行方案,算子的执行方案有多种,所以针对一个算子,根据阶段间数据流策略可以生成该算子对应的多个候选数据流策略,不同的候选数据流策略中,算子拆分策略、张量切分策略、及微算子到处理单元的映射策略中的至少一个不同。
97.张量是算子的输入数据,将算子拆分为多个微算子后,需要将张量切分为多个微张量,以将微张量作为相应微算子的输入,保证通过拆分出的微算子进行数据处理的结果,与通过拆分前算子进行数据处理的结果相同。在生成候选数据流策略时,可以先确定张量切分策略,在张量切分策略确定后便可以确定相对应的算子拆分策略,然后再确定微算子到处理单元的映射策略。
98.阶段间数据流策略包括将流水线阶段映射到pe mesh的策略,pe mesh包括多个pe,在确定算子拆分策略后,可以确定微算子到相对应pe mesh中pe的映射策略,由一个或多个pe执行相映射的微算子。
99.步骤702、确定候选数据流策略的数据处理成本。
100.算子拆分策略和张量切分策略会决定可并行执行的微算子的数量,从而影响流水线阶段的数据处理效率,微算子到处理单元的映射策略会决定处理单元之间传输数据的耗时,进而影响流水线阶段的数据通信成本,流水线阶段的数据处理效率和数据通信成本均
会影响数据处理成本,因此可以根据候选数据流策略包括的算子拆分策略、张量切分策略、及微算子到处理单元的映射策略,确定候选数据流策略的数据处理成本。
101.在一个例子中,可以将候选数据流策略的相关信息输入成本计算模型,通过成本计算模型来计算候选数据流策略的数据处理成本。
102.步骤703、根据流水线阶段中算子的多个候选数据流策略的数据处理成本,确定该流水线阶段的阶段内数据流策略。
103.根据算子的多个候选数据流策略对应的数据处理成本,可以从该算子的多个候选数据流策略中选择较优的候选数据流策略,进而可以根据流水线阶段中各算子的较优候选数据流策略,来确定该流水线阶段的阶段内数据流策略。流水线阶段包括一个或多个算子,如果流水线阶段包括一个算子,则可以将该算子的较优候选数据流策略作为该流水线阶段的阶段内数据流策略,如果流水线阶段包括多个算子,则可以对该流水线阶段中各算子的较优候选数据流策略进行组合,获得该流水线阶段的阶段内数据流策略。
104.在本技术实施例中,根据阶段间数据流策略可以为流水线阶段包括的算子生成多个候选数据流策略,并可以确定候选数据流策略的数据处理成本,进而根据候选数据流策略的数据处理成本,搜索较优的候选数据流策略的组合,作为流水线阶段的阶段内数据流策略。在流水线阶段内以算子为单位生成数据流策略,可以快速地确定出各算子的候选数据流策略,然后将算子的较优的候选数据流策略进行组合,获得流水线阶段的阶段内数据流策略,可以提高生成用于数据处理任务执行的数据流策略的效率。为算子生成多个候选数据流策略,通过对候选数据流策略进行筛选并组合的方式生成阶段内数据流策略,可以提升获得目标阶段间数据流策略和阶段内数据流策略的概率。
105.在一种可能的实现方式中,在根据候选数据流策略的数据处理成本确定阶段内数据流策略时,可以根据流水线阶段包括的算子、及算子的多个候选数据流策略,生成该流水线阶段的多个候选阶段内数据流策略,然后根据候选阶段内数据流策略包括的候选数据流策略的数据通信成本,从多个候选阶段内数据流策略中确定该流水线阶段的阶段内数据流策略。其中,不同的候选阶段内数据流策略包括的候选数据流策略至少部分不同。
106.在获得流水线阶段中各算子的多个候选数据流策略后,可以对该流水线阶段中各算子的候选数据流策略进行组合,获得该流水线阶段的多个候选阶段内数据流策略,不同的候选阶段内数据流策略至少包括一个不同的候选数据流策略。比如,流水线阶段包括算子0、算子1和算子2,算子0的候选数据流策略有2个,算子1的候选数据流策略有3个,算子2的候选数据流策略有4个,通过对算子0、算子1和算子2的候选数据流策略进行组合,可以获得2
×3×
4个候选阶段内数据流策略。
107.候选阶段内数据流策略的执行成本,由该候选阶段内数据流策略包括的各算子的执行成本决定,而算子的执行成本由该算子的候选数据流策略决定,所以可以根据候选阶段内数据流策略包括的各候选数据流策略的数据处理成本,来确定各候选阶段内数据流策略的阶段内执行成本,进而可以根据各候选阶段内数据流策略的阶段内执行成本,从各候选阶段内数据流策略中选择流水线阶段的阶段内数据流策略,比如可以将对应执行成本最小的候选阶段内数据流策略,确定为相对应流水线阶段的阶段内数据流策略。
108.在本技术实施例中,根据流水线阶段包括的算子,对各算子的候选数据流策略进行组合获得多个候选阶段内数据流策略,进而根据候选阶段内数据流策略包括的候选数据
流策略的数据处理成本,确定候选阶段内数据流策略的阶段内执行成本,进而根据各候选阶段内数据流策略的阶段内执行成本,从各候选阶段内数据流策略中选择流水线阶段的阶段内数据流策略,保证所确定出的阶段内数据流策略具有较低的执行成本,从而可以尽快获得目标阶段内数据流策略,提高生成数据流策略的效率。
109.在一种可能的实现方式中,候选数据流策略包括如下各项之一:
110.(i)按空间维度将算子拆分为多个微算子的策略,其中,按空间维度拆分出的多个微算子以并行方式执行;
111.(ii)按时间维度将算子拆分为多个微算子的策略,其中,按时间维度拆分出的至少部分微算子以串行方式执行;
112.(iii)按空间维度和时间维度将算子拆分为多个微算子的策略。
113.候选数据流包括算子拆分策略,算子拆分策略即为将算子拆分为多个微算子的策略,根据拆分算子的维度,算子拆分策略可以是按空间维度将算子拆分为多个微算子,或者是按时间维度将算子拆分为多个微算子的策略,或者是按照空间维度和时间维度将算子拆分为多个微算子的策略。
114.按空间维度将算子拆分为多个微算子时,所拆分出的多个微算子之间没有数据依赖和控制依赖,各微算子可以并行执行。比如,将op0拆分为op01、op02和op03,op01、op02和op03相互之间没有数据依赖和控制依赖,op01、op02和op03可以分别基于输入数据以并行的方式执行数据处理。如图4所示,数据并行为一种按空间维度将算子拆分为多个微算子的算子并行方式,图4中op0、op1和op2为按空间维度对一个算子进行拆分获得的3个微算子。
115.按时间维度将算子拆分为多个微算子时,所拆分出的至少部分微算子之间存在数据依赖或控制依赖,因此拆分出的至少部分微算子以串行方式顺序执行。比如,将op0拆分为op01、op02、op03和op04,op02、op03和op04均与op01存在数据依赖或控制依赖,则在op01输出执行结果后,op02、op03和op04才能执行,即op01与op02、op01与op03、及op01与op04均以串行方式执行。如图5所示,模型并行为一种按时间维度将算子拆分为多个微算子的算子并行方式,图5中的op0、op1、op2和op3为按时间维度对一个算子进行拆分获得的4个微算子。
116.除了单独按空间维度或时间维度对算子进行拆分外,还可以按照空间维度和时间维度对算子进行拆分,拆分出的部分微算子可以并行执行,部分微算子顺序执行。比如,将op0拆分为op01、op02、op03、op04和op05,op01、op02和op03可以并行执行,op03、op04和op05顺序执行。
117.在本技术实施例中,算子的候选数据流策略可以包括按空间维度拆分算子的策略、按时间维度拆分算子的策略、或者按空间维度和时间维度拆分算子的策略,拆分出可以并行执行、串行执行、或者并行执行和串行执行的多个微算子,从而能够生成多样化的候选数据流策略,进而可以根据候选数据流策略生成满足需求的目标阶段内数据流策略,提升数据流策略生成的成功率。
118.在一种可能的实现方式中,在获得目标阶段间数据流策略和相对应的多个阶段内数据流策略后,可以根据目标阶段间数据流策略,生成流水线阶段之间的阶段间通信原语,并根据目标阶段内数据流策略,生成相对应流水线阶段内的阶段内通信原语。
119.由于不同流水线阶段可能采用不同的张量切分策略,所以前序流水线阶段所输出
张量的切分策略,可能与后序流水线阶段输入张量的切分策略不同,如果输入张量的切分策略与流水线阶段不匹配,则会导致运算结果出错。为此,根据目标阶段间数据流策略,生成流水线阶段之间的阶段间通信原语,通过阶段间通信原语对前序流水线阶段输出的张量进行重新切分,然后输入给后序流水线阶段,保证后序流水线阶段的输入张量的切分策略与该后序流水线阶段匹配,保证流水线阶段的运算结果的正确性。
120.在同一流水线阶段内,不同的算子可以采用不同的张量切分策略,不同的微算子也可以采用不同的张量切分策略,所以前序算子所输出张量的切分策略,可能与后序算子的输入张量的切分策略不同,前序微算子所输出张量的切分策略,可能与后序微算子的输入张量的切分策略不同,如果输入张量的切分策略与算子/微算子不匹配,则会导致运算结果出错。为此,根据目标阶段内数据流策略,生成算子间和/或微算子间的阶段内通信原语,通过阶段内通信原语对前序算子/微算子输出的张量进行重新切分,然后输入给后序算子/微算子,保证后序算子/微算子的输入张量的切分策略与该后序算子/微算子相匹配,保证算子/微算子的运算结果的准确性。
121.在生成阶段间通信原语和阶段内通信原语后,可以将阶段间通信原语和阶段内通信原语附加到目标阶段间数据流策略和相对应的多个阶段内数据流策略中,生成对应于数据处理任务的数据流策略,进而可以通过编译程序将数据流策略编译为机器可执行程序,并将该机器可执行程序部署到硬件上运行,实现数据处理任务的执行。
122.在一种可能的实现方式中,数据流策略生成过程中,可以通过阶段内优化器对阶段内数据流策略进行优化,并通过阶段间优化器对阶段间数据流策略进行优化。下面通过一个例子,对通过阶段内优化器和阶段间优化器生产数据流策略的过程进行说明。
123.图8是本技术一个实施例的数据流策略生成过程的示意图。下面结合图8对数据流策略生成过程进行说明。
124.在第1轮优化过程中,阶段间优化器801根据计算图和硬件资源生成阶段间数据流策略,并将阶段间数据流策略发送给阶段内优化器802,阶段内优化器802根据阶段间数据流策略,调用op空间拆分程序803和op时间拆分程序804对流水线阶段内的算子进行拆分,根据拆分结果生成多个阶段内数据流策略,并调用阶段内成本模型805分别计算各阶段间数据流策略的阶段内执行成本,将计算出的阶段内执行成本发送给阶段间优化器801。op空间拆分程序803用于按照空间维度将算子拆分为微算子,op时间拆分程序804用于按照时间维度将算子拆分为微算子。
125.在第i轮优化过程中,i为大于或等于2的正整数,阶段间优化器801根据第i-1轮接收到的阶段内执行成本,调用阶段间成本模型806计算阶段间执行成本,然后根据计算图、硬件资源和计算出的阶段间执行成本生成新的阶段间数据流策略,并将阶段间数据流策略发送给阶段内优化器802。阶段内优化器802基于新接收到的阶段间数据流策略,执行与上述第1轮中相同的处理,生成新的阶段内数据流策略,并将新的阶段间数据流策略的阶段内执行成本发送给阶段间优化器801。
126.按照上述第i轮优化过程的优化方式,对阶段间数据流策略和阶段内数据流策略进行若干轮优化后,阶段间执行成本收敛或任务执行耗时小于目标时长,将此时的阶段间数据流策略确定为目标阶段间数据流策略,并将此时的多个阶段内数据流策略均确定为目标阶段内数据流策略。
127.根据目标阶段内数据流策略,通过阶段内通信原语生成器807生成流水线阶段内的阶段内通信原语。根据目标阶段间数据流策略,通过阶段间通信原语生成器808生成流水线阶段之间的阶段间通信原语。将阶段内通信原语和阶段间通信原语附加到目标阶段内数据流策略和目标阶段间数据流策略中,获得数据流策略。通过编译程序将数据流策略编译为机器可执行程序,并将该机器可执行程序部署到硬件上运行,实现数据处理任务的执行。
128.需要说明的是,可以通过适当的算法来优化阶段间优化器801的决策,比如可以通过遗传算法、动态规划算法、强化学习算法等来优化阶段间优化器801的决策。
129.图9是本技术另一个实施例的数据流策略生成过程的示意图。如图9所示,步骤

和步骤

为阶段间优化过程,步骤

、步骤

和步骤

为阶段内优化过程。
130.步骤

为流水线阶段的划分步骤。
131.步骤

为pe mesh划分及将流水线阶段映射到pe mesh的步骤。
132.步骤

为将算子(op)拆分为微算子(uop)、及将微算子(uop)映射到处理单元(pe)的步骤。
133.步骤

为将张量(tensor)切分为微张量、及微张量的编排步骤。
134.步骤

为处理单元(pe)间通信编排的步骤,即在pe间插入阶段间通信原语或阶段内通信原语的步骤。
135.在步骤

所示的例子中,将用于计算矩阵乘法的算子拆分为多个微算子(uop)。微算子c00_0=a00*b00表示计算tensor a中元素a00与tensor b中元素b00的乘积,微算子c00_1=a01*b10表示计算tensor a中元素a01与tensor b中元素b10的乘积,微算子c00_0=a00*b00表示对c00_0与c00_1进行求和。其中,tensor a和tensor b的元素可称为微张量。
136.在步骤

所示的例子中,将tensor a中的元素a00编排为pe00和pe01的输入,将tensor a中的元素a10编排为pe10和pe11的输入,将tensor b中的元素b00编排为pe00和pe10的输入,将tensor b中的元素b01编排为pe01和pe11的输入。
137.数据流策略生成装置
138.对应于上述方法实施例,图10示出了本技术一个实施例的数据流策略生成装置的示意图,如图10所示,该数据流策略生成装置1000包括:
139.获取单元1001,用于获取数据处理任务对应的计算图;
140.第一生成单元1002,用于根据计算图和执行成本生成阶段间数据流策略,其中,阶段间数据流策略包括将计算图包括的算子划分为多个流水线阶段的策略,流水线阶段包括至少一个算子;
141.第二生成单元1003,用于根据阶段间数据流策略,生成多个流水线阶段对应的多个阶段内数据流策略;
142.更新单元1004,用于根据多个阶段内数据流策略更新执行成本,以优化阶段间数据流策略,获得用于执行数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。
143.在本技术实施例中,数据流策略包括阶段间数据流策略和多个阶段内数据流策略,第一生成单元1002可以根据计算图和执行成本确定阶段间数据流策略,第二生成单元1003可以根据阶段间数据流策略确定阶段内数据流策略,更新单元1004可以根据阶段内数
据流策略对执行成本进行更新,以实现阶段间数据流策略的优化,第二生成单元1003基于优化后的阶段间数据流策略可以生成新的阶段内数据流策略,重复上述优化过程可以获得用于数据处理任务的数据流策略,该数据流策略包括目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,从而实现了自动化生成数据流策略,可以适用于不同的数据处理任务和硬件资源,具有较强的适用性。
144.需要说明的是,本实施例的数据流策略生成装置用于实现前述方法实施例中相应的数据流策略生成方法,并具有相应的方法实施例的有益效果,在此不再赘述。
145.电子设备
146.图11是本技术实施例提供的一种电子设备的示意性框图,本技术具体实施例并不对电子设备的具体实现做限定。如图11所示,该电子设备可以包括:处理器(processor)1102、通信接口(communications interface)1104、存储器(memory)1106、以及通信总线1108。其中:
147.处理器1102、通信接口1104、以及存储器1106通过通信总线1108完成相互间的通信。
148.通信接口1104,用于与其它电子设备或服务器进行通信。
149.处理器1102,用于执行程序1110,具体可以执行前述任一数据流策略生成方法实施例中的相关步骤。
150.具体地,程序1110可以包括程序代码,该程序代码包括计算机操作指令。
151.处理器1102可能是cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
152.risc-v是一种基于精简指令集(risc)原则的开源指令集架构,其可以应用于单片机和fpga芯片等各个方面,具体可应用在物联网安全、工业控制、手机、个人计算机等领域,且由于其在设计时考虑了小型、快速、低功耗的现实情况,使得其尤其适用于仓库规模云计算机、高端移动电话和微小嵌入式系统等现代计算设备。随着人工智能物联网aiot的兴起,risc-v指令集架构也受到越来越多的关注和支持,并有望成为下一代广泛应用的cpu架构。
153.本技术实施例中的计算机操作指令可以是基于risc-v指令集架构的计算机操作指令,对应地,处理器1102可以基于risc-v的指令集设计。具体地,本技术实施例提供的电子设备中的处理器的芯片可以为采用risc-v指令集设计的芯片,该芯片可基于所配置的指令执行可执行代码,进而实现上述实施例中的数据流策略生成方法。
154.存储器1106,用于存放程序1110。存储器1106可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
155.程序1110具体可以用于使得处理器1102执行前述任一实施例中的数据流策略生成方法。
156.程序1110中各步骤的具体实现可以参见前述任一数据流策略生成方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
157.通过本技术实施例的电子设备,数据流策略包括阶段间数据流策略和多个阶段内数据流策略,阶段间数据流策略可以根据计算图和执行成本确定,阶段内数据流策略根据阶段间数据流策略确定,根据阶段内数据流策略可以对执行成本进行更新,以实现阶段间数据流策略的优化,基于优化后的阶段间数据流策略可以生成新的阶段内数据流策略,重复上述优化过程可以获得用于数据处理任务的数据流策略,该数据流策略包括目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,从而实现了自动化生成数据流策略,可以适用于不同的数据处理任务和硬件资源,具有较强的适用性。
158.计算机存储介质
159.本技术还提供了一种计算机可读存储介质,存储用于使一机器执行如本文所述的数据流策略生成方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
160.在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本技术的一部分。
161.用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
162.计算机程序产品
163.本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一对应的操作。
164.需要说明的是,本技术实施例所涉及到的与用户有关的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于对模型进行训练的样本数据、用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
165.需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
166.上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
167.需要说明的是,本技术实施例所涉及到的与用户有关的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于对模型进行训练的样本数据、用于
分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
168.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
169.以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。

技术特征:
1.一种数据流策略生成方法,包括:获取数据处理任务对应的计算图;根据所述计算图和执行成本生成阶段间数据流策略,其中,所述阶段间数据流策略包括将所述计算图包括的算子划分为多个流水线阶段的策略,所述流水线阶段包括至少一个算子;根据所述阶段间数据流策略,生成所述多个流水线阶段对应的多个阶段内数据流策略;根据所述多个阶段内数据流策略更新所述执行成本,以优化所述阶段间数据流策略,获得用于执行所述数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。2.根据权利要求1所述的方法,其中,所述根据所述多个阶段内数据流策略更新所述执行成本,以优化所述阶段间数据流策略,获得用于执行所述数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略,包括:根据当前的多个阶段内数据流策略更新所述执行成本;若更新后的所述执行成本不满足优化终止条件,则根据更新后的所述执行成本返回执行所述根据所述计算图和执行成本生成阶段间数据流策略的步骤,以优化当前的阶段间数据流策略;若更新后的所述执行成本满足所述优化终止条件,则将当前的阶段间数据流策略和相对应的多个阶段内数据流策略,确定为目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。3.根据权利要求2所述的方法,其中,所述优化终止条件包括如下各项之一:(i)所述执行成本收敛;(ii)所述数据处理任务的执行耗时小于时长阈值。4.根据权利要求2所述的方法,其中,所述根据当前的多个阶段内数据流策略更新所述执行成本,包括:确定当前的多个阶段内数据流策略对应的多个阶段内执行成本;根据所述多个阶段内执行成本,更新所述执行成本。5.根据权利要求1所述的方法,其中,所述执行成本包括硬件资源和任务执行耗时,所述阶段间数据流策略包括将所述硬件资源划分为多个处理单元组的策略、及将所述多个流水线阶段映射到所述多个处理单元组的策略,所述处理单元组包括至少一个处理单元。6.根据权利要求5所述的方法,其中,所述硬件资源和所述任务执行耗时中的至少一个为可更新项。7.根据权利要求1所述的方法,其中,所述根据所述阶段间数据流策略,生成所述多个流水线阶段对应的多个阶段内数据流策略,包括:根据所述阶段间数据流策略,生成所述算子的多个候选数据流策略,所述候选数据流策略包括将所述算子拆分为多个微算子的策略、将所述算子的张量切分为多个微张量的策略、及将所述微算子映射到处理单元的策略;确定所述候选数据流策略的数据处理成本;根据所述流水线阶段中算子的多个候选数据流策略的数据处理成本,确定该流水线阶
段的阶段内数据流策略,所述阶段内数据流策略包括至少一个候选数据流策略。8.根据权利要求7所述的方法,其中,所述根据所述流水线阶段中算子的多个候选数据流策略的数据处理成本,确定该流水线阶段的阶段内数据流策略,包括:根据所述流水线阶段包括的算子、及算子的多个候选数据流策略,生成该流水线阶段的多个候选阶段内数据流策略,不同的所述候选阶段内数据流策略包括的候选数据流策略至少部分不同;根据所述候选阶段内数据流策略包括的候选数据流策略的数据处理成本,从所述多个候选阶段内数据流策略中确定该流水线阶段的阶段内数据流策略。9.根据权利要求7所述的方法,其中,所述候选数据流策略包括如下各项之一:(i)按空间维度将所述算子拆分为多个微算子的策略,其中,按空间维度拆分出的多个微算子以并行方式执行;(ii)按时间维度将所述算子拆分为多个微算子的策略,其中,按时间维度拆分出的至少部分微算子以串行方式执行;(iii)按空间维度和时间维度将所述算子拆分为多个微算子的策略。10.根据权利要求1-9中任一所述的方法,所述方法还包括:根据所述目标阶段间数据流策略,生成流水线阶段之间的阶段间通信原语;根据所述目标阶段内数据流策略,生成相对应流水线阶段内的阶段内通信原语。11.一种数据流策略生成装置,包括:获取单元,用于获取数据处理任务对应的计算图;第一生成单元,用于根据所述计算图和执行成本生成阶段间数据流策略,其中,所述阶段间数据流策略包括将所述计算图包括的算子划分为多个流水线阶段的策略,所述流水线阶段包括至少一个算子;第二生成单元,用于根据所述阶段间数据流策略,生成所述多个流水线阶段对应的多个阶段内数据流策略;更新单元,用于根据所述多个阶段内数据流策略更新所述执行成本,以优化所述阶段间数据流策略,获得用于执行所述数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。12.一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如权利要求1-10中任一项方法对应的操作。13.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-10中任一项的方法。14.一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-10中任一项的方法。

技术总结
本申请实施例提供了一种数据流策略生成方法、装置、电子设备和存储介质,该数据流策略生成方法包括:获取数据处理任务对应的计算图;根据计算图和执行成本生成阶段间数据流策略,其中,阶段间数据流策略包括将计算图包括的算子划分为多个流水线阶段的策略,流水线阶段包括至少一个算子;根据阶段间数据流策略,生成多个流水线阶段对应的多个阶段内数据流策略;根据多个阶段内数据流策略更新执行成本,以优化阶段间数据流策略,获得用于执行数据处理任务的目标阶段间数据流策略和相对应的多个目标阶段内数据流策略。本方案提供的数据流策略生成方案能够适用于不同的数据处理任务和硬件,具有较强的适用性。具有较强的适用性。具有较强的适用性。


技术研发人员:李浩然 薛菲 仲睿光 高源 方元炜 刘培业
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.16
技术公布日:2023/7/17
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐