CN111309479A - 一种任务并行处理的实现方法、装置、设备和介质 - Google Patents
一种任务并行处理的实现方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN111309479A CN111309479A CN202010093670.8A CN202010093670A CN111309479A CN 111309479 A CN111309479 A CN 111309479A CN 202010093670 A CN202010093670 A CN 202010093670A CN 111309479 A CN111309479 A CN 111309479A
- Authority
- CN
- China
- Prior art keywords
- operator
- parallel computation
- computation graph
- execution cost
- scheduling scheme
- 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
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例公开了一种任务并行处理的实现方法、装置、设备和介质,涉及深度学习技术领域。该方法包括:确定目标任务的至少一个并行计算图;根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。本申请实施例的技术方案,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据,能够更好使目标任务的执行适配于不同环境情况的集群,达到最优的并行效率。
Description
技术领域
本申请实施例涉及计算机技术,具体涉及人工智能技术和并行处理技术。
背景技术
随着人工智能技术的发展,其中深度学习技术被越来越多的使用。深度学习技术,典型的包括深度学习模型的训练过程,以及训练后深度学习模型的应用过程。
目前,随着深度学习模型训练过程和应用过程的计算量增加,为了缩短时间,已经逐步采用了并行处理的方式。即,将深度学习模型的训练或应用任务,分配至由多节点构成的集群中,进行并行处理。例如采用GPU多机多卡进行并行训练。
现有技术中,如何能够提高深度学习模型计算过程并行处理的效率,是当前的研究热点方向之一。
发明内容
本申请实施例提供了一种任务并行处理的实现方法、装置、设备和介质,从而能够提高任务在集群中的并行处理效率。
第一方面,本申请实施例提供了一种任务并行处理的实现方法,包括:
确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
本申请实施例的技术方案,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据,能够更好使目标任务的执行适配于不同环境情况的集群,达到最优的并行效率。
可选的,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
获取所述算子任务在集群中被节点执行的硬件执行代价;
根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
根据所述总执行代价,筛选确定并行计算图以及算子调度方案。
上述申请中的一个可选实施方式,通过获取单个算子任务的硬件执行代价来计算确定总执行代价,能够精确获得并行计算图以及算子调度方案在集群中的总执行代价,使得筛选效果更佳准确。
可选的,获取所述算子任务在集群中被节点执行的硬件执行代价包括:
将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;
采集所述算子任务被节点执行的硬件执行代价。
可选的,根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价包括:
按照所述算子调度方案中的调度顺序,以及各算子任务在所述并行计算图中的并发关系,统计各所述算子任务的硬件执行代价,计算所述总执行代价。
可选的,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
根据所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征,基于调度方案模型,对所述并行计算图采用所述算子调度方案在所述集群中处理的总执行代价进行预测;
根据预测的总执行代价,筛选确定并行计算图以及算子调度方案。
上述申请中的一个可选实施方式,对并行计算度、算子调度方案、以及集群的各方面特征,以及对应的总执行代价进行模型学习,从而能够基于模型预测出总执行代价,不必通过在集群中实测计算来采集硬件执行代价,从而可减少资源占用,提高调度方案的筛选效率。
可选的,根据预测的总执行代价,筛选确定并行计算图以及算子调度方案之后,还包括:
如果筛选确定得到的所述并行计算图和/或算子调度方案的数量为多个,则针对每组所述并行计算图以及算子调度方案,分别调度算子任务至所述集群中执行;
采集所述算子任务被节点执行的硬件执行代价;
根据所述算子任务的硬件执行代价,计算所述并行计算图以及算子调度方案的总执行代价;
根据计算的所述总执行代价,再次筛选确定并行计算图以及算子调度方案。
上述申请中的一个可选实施方式,结合采用了模型预测和实测计算的方式,兼顾了调度方案的筛选效率和对资源的占用情况。
可选的,该方法还包括:
获取历史记录的在集群中执行的并行计算图以及算子调度方案,作为训练样本;
采用各个训练样本中并行计算图的算子特征、算子调度方案的调度特征、所述集群的硬件特征、以及作为结果的总执行代价,对调度方案模型进行训练。
可选的:
所述并行计算图的算子特征包括下述至少一项:算子任务的硬件执行代价、算子任务的数量、算子任务的参数、算子任务的类型、和通信类算子任务的数量;
所述算子调度方案的调度特征包括下述至少一项:通信类算子任务的入度算子任务和出度算子任务的数量和种类、以及并行计算图的并发度;
所述集群的节点硬件特征包括:节点数量、以及节点的硬件性能指标;
所述总执行代价为归一化处理的数据。
可选的,所述调度方案模型为线性回归模型。
可选的,确定目标任务的至少一个并行计算图包括:
根据所述目标任务的单机计算图,以及所述集群中的节点数量,生成至少一个所述并行计算图。
可选的,所述算子任务的类型至少包括:计算类和通信类;
所述计算类的算子任务用于对数据进行计算;所述通信类的算子任务用于对数据在节点之间进行传输。
上述申请中的一个可选实施方式,目标任务优选是机器学习类任务,本申请实施例的优势在深度学习领域尤为明显。深度学习领域中的目标任务一般是机器学习模型的训练或实际应用的运行,目标任务的算子任务众多且关系复杂,会有多种调度方案可行,通过本申请实施例的技术方案,能够使深度学习框架在不同硬件环境的集群上自动得到接近最优的训练速度。
可选的,所述目标任务为机器学习模型的训练任务或运行任务,所述计算类的算子任务包括下述至少一项:数学运算算子、数组运算算子和神经网络积木运算算子。
可选的:
所述算子任务的硬件执行代价包括下述至少一种:所述算子任务的执行时间、以及所述算子任务的硬件占用数据;
所述硬件占用数据包括下述至少一种:显存占用比例、芯片利用率、和网络带宽利用率。
可选的,如果所述硬件执行代价的种类为多个,则所述并行计算图的总执行代价为多个种类总执行代价的组合或对多个种类总执行代价的加权求和值。
上述申请中的一个可选实施方式,硬件执行代价的种类可以为多个,能够从多维度的确定调度方案的总执行代价,从而可基于不同需求对调度方案进行筛选。
可选的,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
针对每个所述并行计算图,以及初始的算子调度方案,根据算子任务的硬件执行代价,确定所述并行计算图的总执行代价;
根据所述总执行代价对多个所述并行计算图进行筛选,确定候选并行计算图;
针对所述候选并行计算图,采用启发式算法确定多种候选算子调度方案;
针对每组所述候选并行计算图以及候选算子调度方案,根据算子任务的硬件执行代价,确定所述候选并行计算图和候选算子调度方案的总执行代价。
根据所述候选并行计算图和候选算子调度方案的总执行代价,为候选并行计算图筛选候选算子调度方案。
第二方面,本申请实施例提供了一种任务并行处理的实现装置,包括:
计算图确定模块,用于确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
调度方案筛选模块,用于根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
任务调度执行模块,用于根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
第三方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请任意实施例所提供的任务并行处理的实现方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请任意实施例所提供的任务并行处理的实现方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请第一实施例所提供的任务并行处理的实现方法的流程图;
图2A为本申请第二实施例提供的任务并行处理的实现方法的流程图;
图2B为本申请第二实施例所适用的并行计算图;
图3为本申请第三实施例所提供的任务并行处理的实现方法的流程图;
图4A为本申请第四实施例提供的任务并行处理的实现方法的流程图;
图4B为本申请第四实施例所适用的实现过程示意图;
图5为本申请第五实施例所提供的任务并行处理的实现装置的结构示意图;
图6是用来实现本申请实施例的任务并行处理的实现方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1为本申请第一实施例所提供的任务并行处理的实现方法的流程图。本实施例适用于将目标任务在集群中并行调度执行的过程。目标任务可以是任意需要进行大量计算的任务,例如,机器学习模型的训练过程或运行过程,一般都需要进行大量数据计算,可作为目标任务。本申请实施例所涉及的集群,包括多个节点,节点为可执行设定计算功能的电子设备,典型如CPU、GPU等。集群中的节点可以为具有不同硬件性能指标的设备,其中的软件运行环境也可以不同。节点之间通过一定的拓扑关系实现通信。集群一般是提供给目标任务来运行的硬件平台,不同的集群可以有不同的节点硬件和软件情况。
本实施例所提供的任务并行处理的实现方法,包括:
S110、确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
上述操作中,并行计算图为包括了符合目标任务执行的拓扑关系要求的多个算子任务的图结构。算子任务是能够独立调度给集群中节点执行的任务。算子任务可以有多种类型,典型的可分为计算类和通信类。所述计算类的算子任务用于对数据进行计算;所述通信类的算子任务用于对数据在节点之间进行传输。当然,可以理解的是,对于不同的目标任务,也可以有其他所需类型的算子任务。
以目标任务为机器学习模型的训练任务或运行任务为例,其所包括的计算类的算子任务可以包括下述至少一项:数学运算算子、数组运算算子和神经网络积木运算算子。数学运算算子具体可包括减法、加法、除法、和梯度计算等算子;数组运算例如包括串接、拼接、拆分、和排序等算子;神经网络积木运算例如包括分类器(softmax)、归一化(sigmoid)、激活函数(ReLU)、和卷积等算子。通信类的算子任务又可以按照通信方式,通信后处理算法细分为不同种类。
算子任务之间的边关系反应了算子任务之间的数据流向。例如,从A算子任务指向B算子任务,则表明A算子任务的数据计算结果,将输出至B算子任务,作为输入数据。
对于目标任务,具体可以根据所述目标任务的单机计算图,以及所述集群中的节点数量,生成至少一个所述并行计算图。
通常,对于单机计算图,符合多节点拓扑规则的并行计算图可能有多个。
S120、根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
所谓算子调度方案,是针对设定的并行计算图,按照设定顺序将算子任务分配至各个节点并行执行的具体方案,主要体现的是调度顺序。上述操作中,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据。
硬件执行代价反映了特定算子任务在特定硬件状态的节点中被执行的代价,可以通过多种途径获取,例如实测采集或估算预测。对于算子任务的硬件执行代价如何具体用于筛选并行计算图和调度方案,本申请后续实施例将分别详细介绍。
S130、根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
根据硬件执行代价筛选确定的并行计算图和算子调度方案,为优选的、并行效率较高方案。基于优选的并行计算图和算子调度方案,可正式执行目标任务在所述集群中的计算过程。
本申请实施例的技术方案,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据,能够更好使目标任务的执行适配于不同环境情况的集群,达到最优的并行效率。
相比于仅考虑并行计算图的调度顺序优劣性、集群负载能力的方案,若不关注集群节点的状态,如不关注节点的计算芯片性能、节点之间的通信状态等,则可能会影响到目标任务的整体运行时间。例如,若某算子任务的输入数据需要使用前一入度算子任务的输出数据,而前一入度算子任务恰好调度给计算性能较差的节点,需要较长时间计算,则后续的算子任务必须等待,这就整体性延长了目标任务的计算时间。
当采用本申请实施例的技术方案后,可进一步考虑了集群的节点硬件状态,能够提高并发度,优化硬件资源利用。
第二实施例
图2A为本申请第二实施例提供的任务并行处理的实现方法的流程图,本实施例以前述实施例为基础,通过获取各个算子任务的硬件执行代价,来计算总执行代价,从而实现方案筛选。本实施例的方法具体包括:
S210、确定目标任务的至少一个并行计算图;
S220、获取所述算子任务在集群中被节点执行的硬件执行代价;
算子任务的硬件执行代价,可以通过多种方式获取,如实测采集或从记录中查询。
优选是,在目标任务的并行计算图编译阶段,通过小规模试探性运行来采集算子任务的硬件执行代价。则获取所述算子任务在集群中被节点执行的硬件执行代价具体包括:
将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;采集所述算子任务被节点执行的硬件执行代价。
上述调度过程,可以基于默认调度策略产生算子调度方案来进行调度。可以采用一种算子调度方案来试探并采集硬件执行代价,也可以选择多种算子调度方案,分别进行试探和硬件执行代价的采集,以备后续计算和比较筛选。可以基于完整的算子调度方案来调度算子任务,也可以调度局部的算子任务执行,只要能够采集所需的硬件执行代价即可。
上述设定规模一般是小规模计算,例如,每个算子任务完成设定数据量的计算或完成设定的计算次数。能够在较短时间内完成并能体现集群硬件当前状态、足以作为估算总执行代价的依据即可。
可以是采集获取全部算子任务的硬件执行代价,也可以是获取部分关键算子任务的硬件执行代价。非关键算子任务的硬件执行代价,一般对总执行代价影响较小,或者一般来说受硬件性能影响较小。
对于不同的算子调度方案,或由不同的节点执行时,某些算子任务的硬件执行代价会有较大区别,有些算子任务的硬件执行代价则基本没有差别。因此,在试探性阶段可通过尽量小规模的计算来获取不同算子调度方案或不同节点执行时的算子任务硬件执行代价。
通过试探性计算采集到的硬件执行代价,可以对应集群节点的硬件性能进行记录。当记录足够多的数据时,后续可通过查询历史记录获得算子任务的硬件执行代价。
S230、根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
本操作是基于各个算子任务的硬件执行代价,对总执行代价进行计算。可选是执行如下操作:按照所述算子调度方案中的调度顺序,以及各算子任务在所述并行计算图中的并发关系,统计各所述算子任务的硬件执行代价,计算所述总执行代价。
计算总执行代价,相当于换算累加了各个环节的硬件执行代价,如果按照并发关系,某各算子任务的执行需要等待,则等待成本也需要累加到总执行代价之中。
算子任务的硬件执行代价可以有一种或多种,因此对应计算的总执行代价也可以有多种方式来体现。
举例来说,所述算子任务的硬件执行代价可以包括下述至少一种:所述算子任务的执行时间、以及所述算子任务的硬件占用数据。
所谓算子任务的执行时间,可以是可计算的单位执行时间,例如执行一次数据计算的时间、执行单位数据量计算的时间、传输单位数据量的时间等。能够通过换算而计算出完成整体目标任务的处理的执行时间。以图2B所示的并行计算图为例,该并行计算图包括A、B、C和D,四个算子任务,A作为B和C的入度算子,B和C作为D的入度算子。设分别获取A、B、C和D算子任务的执行时间是4、3、5和1,则由于D算子任务在执行时需要等待B和C算子任务的输出数据,所以,B算子任务执行完毕后,还需要等待C算子任务执行完毕。因此总时间为4+5+1=10。
所谓算子任务的硬件占用数据可以包括下述至少一种:显存占用比例、芯片利用率、和网络带宽利用率等。硬件占用数据反映了算子任务执行时对硬件资源的占用情况。优选是单位占用情况,从而可以换算至更大量数据的处理过程。
如果所述硬件执行代价的种类为一个,例如时间,则总执行代价也反映为总时间。
如果所述硬件执行代价的种类为多个,则所述并行计算图的总执行代价可以为多个种类总执行代价的组合,即针对每个种类分别计算总执行代价,如总执行时间、总的芯片占用率、总的带宽占用率,或平均占用率等。由此能否综合性的反映该目标任务在该集群中执行时,采用某个并行计算图的某个算子调度方案的各方面指标。
或者,所述并行计算图的总执行代价也可以为对多个种类总执行代价的加权求和值。即将不同类型的总执行代价进行归一化,再按照设定权重进行加权求和,以便于整体性比较。
S240、根据所述总执行代价,筛选确定并行计算图以及算子调度方案;
对于并行计算图以及算子调度方案的筛选,可以是针对特定的并行计算图,从其对应的多种算子调度方案中筛选;也可以是同时对多个并行计算图及其算子调度方案进行筛选。可以取总执行代价低于设定门限值的方案,也可以是将总执行代价进行从低到高的排序来进行优选,或者还可以根据需求进行筛选。例如当前优先关注的是执行时间短,或当前优先关注的是芯片占用率低等。
上述过程均属于并行计算图的编译阶段,这一阶段可以在短时间内完成,对于目标任务的发起用户来说可以无感知。
S250、根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
完成并行计算图的编译阶段,则确定了并行计算图和算子调度方案,再正式进行执行阶段,完成目标任务的整体执行过程。
本实施例的技术方案,可以通过开启自动化并行的选项,在提交目标任务的过程中,自动运行编译阶段和执行阶段,用户对此无感。通过自动寻找最优的并行计算图和算子调度方案,一般能够整体性节省20%-40%的计算资源。
第三实施例
图3为本申请第三实施例所提供的任务并行处理的实现方法的流程图,本实施例以前述实施例为基础,提供了一种基于模型对总执行代价进行预测的实现方式。本实施例的方法包括:
S310、确定目标任务的至少一个并行计算图;
S320、根据所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征,基于调度方案模型,对所述并行计算图采用所述算子调度方案在所述集群中处理的总执行代价进行预测;
对于确定的并行计算图和算子调度顺序来说,当其多次被分配至相同情况的集群中去执行时,其总执行代价一般是不变的。并且,并行计算图中的算子情况、算子调度方案中的调度顺序、以及集群中的硬件特征中,存在部分特征为影响总执行代价的关键特征。由此,可以通过构建机器学习模型的方式,对所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征进行学习,从而完成总执行代价的预测。
调度方案模型的训练学习,主要是学习影响总执行代价的关键特征或泛化特征,包括但不限于如下方面:
第一方面,所述并行计算图的算子特征包括下述至少一项:算子任务的硬件执行代价、算子任务的数量、算子任务的参数、算子任务的类型、和通信类算子任务的数量;
其中,算子任务的参数可以是影响算子任务计算量的某些参数,如卷积算子的卷积核参数等。算子任务的类型可以简单划分为计算类和通信类,优选是更具体的进行划分,如前述的:减法、加法、卷积算子等。算子任务的类型可以按照模型学习效果来不断优化调整。
第二方面,所述算子调度方案的调度特征包括下述至少一项:通信类算子任务的入度算子任务和出度算子任务的数量和种类、以及并行计算图的并发度;
算子调度方案的调度特征主要是反映调度顺序。优选是采用反映局部调度顺序或关键调度顺序的特征。例如,一般通信类算子任务按照在哪些计算类算子任务的前后,会影响执行时间,因此可以记录通信类算子任务附近其他计算类算子任务的捆绑特征,即入度算子任务和出度算子任务的数量和种类,可以用数组的方式体现。并行计算图的并发度为整体指标,但也是能够反映调度顺序的指标。
第三方面,所述集群的节点硬件特征包括:节点数量、以及节点的硬件性能指标;
节点的硬件性能指标,例如包括:GPU的频率、带宽、内存空间等。
第四方面,所述总执行代价为归一化处理的数据。
总执行代价优选被归一化到0-1区间,使得不同的并行计算图之间的总执行代价可以方便比较。
本实施例所采用的调度方案模型可选为线性回归模型。
S330、根据预测的总执行代价,筛选确定并行计算图以及算子调度方案。
预测获得总执行代价,可类似于计算获得的总执行代价,基于此对并行计算图和算子调度方案进行筛选。
S340、根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
在本实施例中,以调度方案模型的方式来预测出某种并行计算图和算子调度方案在某种集群中的总执行代价,从而进行筛选,既考虑到了集群的硬件状态,又能够减少对试探性实际计算的依赖和资源占用,进一步提高了目标任务的执行效率。
本实施例所使用的调度方案模型,可以预先训练获得。即本实施例的方法还包括:
获取历史记录的在集群中执行的并行计算图以及算子调度方案,作为训练样本;
采用各个训练样本中并行计算图的算子特征、算子调度方案的调度特征、所述集群的硬件特征、以及作为结果的总执行代价,对调度方案模型进行训练。
历史记录的数据可以通过第二实施例的方式来获取筛选确定出的并行计算图和算子调度方案。在多次记录后即可获取足够的训练样本。
本申请实施例所提供的通过试探计算来筛选并行计算图和算子调度方案,以及通过模型预测来筛选并行计算图和算子调度方案,两者可以独立实施也可以结合实施。可选的,将模型预测作为粗筛方式,将试探计算作为精筛方式来结合采用。则在根据预测的总执行代价,筛选确定并行计算图以及算子调度方案之后,还可以包括:
如果筛选确定得到的所述并行计算图和/或算子调度方案的数量为多个,则针对每组所述并行计算图以及算子调度方案,分别调度算子任务至所述集群中执行;
采集所述算子任务被节点执行的硬件执行代价;
根据所述算子任务的硬件执行代价,计算所述并行计算图以及算子调度方案的总执行代价;
根据计算的所述总执行代价,再次筛选确定并行计算图以及算子调度方案。
对于确定的集群,其硬件性能一般是不变的,但是也不排除在不同时期,集群的硬件性能会发生少量变化。因此,通过模型预测的方式粗筛得到的几种方案,可以试探性的调度至当前集群中运行,实测硬件执行性能,再进行更精准的调度方案筛选。
第四实施例
图4A为本申请第四实施例提供的任务并行处理的实现方法的流程图。图4B为本申请第四实施例所适用的实现过程示意图。本实施例以前述实施例为基础,提供了一种可选实例方案,具体包括如下:
S410、确定目标任务的多个并行计算图,其中,所述并行计算图中包括多个算子任务;
具体可以是在单机计算图的基础上,基于集群可供调用的节点数量,批量产生多个并行计算图。并行计算图的生成可基于多流通信、梯度聚合、层次通信等方法进行并行效率的优化。并行计算图的生成,会采样多流通信中的流的数目、梯度聚合的组合、通信方法(层次通信,2D通信,环状通信)等生成多个并行计算图。不同的并行计算图,若采用不同的梯度聚合,则会带来通信类算子任务的变化。
S420、针对每个所述并行计算图,以及初始的算子调度方案,根据算子任务的硬件执行代价,确定所述并行计算图的总执行代价;
初始的算子调度方案可以为默认调度策略确定的方案。可以通过试探计算的方式或模型预测的方式来确定总执行代价。
可选的以试探计算的方式确定,即S420具体包括:
S421、将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;
可以是多个并行计算图,分别调度至可供调用的集群节点中执行处理。如图4B所述,集群可以为该目标任务确定黑色方格所代表的节点是可供调用的资源。
S422、采集所述算子任务被节点执行的硬件执行代价;
S423、根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
S430、根据所述总执行代价对多个所述并行计算图进行筛选,确定候选并行计算图;
具体可以是通过总执行代价的排序,挑选出性能较优的前K个并行计算图,作为候选并行计算图。
S440、针对所述候选并行计算图,采用启发式算法确定多种候选算子调度方案;
具体是在初始的算子调度方案的基础上,在符合并行计算图拓扑规则的前提下,对并行计算图的各种可行的算子调度方案进行扰动生成。例如可通过试探性调整确定所有可行的算子调度方案,作为候选算子调度方案。该方案是利用自动搜索算法,确定了可供筛选的多个算子调度方案。
S450、针对每组所述候选并行计算图以及候选算子调度方案,根据算子任务的硬件执行代价,确定所述候选并行计算图和候选算子调度方案的总执行代价。
参照前述方式,可针对候选并行计算图以及候选算子调度方案,确定总执行代价。例如可通过离线计算的方式来计算总执行代价。或者也可以通过模型预测方式来确定总执行代价。
S460、根据所述候选并行计算图和候选算子调度方案的总执行代价,为候选并行计算图筛选候选算子调度方案。
可以综合多组候选并行计算图和候选算子调度方案的总执行代价,选择最优的方案。
S470、根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
本申请实施例的技术方案,在确定目标任务的并行计算图和算子调度方式时,引入考虑了集群情况,即硬件执行代价,相比于集群无关的并行处理方案而言,能够进一步加快目标任务的执行速度,提高并发度,节省计算资源。本申请实施例能够将目标任务与集群情况进行自动的匹配,筛选合适的并行计算图和算子调度方案。这一优势在深度学习领域尤为明显。深度学习领域中的目标任务一般是机器学习模型的训练或实际应用的运行,目标任务的算子任务众多且关系复杂,会有多种调度方案可行,通过本申请实施例的技术方案,能够使深度学习框架在不同硬件环境的集群上自动得到接近最优的训练速度。
第五实施例
图5为本申请第五实施例所提供的任务并行处理的实现装置的结构示意图,该装置500包括:计算图确定模块510、调度方案筛选模块520和任务调度执行模块530。其中:
计算图确定模块510,用于确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
调度方案筛选模块520,用于根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
任务调度执行模块530,用于根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
本申请实施例的技术方案,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据,能够更好使目标任务的执行适配于不同环境情况的集群,达到最优的并行效率。
在上述方案的基础上,一种可选方案是,调度方案筛选模块520具体包括:
算子代价获取单元,用于获取所述算子任务在集群中被节点执行的硬件执行代价;
总代价计算单元,用于根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
方案筛选单元,用于根据所述总执行代价,筛选确定并行计算图以及算子调度方案。
可选的是,算子代价获取单元具体用于:将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;采集所述算子任务被节点执行的硬件执行代价。
可选的是,总代价计算单元具体用于按照所述算子调度方案中的调度顺序,以及各算子任务在所述并行计算图中的并发关系,统计各所述算子任务的硬件执行代价,计算所述总执行代价。
在上述方案的基础上,另一种可选方案是,调度方案筛选模块520具体用于根据所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征,基于调度方案模型,对所述并行计算图采用所述算子调度方案在所述集群中处理的总执行代价进行预测;根据预测的总执行代价,筛选确定并行计算图以及算子调度方案。
可选的是,所述装置还包括:二次筛选模块,用于根据预测的总执行代价,筛选确定并行计算图以及算子调度方案之后,如果筛选确定得到的所述并行计算图和/或算子调度方案的数量为多个,则针对每组所述并行计算图以及算子调度方案,分别调度算子任务至所述集群中执行;采集所述算子任务被节点执行的硬件执行代价;根据所述算子任务的硬件执行代价,计算所述并行计算图以及算子调度方案的总执行代价;根据计算的所述总执行代价,再次筛选确定并行计算图以及算子调度方案。
可选的是,所述装置还包括:
模型训练模块,用于获取历史记录的在集群中执行的并行计算图以及算子调度方案,作为训练样本;采用各个训练样本中并行计算图的算子特征、算子调度方案的调度特征、所述集群的硬件特征、以及作为结果的总执行代价,对调度方案模型进行训练。
可选的是:
所述并行计算图的算子特征包括下述至少一项:算子任务的硬件执行代价、算子任务的数量、算子任务的参数、算子任务的类型、和通信类算子任务的数量;
所述算子调度方案的调度特征包括下述至少一项:通信类算子任务的入度算子任务和出度算子任务的数量和种类、以及并行计算图的并发度;
所述集群的节点硬件特征包括:节点数量、以及节点的硬件性能指标;
所述总执行代价为归一化处理的数据。
可选的是,所述调度方案模型为线性回归模型。
可选的是,计算图确定模块510具体用于根据所述目标任务的单机计算图,以及所述集群中的节点数量,生成至少一个所述并行计算图。
可选的是,所述算子任务的类型至少包括:计算类和通信类;
所述计算类的算子任务用于对数据进行计算;所述通信类的算子任务用于对数据在节点之间进行传输。
可选的是,所述目标任务为机器学习模型的训练任务或运行任务,所述计算类的算子任务包括下述至少一项:数学运算算子、数组运算算子和神经网络积木运算算子。
可选的是:
所述算子任务的硬件执行代价包括下述至少一种:所述算子任务的执行时间、以及所述算子任务的硬件占用数据;
所述硬件占用数据包括下述至少一种:显存占用比例、芯片利用率、和网络带宽利用率。
可选的是,如果所述硬件执行代价的种类为多个,则所述并行计算图的总执行代价为多个种类总执行代价的组合或对多个种类总执行代价的加权求和值。
可选的是,调度方案筛选模块520具体用于:
针对每个所述并行计算图,以及初始的算子调度方案,根据算子任务的硬件执行代价,确定所述并行计算图的总执行代价;
根据所述总执行代价对多个所述并行计算图进行筛选,确定候选并行计算图;
针对所述候选并行计算图,采用启发式算法确定多种候选算子调度方案;
针对每组所述候选并行计算图以及候选算子调度方案,根据算子任务的硬件执行代价,确定所述候选并行计算图和候选算子调度方案的总执行代价。
根据所述候选并行计算图和候选算子调度方案的总执行代价,为候选并行计算图筛选候选算子调度方案。
第六实施例
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请第六实施例所提供的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请实施例所提供的任务并行处理的实现方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请实施例所提供的任务并行处理的实现方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的任务并行处理的实现方法对应的程序指令/模块(例如,附图5所示的计算图确定模块510、调度方案筛选模块520和任务调度执行模块530)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的任务并行处理的实现方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据任务并行处理的实现方法的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至任务并行处理的实现方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
任务并行处理的实现方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与任务并行处理的实现方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,在为目标任务确定并行计算图以及算子调度方案时,引入考虑了算子任务在集群中的硬件执行代价,作为筛选依据,能够更好使目标任务的执行适配于不同环境情况的集群,达到最优的并行效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (32)
1.一种任务并行处理的实现方法,其特征在于,包括:
确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
2.根据权利要求1所述的方法,其特征在于,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
获取所述算子任务在集群中被节点执行的硬件执行代价;
根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
根据所述总执行代价,筛选确定并行计算图以及算子调度方案。
3.根据权利要求2所述的方法,其特征在于,获取所述算子任务在集群中被节点执行的硬件执行代价包括:
将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;
采集所述算子任务被节点执行的硬件执行代价。
4.根据权利要求2所述的方法,其特征在于,根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价包括:
按照所述算子调度方案中的调度顺序,以及各算子任务在所述并行计算图中的并发关系,统计各所述算子任务的硬件执行代价,计算所述总执行代价。
5.根据权利要求1所述的方法,其特征在于,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
根据所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征,基于调度方案模型,对所述并行计算图采用所述算子调度方案在所述集群中处理的总执行代价进行预测;
根据预测的总执行代价,筛选确定并行计算图以及算子调度方案。
6.根据权利要求5所述的方法,其特征在于,根据预测的总执行代价,筛选确定并行计算图以及算子调度方案之后,还包括:
如果筛选确定得到的所述并行计算图和/或算子调度方案的数量为多个,则针对每组所述并行计算图以及算子调度方案,分别调度算子任务至所述集群中执行;
采集所述算子任务被节点执行的硬件执行代价;
根据所述算子任务的硬件执行代价,计算所述并行计算图以及算子调度方案的总执行代价;
根据计算的所述总执行代价,再次筛选确定并行计算图以及算子调度方案。
7.根据权利要求5所述的方法,其特征在于,还包括:
获取历史记录的在集群中执行的并行计算图以及算子调度方案,作为训练样本;
采用各个训练样本中并行计算图的算子特征、算子调度方案的调度特征、所述集群的硬件特征、以及作为结果的总执行代价,对调度方案模型进行训练。
8.根据权利要求5所述的方法,其特征在于:
所述并行计算图的算子特征包括下述至少一项:算子任务的硬件执行代价、算子任务的数量、算子任务的参数、算子任务的类型、和通信类算子任务的数量;
所述算子调度方案的调度特征包括下述至少一项:通信类算子任务的入度算子任务和出度算子任务的数量和种类、以及并行计算图的并发度;
所述集群的节点硬件特征包括:节点数量、以及节点的硬件性能指标;
所述总执行代价为归一化处理的数据。
9.根据权利要求5所述的方法,其特征在于,所述调度方案模型为线性回归模型。
10.根据权利要求1-9任一所述的方法,其特征在于,确定目标任务的至少一个并行计算图包括:
根据所述目标任务的单机计算图,以及所述集群中的节点数量,生成至少一个所述并行计算图。
11.根据权利要求1-9任一所述的方法,其特征在于,所述算子任务的类型至少包括:计算类和通信类;
所述计算类的算子任务用于对数据进行计算;所述通信类的算子任务用于对数据在节点之间进行传输。
12.根据权利要求11所述的方法,其特征在于,所述目标任务为机器学习模型的训练任务或运行任务,所述计算类的算子任务包括下述至少一项:数学运算算子、数组运算算子和神经网络积木运算算子。
13.根据权利要求1-9任一所述的方法,其特征在于:
所述算子任务的硬件执行代价包括下述至少一种:所述算子任务的执行时间、以及所述算子任务的硬件占用数据;
所述硬件占用数据包括下述至少一种:显存占用比例、芯片利用率、和网络带宽利用率。
14.根据权利要求13所述的方法,其特征在于,如果所述硬件执行代价的种类为多个,则所述并行计算图的总执行代价为多个种类总执行代价的组合或对多个种类总执行代价的加权求和值。
15.根据权利要求1-9任一所述的方法,其特征在于,根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案包括:
针对每个所述并行计算图,以及初始的算子调度方案,根据算子任务的硬件执行代价,确定所述并行计算图的总执行代价;
根据所述总执行代价对多个所述并行计算图进行筛选,确定候选并行计算图;
针对所述候选并行计算图,采用启发式算法确定多种候选算子调度方案;
针对每组所述候选并行计算图以及候选算子调度方案,根据算子任务的硬件执行代价,确定所述候选并行计算图和候选算子调度方案的总执行代价。
根据所述候选并行计算图和候选算子调度方案的总执行代价,为候选并行计算图筛选候选算子调度方案。
16.一种任务并行处理的实现装置,其特征在于,包括:
计算图确定模块,用于确定目标任务的至少一个并行计算图,其中,所述并行计算图中包括多个算子任务;
调度方案筛选模块,用于根据所述并行计算图的算子任务在集群中的硬件执行代价,筛选确定并行计算图以及算子调度方案,其中,所述集群包括多个节点,用于执行所述算子任务;所述并行计算图具有至少一种算子调度方案;
任务调度执行模块,用于根据确定的并行计算图和算子调度方案,将所述并行计算图中的算子任务在所述集群中调度执行。
17.根据权利要求16所述的装置,其特征在于,所述调度方案筛选模块包括:
算子代价获取单元,用于获取所述算子任务在集群中被节点执行的硬件执行代价;
总代价计算单元,用于根据各所述算子任务的硬件执行代价,计算所述并行计算图采用所述算子调度方案在所述集群中执行的总执行代价;
方案筛选单元,用于根据所述总执行代价,筛选确定并行计算图以及算子调度方案。
18.根据权利要求17所述的装置,其特征在于,算子代价获取单元具体用于:
将所述并行计算图的算子任务,调度至所述集群中执行设定规模的处理;
采集所述算子任务被节点执行的硬件执行代价。
19.根据权利要求17所述的装置,其特征在于,总代价计算单元具体用于:
按照所述算子调度方案中的调度顺序,以及各算子任务在所述并行计算图中的并发关系,统计各所述算子任务的硬件执行代价,计算所述总执行代价。
20.根据权利要求16所述的装置,其特征在于,所述调度方案筛选模块具体用于:
根据所述并行计算图的算子特征、算子调度方案的调度特征、以及所述集群的硬件特征,基于调度方案模型,对所述并行计算图采用所述算子调度方案在所述集群中处理的总执行代价进行预测;
根据预测的总执行代价,筛选确定并行计算图以及算子调度方案。
21.根据权利要求20所述的装置,其特征在于,还包括:
二次筛选模块,用于根据预测的总执行代价,筛选确定并行计算图以及算子调度方案之后,如果筛选确定得到的所述并行计算图和/或算子调度方案的数量为多个,则针对每组所述并行计算图以及算子调度方案,分别调度算子任务至所述集群中执行;采集所述算子任务被节点执行的硬件执行代价;根据所述算子任务的硬件执行代价,计算所述并行计算图以及算子调度方案的总执行代价;根据计算的所述总执行代价,再次筛选确定并行计算图以及算子调度方案。
22.根据权利要求20所述的装置,其特征在于,还包括:
模型训练模块,用于获取历史记录的在集群中执行的并行计算图以及算子调度方案,作为训练样本;采用各个训练样本中并行计算图的算子特征、算子调度方案的调度特征、所述集群的硬件特征、以及作为结果的总执行代价,对调度方案模型进行训练。
23.根据权利要求20所述的装置,其特征在于:
所述并行计算图的算子特征包括下述至少一项:算子任务的硬件执行代价、算子任务的数量、算子任务的参数、算子任务的类型、和通信类算子任务的数量;
所述算子调度方案的调度特征包括下述至少一项:通信类算子任务的入度算子任务和出度算子任务的数量和种类、以及并行计算图的并发度;
所述集群的节点硬件特征包括:节点数量、以及节点的硬件性能指标;
所述总执行代价为归一化处理的数据。
24.根据权利要求20所述的装置,其特征在于,所述调度方案模型为线性回归模型。
25.根据权利要求16-24任一所述的装置,其特征在于,计算图确定模块具体用于:
根据所述目标任务的单机计算图,以及所述集群中的节点数量,生成至少一个所述并行计算图。
26.根据权利要求16-24任一所述的装置,其特征在于,所述算子任务的类型至少包括:计算类和通信类;
所述计算类的算子任务用于对数据进行计算;所述通信类的算子任务用于对数据在节点之间进行传输。
27.根据权利要求26所述的装置,其特征在于,所述目标任务为机器学习模型的训练任务或运行任务,所述计算类的算子任务包括下述至少一项:数学运算算子、数组运算算子和神经网络积木运算算子。
28.根据权利要求16-24任一所述的装置,其特征在于:
所述算子任务的硬件执行代价包括下述至少一种:所述算子任务的执行时间、以及所述算子任务的硬件占用数据;
所述硬件占用数据包括下述至少一种:显存占用比例、芯片利用率、和网络带宽利用率。
29.根据权利要求28所述的装置,其特征在于,如果所述硬件执行代价的种类为多个,则所述并行计算图的总执行代价为多个种类总执行代价的组合或对多个种类总执行代价的加权求和值。
30.根据权利要求16-24任一所述的装置,其特征在于,调度方案筛选模块具体用于:
针对每个所述并行计算图,以及初始的算子调度方案,根据算子任务的硬件执行代价,确定所述并行计算图的总执行代价;
根据所述总执行代价对多个所述并行计算图进行筛选,确定候选并行计算图;
针对所述候选并行计算图,采用启发式算法确定多种候选算子调度方案;
针对每组所述候选并行计算图以及候选算子调度方案,根据算子任务的硬件执行代价,确定所述候选并行计算图和候选算子调度方案的总执行代价。
根据所述候选并行计算图和候选算子调度方案的总执行代价,为候选并行计算图筛选候选算子调度方案。
31.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-15中任一项所述的任务并行处理的实现方法。
32.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-15中任一项所述的任务并行处理的实现方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093670.8A CN111309479B (zh) | 2020-02-14 | 2020-02-14 | 一种任务并行处理的实现方法、装置、设备和介质 |
US17/076,346 US11954522B2 (en) | 2020-02-14 | 2020-10-21 | Method for processing tasks in parallel, device and storage medium |
EP20202929.4A EP3866008A1 (en) | 2020-02-14 | 2020-10-21 | Method for processing tasks in parallel, device and storage medium |
KR1020200178497A KR102482122B1 (ko) | 2020-02-14 | 2020-12-18 | 태스크 병렬 처리 구현 방법, 장치, 기기 및 매체 |
JP2020217476A JP7094352B2 (ja) | 2020-02-14 | 2020-12-25 | タスク並列処理の実現方法、装置、機器及び媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093670.8A CN111309479B (zh) | 2020-02-14 | 2020-02-14 | 一种任务并行处理的实现方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309479A true CN111309479A (zh) | 2020-06-19 |
CN111309479B CN111309479B (zh) | 2023-06-06 |
Family
ID=71160098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093670.8A Active CN111309479B (zh) | 2020-02-14 | 2020-02-14 | 一种任务并行处理的实现方法、装置、设备和介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11954522B2 (zh) |
EP (1) | EP3866008A1 (zh) |
JP (1) | JP7094352B2 (zh) |
KR (1) | KR102482122B1 (zh) |
CN (1) | CN111309479B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475684A (zh) * | 2020-06-29 | 2020-07-31 | 北京一流科技有限公司 | 数据处理网络系统及其计算图生成方法 |
CN111783952A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 配置方法、装置、系统、电子设备以及存储介质 |
CN111899149A (zh) * | 2020-07-09 | 2020-11-06 | 浙江大华技术股份有限公司 | 基于算子融合的图像处理方法和装置、存储介质 |
CN111953614A (zh) * | 2020-08-07 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、处理设备及介质 |
CN112948079A (zh) * | 2021-02-18 | 2021-06-11 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN113449142A (zh) * | 2021-06-30 | 2021-09-28 | 北京百度网讯科技有限公司 | 信息处理方法及装置、电子设备、存储介质及产品 |
CN113535400A (zh) * | 2021-07-19 | 2021-10-22 | 闻泰通讯股份有限公司 | 并行计算资源分配方法与装置、存储介质、终端设备 |
CN114048030A (zh) * | 2021-11-09 | 2022-02-15 | 北京百度网讯科技有限公司 | 调度算子的方法和装置 |
CN114819084A (zh) * | 2022-04-26 | 2022-07-29 | 北京百度网讯科技有限公司 | 模型推理方法、装置、设备及存储介质 |
CN114996008A (zh) * | 2022-05-30 | 2022-09-02 | 上海壁仞智能科技有限公司 | Ai计算图多后端协同计算方法及装置 |
CN115269016A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种用于图计算的指令执行方法及装置 |
WO2023071149A1 (zh) * | 2021-10-27 | 2023-05-04 | 上海商汤智能科技有限公司 | 一种显存优化方法、装置、设备、存储介质及程序产品 |
CN116467061A (zh) * | 2023-06-19 | 2023-07-21 | 之江实验室 | 一种任务执行的方法、装置、存储介质及电子设备 |
CN116501502A (zh) * | 2023-06-25 | 2023-07-28 | 电子科技大学 | 一种基于Pytorch框架的数据并行优化方法 |
CN117114091A (zh) * | 2023-10-25 | 2023-11-24 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309479B (zh) * | 2020-02-14 | 2023-06-06 | 北京百度网讯科技有限公司 | 一种任务并行处理的实现方法、装置、设备和介质 |
US11941437B2 (en) * | 2021-06-25 | 2024-03-26 | Intel Corporation | Graph partitioning to exploit batch-level parallelism |
CN114091688B (zh) * | 2021-11-25 | 2022-05-20 | 北京九章云极科技有限公司 | 一种计算资源获取方法、装置、电子设备和存储介质 |
WO2023096701A2 (en) * | 2021-11-29 | 2023-06-01 | University Of Southern California | Scheduling distributed computing based on computational and network architecture |
CN117271100B (zh) * | 2023-11-21 | 2024-02-06 | 北京国科天迅科技股份有限公司 | 算法芯片集群调度方法、装置、计算机设备和存储介质 |
CN117437451B (zh) * | 2023-12-21 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | 图像匹配方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777064A (zh) * | 2009-01-12 | 2010-07-14 | 鸿富锦精密工业(深圳)有限公司 | 图片搜索系统及方法 |
US20140101669A1 (en) * | 2012-10-05 | 2014-04-10 | Electronics And Telecommunications Research Institute | Apparatus and method for processing task |
CN107885762A (zh) * | 2017-09-19 | 2018-04-06 | 北京百度网讯科技有限公司 | 智能大数据系统、提供智能大数据服务的方法和设备 |
CN108292374A (zh) * | 2015-11-09 | 2018-07-17 | 谷歌有限责任公司 | 训练表示为计算图的神经网络 |
CN110018817A (zh) * | 2018-01-05 | 2019-07-16 | 中兴通讯股份有限公司 | 数据的分布式运行方法及装置、存储介质及处理器 |
CN110365799A (zh) * | 2019-08-16 | 2019-10-22 | 广东浪潮大数据研究有限公司 | 一种集群多节点调度方法、装置和计算机可读存储介质 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN110503195A (zh) * | 2019-08-14 | 2019-11-26 | 北京中科寒武纪科技有限公司 | 利用人工智能处理器执行任务的方法及其相关产品 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7110525B1 (en) * | 2001-06-25 | 2006-09-19 | Toby Heller | Agent training sensitive call routing system |
US8813141B2 (en) * | 2007-08-08 | 2014-08-19 | At&T Intellectual Properties I, L.P. | System and method of providing video content |
US8266289B2 (en) * | 2009-04-23 | 2012-09-11 | Microsoft Corporation | Concurrent data processing in a distributed system |
CN102043673B (zh) * | 2009-10-21 | 2015-06-03 | Sap欧洲公司 | 并行处理中执行任务的节点数量的优化选择系统及方法 |
RU2646323C2 (ru) * | 2014-02-27 | 2018-03-02 | Интел Корпорейшн | Технологии для выделения конфигурируемых вычислительных ресурсов |
KR102433254B1 (ko) | 2015-10-28 | 2022-08-18 | 구글 엘엘씨 | 계산 그래프들 프로세싱 |
US10877816B2 (en) | 2016-04-20 | 2020-12-29 | Samsung Electronics Co., Ltd. | Optimal task scheduler |
US10656970B2 (en) * | 2016-09-28 | 2020-05-19 | Futurewei Technologies, Inc. | Scheduling graph computing on heterogeneous processing resources based on energy efficiency |
US10776121B2 (en) * | 2017-05-10 | 2020-09-15 | Atlantic Technical Organization | System and method of execution map generation for schedule optimization of machine learning flows |
KR20190054449A (ko) * | 2017-11-13 | 2019-05-22 | 한국과학기술원 | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 |
CN109993299B (zh) * | 2017-12-29 | 2024-02-27 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
US11373088B2 (en) * | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
US10942767B2 (en) * | 2018-02-27 | 2021-03-09 | Microsoft Technology Licensing, Llc | Deep neural network workload scheduling |
US20200301898A1 (en) * | 2018-06-25 | 2020-09-24 | BigStream Solutions, Inc. | Systems and methods for accelerating data operations by utilizing dataflow subgraph templates |
US20200050971A1 (en) * | 2018-08-08 | 2020-02-13 | International Business Machines Corporation | Minibatch Parallel Machine Learning System Design |
US20200082273A1 (en) * | 2018-09-11 | 2020-03-12 | Apple Inc. | Compiling models for dedicated hardware |
US10754709B2 (en) * | 2018-09-26 | 2020-08-25 | Ciena Corporation | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis |
US20200184366A1 (en) * | 2018-12-06 | 2020-06-11 | Fujitsu Limited | Scheduling task graph operations |
CN111324445B (zh) * | 2018-12-14 | 2024-04-02 | 中国科学院深圳先进技术研究院 | 一种任务调度模拟系统 |
US10949259B2 (en) * | 2018-12-28 | 2021-03-16 | Atlantic Technical Organization | System and method of scheduling and computing resource allocation optimization of machine learning flows |
CN111522640A (zh) | 2018-12-28 | 2020-08-11 | 第四范式(北京)技术有限公司 | 计算图的并行执行方法和设备 |
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
CN111859027A (zh) * | 2019-04-24 | 2020-10-30 | 华为技术有限公司 | 图计算方法及装置 |
US11556756B2 (en) * | 2019-04-25 | 2023-01-17 | Alibaba Group Holding Limited | Computation graph mapping in heterogeneous computer system |
US11593540B1 (en) * | 2019-05-31 | 2023-02-28 | The Mathworks, Inc. | Systems and methods for performing concurrency analysis in simulation environments |
CN111309479B (zh) * | 2020-02-14 | 2023-06-06 | 北京百度网讯科技有限公司 | 一种任务并行处理的实现方法、装置、设备和介质 |
-
2020
- 2020-02-14 CN CN202010093670.8A patent/CN111309479B/zh active Active
- 2020-10-21 EP EP20202929.4A patent/EP3866008A1/en active Pending
- 2020-10-21 US US17/076,346 patent/US11954522B2/en active Active
- 2020-12-18 KR KR1020200178497A patent/KR102482122B1/ko active IP Right Grant
- 2020-12-25 JP JP2020217476A patent/JP7094352B2/ja active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777064A (zh) * | 2009-01-12 | 2010-07-14 | 鸿富锦精密工业(深圳)有限公司 | 图片搜索系统及方法 |
US20140101669A1 (en) * | 2012-10-05 | 2014-04-10 | Electronics And Telecommunications Research Institute | Apparatus and method for processing task |
CN108292374A (zh) * | 2015-11-09 | 2018-07-17 | 谷歌有限责任公司 | 训练表示为计算图的神经网络 |
CN107885762A (zh) * | 2017-09-19 | 2018-04-06 | 北京百度网讯科技有限公司 | 智能大数据系统、提供智能大数据服务的方法和设备 |
CN110018817A (zh) * | 2018-01-05 | 2019-07-16 | 中兴通讯股份有限公司 | 数据的分布式运行方法及装置、存储介质及处理器 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110503195A (zh) * | 2019-08-14 | 2019-11-26 | 北京中科寒武纪科技有限公司 | 利用人工智能处理器执行任务的方法及其相关产品 |
CN110365799A (zh) * | 2019-08-16 | 2019-10-22 | 广东浪潮大数据研究有限公司 | 一种集群多节点调度方法、装置和计算机可读存储介质 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
SHANG MINGSHENG ET AL.: "An efficient parallel scheduling algorithm of dependent task graphs", 《PROCEEDINGS OF THE FOURTH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING, APPLICATIONS AND TECHNOLOGIES》 * |
江德: "并行计算系统中任务分配问题算法研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
阮江涛: "基于Hadoop的作业调度算法研究与改进", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475684A (zh) * | 2020-06-29 | 2020-07-31 | 北京一流科技有限公司 | 数据处理网络系统及其计算图生成方法 |
CN111783952A (zh) * | 2020-06-30 | 2020-10-16 | 北京百度网讯科技有限公司 | 配置方法、装置、系统、电子设备以及存储介质 |
CN111783952B (zh) * | 2020-06-30 | 2023-07-14 | 北京百度网讯科技有限公司 | 配置方法、装置、系统、电子设备以及存储介质 |
CN111899149A (zh) * | 2020-07-09 | 2020-11-06 | 浙江大华技术股份有限公司 | 基于算子融合的图像处理方法和装置、存储介质 |
CN111953614A (zh) * | 2020-08-07 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、处理设备及介质 |
CN111953614B (zh) * | 2020-08-07 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、处理设备及介质 |
CN112948079A (zh) * | 2021-02-18 | 2021-06-11 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN112948079B (zh) * | 2021-02-18 | 2022-06-28 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备和计算机存储介质 |
CN113449142A (zh) * | 2021-06-30 | 2021-09-28 | 北京百度网讯科技有限公司 | 信息处理方法及装置、电子设备、存储介质及产品 |
CN113535400A (zh) * | 2021-07-19 | 2021-10-22 | 闻泰通讯股份有限公司 | 并行计算资源分配方法与装置、存储介质、终端设备 |
WO2023000443A1 (zh) * | 2021-07-19 | 2023-01-26 | 闻泰通讯股份有限公司 | 并行计算资源分配方法与装置、存储介质、终端设备 |
WO2023071149A1 (zh) * | 2021-10-27 | 2023-05-04 | 上海商汤智能科技有限公司 | 一种显存优化方法、装置、设备、存储介质及程序产品 |
CN114048030A (zh) * | 2021-11-09 | 2022-02-15 | 北京百度网讯科技有限公司 | 调度算子的方法和装置 |
CN114048030B (zh) * | 2021-11-09 | 2022-07-26 | 北京百度网讯科技有限公司 | 调度算子的方法和装置 |
CN114819084A (zh) * | 2022-04-26 | 2022-07-29 | 北京百度网讯科技有限公司 | 模型推理方法、装置、设备及存储介质 |
CN114819084B (zh) * | 2022-04-26 | 2024-03-01 | 北京百度网讯科技有限公司 | 模型推理方法、装置、设备及存储介质 |
CN114996008A (zh) * | 2022-05-30 | 2022-09-02 | 上海壁仞智能科技有限公司 | Ai计算图多后端协同计算方法及装置 |
CN114996008B (zh) * | 2022-05-30 | 2024-05-03 | 上海壁仞科技股份有限公司 | Ai计算图多后端协同计算方法及装置 |
CN115269016A (zh) * | 2022-09-27 | 2022-11-01 | 之江实验室 | 一种用于图计算的指令执行方法及装置 |
WO2024065869A1 (zh) * | 2022-09-27 | 2024-04-04 | 之江实验室 | 一种用于图计算的指令执行方法及装置 |
CN116467061B (zh) * | 2023-06-19 | 2023-09-19 | 之江实验室 | 一种任务执行的方法、装置、存储介质及电子设备 |
CN116467061A (zh) * | 2023-06-19 | 2023-07-21 | 之江实验室 | 一种任务执行的方法、装置、存储介质及电子设备 |
CN116501502B (zh) * | 2023-06-25 | 2023-09-05 | 电子科技大学 | 一种基于Pytorch框架的数据并行优化方法 |
CN116501502A (zh) * | 2023-06-25 | 2023-07-28 | 电子科技大学 | 一种基于Pytorch框架的数据并行优化方法 |
CN117114091A (zh) * | 2023-10-25 | 2023-11-24 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
CN117114091B (zh) * | 2023-10-25 | 2024-03-05 | 深圳开鸿数字产业发展有限公司 | 基于联邦学习的计算图处理方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102482122B1 (ko) | 2022-12-27 |
CN111309479B (zh) | 2023-06-06 |
JP2021128757A (ja) | 2021-09-02 |
EP3866008A1 (en) | 2021-08-18 |
US11954522B2 (en) | 2024-04-09 |
KR20210103928A (ko) | 2021-08-24 |
US20210255896A1 (en) | 2021-08-19 |
JP7094352B2 (ja) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309479A (zh) | 一种任务并行处理的实现方法、装置、设备和介质 | |
Jiang et al. | Mainstream: Dynamic {Stem-Sharing} for {Multi-Tenant} Video Processing | |
Junaid et al. | A hybrid model for load balancing in cloud using file type formatting | |
CN111539479B (zh) | 生成样本数据的方法和装置 | |
CN111209977A (zh) | 分类模型的训练和使用方法、装置、设备和介质 | |
CN112765477B (zh) | 信息处理、信息推荐的方法和装置、电子设备和存储介质 | |
CN112559870B (zh) | 多模型融合方法、装置、电子设备和存储介质 | |
US20180285108A1 (en) | Branch prediction using a perceptron-based branch prediction technique | |
CN115759252A (zh) | 深度学习推理引擎的调度方法、装置、设备和介质 | |
Mostafavi et al. | A stochastic approximation approach for foresighted task scheduling in cloud computing | |
CN111639753A (zh) | 用于训练超网络的方法、装置、设备以及存储介质 | |
CN111652354B (zh) | 用于训练超网络的方法、装置、设备以及存储介质 | |
Kanoun et al. | Big-data streaming applications scheduling based on staged multi-armed bandits | |
CN110706147A (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
CN113627867A (zh) | 一种人才需求预测方法、装置、设备和存储介质 | |
CN115827944B (zh) | 基于互联网平台系统优化的大数据分析方法及服务器 | |
CN112580723A (zh) | 多模型融合方法、装置、电子设备和存储介质 | |
CN117032938A (zh) | 一种算子的并行调度方法、装置、电子设备及存储介质 | |
Runsewe et al. | Cloud resource scaling for time-bounded and unbounded big data streaming applications | |
CN111966767A (zh) | 轨迹热力图生成方法、装置、电子设备和存储介质 | |
Zhou et al. | Cushion: A proactive resource provisioning method to mitigate SLO violations for containerized microservices | |
CN111563202B (zh) | 资源数据处理方法、装置、电子设备和介质 | |
CN111340222B (zh) | 神经网络模型搜索方法、装置以及电子设备 | |
CN114037060A (zh) | 预训练模型的生成方法、装置、电子设备以及存储介质 | |
CN112734454A (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 |