CN116225669B - 一种任务执行方法、装置、存储介质及电子设备 - Google Patents
一种任务执行方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116225669B CN116225669B CN202310509060.5A CN202310509060A CN116225669B CN 116225669 B CN116225669 B CN 116225669B CN 202310509060 A CN202310509060 A CN 202310509060A CN 116225669 B CN116225669 B CN 116225669B
- Authority
- CN
- China
- Prior art keywords
- operator
- node
- target
- combination
- determining
- 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 67
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 43
- 238000010586 diagram Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书公开了一种任务执行方法、装置、存储介质及电子设备,可以预先确定出所有可以并行执行的算子组合,进而可以在响应于用户发起的任务请求进行任务执行时,确定需要执行该任务对应的各可执行算子与正在执行其他任务的芯片正在执行的其他任务的算子是否有匹配的可以并行执行的算子组合,若有,则可以通过正在执行其他任务的芯片并行执行该任务请求对应的任务,从而可以提升芯片的计算资源的利用率。
Description
技术领域
本说明书涉及人工智能技术领域,尤其涉及一种任务执行方法、装置、存储介质及电子设备。
背景技术
目前,各类人工智能模型在诸如:自动驾驶、增强现实等领域中具有广泛的应用,而业务平台在通过人工智能模型进行任务执行时,通常会从人工智能模型包含的各算子中,确定出执行任务所需的各算子,并通过芯片运行这些算子以进行任务执行。
在芯片运行这些算子的过程中,没有充分利用芯片的全部计算资源,而只是占用了芯片的部分计算资源,从而会导致芯片的计算资源的浪费,并降低了芯片的计算资源的利用率。
因此,如何能够提升芯片的计算资源的利用率,则是一个亟待解决的问题。
发明内容
本说明书提供一种任务执行方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种任务执行方法,包括:
获取任务请求;
确定执行所述任务请求所需的算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行;
针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件;
若是,则确定所述芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子;
以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,具体包括:
从预先确定的各可并行算子组合中筛选出包含有所述第二目标算子的可并行算子组合,作为候选算子组合;
针对每个候选算子组合,确定该可并行算子组合中包含所述第一目标算子的数量,若所述数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合;
并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,确定可行性算子组合,具体包括:
获取各目标模型;
针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系;
根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合。
可选地,根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合,具体包括:
根据所述数据传输依赖关系,确定所述各目标模型对应的数据流图,在所述数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征所述两个节点之间存在数据传输依赖关系;
根据所述数据流图,确定各可并行算子组合。
可选地,根据所述数据流图,确定各可并行算子组合,具体包括:
针对所述数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合;其中
针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定所述数据流图包含的除所述目标节点之外的其他节点或除所述目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于所述目标节点或依赖于所述目标节点组合中的各节点中的任意一个节点,若否,则根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点;
在确定满足预设的终止条件后,得到各可并行算子组合。
可选地,根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,具体包括:
将该其他节点和所述目标节点对应的算子的组合或该其他节点和所述目标节点组合对应的算子的组合,作为候选算子组合,并确定所述候选算子组合在所述芯片中的运行时间;
判断所述候选算子组合在所述芯片中的运行时间是否超过预设阈值;
若否,则确定该候选算子组合为可并行算子组合。
可选地,从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点之前,所述方法还包括:
针对所述数据流图中包含的每个节点,确定该节点对应的算子在所述芯片中的运行时间;
判断该节点对应的算子在所述芯片中的运行时间是否超过预设阈值;
若否,则将该节点添加到预设的候选节点集中;
从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点,具体包括:
从所述候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
可选地,确定所述候选算子组合在所述芯片中的运行时间,具体包括:
获取所述候选算子组合的相关特征,所述相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种;
将所述相关特征输入到预设的预测模型中,通过所述预测模型,得到预测出的所述候选算子组合在所述芯片中的运行时间。
可选地,所述可并行算子组合是在所述芯片处于离线状态时确定的。
本说明书提供了一种任务执行装置,包括:
获取模块,用于获取任务请求;
第一确定模块,用于确定执行所述任务请求所需的算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行;
检测模块,用于针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件;
第二确定模块,用于若是,则确定所述芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子;
执行模块,用于以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,所述执行模块具体用于,从预先确定的各可并行算子组合中筛选出包含有所述第二目标算子的可并行算子组合,作为候选算子组合;针对每个候选算子组合,确定该可并行算子组合中包含所述第一目标算子的数量,若所述数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合;并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,所述装置还包括:第三确定模块;
所述第三确定模块具体用于,获取各目标模型;针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系;根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合。
可选地,所述第三确定模块具体用于,根据所述数据传输依赖关系,确定所述各目标模型对应的数据流图,在所述数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征所述两个节点之间存在数据传输依赖关系;根据所述数据流图,确定各可并行算子组合。
可选地,所述第三确定模块具体用于,针对所述数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合;其中针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定所述数据流图包含的除所述目标节点之外的其他节点或除所述目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于所述目标节点或依赖于所述目标节点组合中的各节点中的任意一个节点,若否,则根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点;在确定满足预设的终止条件后,得到各可并行算子组合。
可选地,所述第三确定模块具体用于,将该其他节点和所述目标节点对应的算子的组合或该其他节点和所述目标节点组合对应的算子的组合,作为候选算子组合,并确定所述候选算子组合在所述芯片中的运行时间;判断所述候选算子组合在所述芯片中的运行时间是否超过预设阈值;若否,则确定该候选算子组合为可并行算子组合。
可选地,所述第三确定模块具体用于,针对所述数据流图中包含的每个节点,确定该节点对应的算子在所述芯片中的运行时间;判断该节点对应的算子在所述芯片中的运行时间是否超过预设阈值;若否,则将该节点添加到预设的候选节点集中;从所述候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
可选地,所述第三确定模块具体用于,获取所述候选算子组合的相关特征,所述相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种;将所述相关特征输入到预设的预测模型中,通过所述预测模型,得到预测出的所述候选算子组合在所述芯片中的运行时间。
可选地,所述可并行算子组合是在所述芯片处于离线状态时确定的。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的任务执行方法,首先获取任务请求,确定执行任务请求所需的算子组合,并确定算子组合包含的各算子中的可执行算子,作为各第一目标算子,其中,可执行算子不需要依赖其他算子的运行结果,由芯片直接运行,针对正在执行其他任务请求对应的任务的芯片,判断芯片剩余的计算资源是否满足预设条件,若是,则确定芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子,以不影响芯片为各第二目标算子分配的计算资源为基础,为各第一目标算子分配芯片至少部分剩余计算资源,并行运行各第一目标算子,以执行任务请求对应的任务。
从上述方法中可以看出,可以在执行任务请求对应的任务时,判断当前正在执行其他任务请求对应的任务的芯片是否还存在空闲计算资源,若存在,则可以通过该芯片并行运行该任务请求对应的任务,从而可以提升芯片的计算资源的利用率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种任务执行方法的示意图;
图2为本说明书中提供的数据流图的示意图;
图3为本说明书提供的确定可行性算子组合的过程示意图;
图4为本说明书中提供的一种任务执行装置的示意图;
图5为本说明书提供的一种对应于图1的电子设备的示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
本说明书中提供了一种任务执行方法,如图1所示:
图1为本说明书中提供的一种任务执行方法的示意图,包括以下步骤:
S101:获取任务请求。
在本说明书中,用户可以通过部署在业务平台中的各人工智能模型执行相应的任务,而在此之前,需要用户通过用户所使用的设备向业务平台发送任务请求,以使业务平台在获取到该任务请求后,可以响应于接收到的任务请求,调度芯片的计算资源来执行该任务请求对应的任务。
例如:用户可以通过用户所使用的设备向业务平台发送商品推荐请求,业务平台正在接收到商品推荐请求后,可以调用芯片运行商品推荐模型的各算子,以进行商品推荐任务的执行。
在本说明书中,用于实现任务执行方法的执行主体,可以是指服务器等设置于业务平台的指定设备,也可以是指诸如台式电脑、笔记本电脑等终端设备,为了便于描述,下面仅以服务器是执行主体为例,对本说明书提供的任务执行方法进行说明。
S102:确定执行所述任务请求所需的算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行。
进一步地,服务器可以确定执行任务请求所需的算子组合,并确定算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子。这里的可执行算子不需要依赖其他算子的运行结果,由芯片直接运行。
具体地,当服务器需要执行某个任务时,需要确定用于执行该任务的模型,从而可以从用于执行该任务的模型包含的各算子中,确定出用于执行该任务所需的各算子,作为一个算子组合,进而可以通过芯片运行该算子组合中包含的各算子,从而实现任务执行。
需要说明的是,上述内容中服务器确定出的用于执行该任务的模型可以为多个,例如:执行A任务需要运行模型一的a算子和b算子,以及需要运行模型二的c算子和d算子。
在实际应用场景中,服务器也可以通过多个芯片来运行各可执行算子,因此,服务器可以确定算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,例如:假设可执行算子包括a算子、b算子、c算子和d算子,服务器可以通过芯片一来并行运行a算子、通过芯片二来运行b算子、通过芯片三来运行c算子和d算子。
进一步地,在算子组合中,各算子之间存在一定的数据传输依赖关系,即存在部分算子在运行时需要使用其他算子的数据处理结果作为这部分算子运行的参数。因此,若这部分算子所依赖的算子未执行,则这部分算子确定运行所需的参数,从而无法直接运行。所以,服务器在确定响应用户发出的任务请求所需要运行的算子组合后,可以从算子组合包含的各算子中,确定可以由芯片直接运行的算子,作为第一目标算子。从而可以通过芯片运行第一目标算子,进而可以使得算子组合中的其他算子依赖于第一算子的运行结果,继续通过芯片运行。
另外,当服务器通过芯片运行完第一目标算子后,上述的算子组合的一部分算子在获取到第一目标算子的执行结果后,将成为可以由芯片直接执行的算子,此时,服务器可以重新从算子组合中包含的各算子中重新确定出新的可以直接由芯片运行的算子,作为第一目标算子。
S103:针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件。
S104:若是,则获取所述芯片当前运行的其他任务请求对应的可执行算子作为第二目标算子。
服务器在确定出当前需要通过芯片运行的第一目标算子后,可以针对正在执行其他任务请求对应的任务的芯片,判断芯片剩余的计算资源是否满足预设条件,若是,则可以通过该芯片在运行该芯片正在执行的其他任务请求对应的任务的基础上,并行运行第一目标算子。若否,则可以为该任务请求分配一个处于空闲状态的芯片,以运行该任务请求的第一目标算子,或者,若当前不存在处于空闲状态的芯片,则可以使得该任务请求处于等待状态。
其中,上述的预设条件可以根据实际需要设定,例如:判断芯片剩余的计算资源是否达到指定条件阈值等。
S105:以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
进一步地,服务器可以以不影响芯片为各第二目标算子分配的计算资源为基础,为各第一目标算子分配该芯片至少部分剩余计算资源,并行运行各第一目标算子,以执行任务请求对应的任务。
具体地,服务器可以从预先确定的各可并行算子组合中筛选出包含有第二目标算子的可并行算子组合,作为候选算子组合,针对每个候选算子组合,确定该可并行算子组合中包含第一目标算子的数量,若确定出的数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合,并行运行各第一目标算子,以执行任务请求对应的任务。
在实际应用场景中,当服务器需要通过正在执行其他任务请求对应的任务的芯片,并行执行该任务请求时,需要预测执行该任务请求所需要运行的第一目标算子,和芯片当前正在运行的其他任务请求对应的任务的第二目标算子之间是否可以并行运行,而上述的预测的过程,会导致任务请求的响应延时增加。
基于此,服务器可以在离线状态下,预先确定出所有的可以并行执行的各算子,作为可并行算子组合,进而可以在实际应用中,直接从各可并行算子组合筛选出匹配的可并行算子组合来使芯片并行运行。
其中,服务器确定各可并行算子组合的方法可以是,获取各目标模型,针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系,根据数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合,具体如图2所示。
图2为本说明书中提供的数据流图的示意图。
从图2中可以看出,服务器可以根据确定出的数据传输依赖关系,确定各目标模型对应的数据流图,在数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征这两个节点之间存在数据传输依赖关系,其中,当一个节点A和一个节点B之间存在一条从节点A指向节点B的边时,则说明节点B依赖于节点A。
进一步地,服务器可以针对数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合。
其中,服务器可以针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定数据流图包含的除目标节点之外的其他节点或除目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于目标节点或依赖于目标节点组合中的各节点中的任意一个节点。
若否,则根据该其他节点和目标节点或该其他节点和目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从数据流图包含的各节点中依次选取出下一轮迭代中的目标节点。
需要说的是,服务器针对每个其他节点,判断该其他节点是否依赖于目标节点或依赖于目标节点组合中的各节点中的任意一个节点的方法可以是,服务器可以判断在数据流图中目标节点或目标节点组合中的各节点中的任意一个节点是否为该其他节点的父亲节点或祖先节点,若是,则可以确定该其他节点是否依赖于目标节点或依赖于目标节点组合中的各节点中的节点。
其中,在数据流图中若在一个节点与另一个节点之间存在一个节点指向另一节点的边,则这个节点即为父亲节点,被指向的节点即为儿子节点,一个节点的父亲节点的父亲节点,以及这个节点的祖先节点的祖先节点即为这个节点的祖先节点。
进一步地,服务器可以在确定满足预设的终止条件后,得到各可并行算子组合,上述的满足预设的终止条件可以为将数据流图中包含的所有节点均作为目标节点,并且所有的可并行算子组合均作为目标节点组合后,则可以认为满足预设的终止条件。当然,上述的满足预设的终止条件还可以为当迭代的轮数达到指定轮数时,则认为满足预设的终止条件。
其中,服务器根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合的方法可以是,服务器将该其他节点和目标节点对应的算子的组合或该其他节点和目标节点组合对应的算子的组合,作为候选算子组合,并确定候选算子组合在芯片中的运行时间,判断候选算子组合在芯片中的运行时间是否超过预设的第二阈值,若否,则确定该候选算子组合为可并行算子组合。
从上述内容中可以看出,服务器还可以预测各候选算子组合在芯片中的运行时间,并根据预测出的各候选算子组合在芯片中的运行时间,来对各候选算子组合进行进一步地的筛选。
当然,在实际应用场景中,可能存在部分算子在芯片中的运行时间较长,因此,无法与其他算子一起作为可并行算子组合,因此,服务器还可以在确定各可并行算子组合之前,针对数据流图中包含的每个节点,确定该节点对应的算子在芯片中的运行时间,判断该节点对应的算子在芯片中的运行时间是否超过预设的第二阈值,若否,则将该节点添加到预设的候选节点集中。进而可以在确定可并行算子组合的多轮迭代中时,可以从候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
上述内容中,服务器确定各节点对应的算子或各候选算子组合在芯片中的运行时间的方法可以为,获取算子或候选算子组合的相关特征,将相关特征输入到预设的预测模型中,通过预测模型,得到预测出的算子或候选算子组合在芯片中的运行时间,这里的相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量或算子所使用的芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种。
其中,上述预测模型的训练方法可以为,将样本算子或样本算子组合输入到预测模型中,通过预测模型,得到预测出的样本算子或样本算子组合在芯片中的运行时间,以最小化预测模型输出的样本算子或样本算子组合在芯片中的运行时间和离线模拟出的样本算子或样本算子组合的实际运行时间之间的偏差,对预测模型进行训练。
为了对上述服务器确定可并行算子的方法进行详细说明,本说明书还提供了服务器确定可并行算子组合的过程的示意图,具体如图3所示。
图3为本说明书中提供的确定可并行算子组合的过程示意图。
结合图3可以看出,服务器可以为数据流图中的每一个节点对应的算子进行编码,其中,编码的方法可以为针对数据流图中的每个节点对应的算子,按照从0到N的升序,依次进行编码。
进一步地,服务器可以预测每一个节点对应的算子在芯片上的运行时间为/>,当小于预设的第二阈值的时候,把节点/>的编码分别添加到集合1和集合2中,同时添加到结果集合/>中。
在每轮迭代的过程中,服务器可以判断集合1是否为空,当集合1不为空的时候,服务器可以选取集合1中的一个节点的编码,并将该节点的编码/>从集合1中删除,进而可以将集合2中的每个节点的编码对应的节点的算子与编码/>对应的节点的算子进行组合,得到算子组合/>,判断算子组合/>中的算子之间是否存在数据依赖关系,若存在则丢弃,若不存在,则预测算子组合/>在一个芯片中的运行时间,如果超过了第二阈值,则丢弃,否则,就把算子组合/>添加到集合1中,同时添加结果集合/>中,重复上述过程,直到集合1为空,此时结果集合R中的各结果,即为各可并行算子组合。
从上述内容中可以看出,服务器不仅可以预先确定出所有可以并行执行的算子组合,进而可以在响应于用户发起的任务请求进行任务执行时,确定需要执行该任务对应的各可执行算子与正在执行其他任务的芯片正在执行的其他任务的算子是否有匹配的可以并行执行的算子组合,若有,则可以通过正在执行其他任务的芯片并行执行该任务请求对应的任务,从而可以提升芯片的计算资源的利用率。
以上为本说明书的一个或多个实施例提供的模型训练的方法,基于同样的思路,本说明书还提供了相应的任务执行装置,如图4所示。
图4为本说明书提供的一种任务执行装置的示意图,包括:
获取模块401,用于获取任务请求;
第一确定模块402,用于确定执行所述任务请求所需的算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行;
检测模块403,用于针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件;
第二确定模块404,用于若是,则确定所述芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子;
执行模块405,用于以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,所述执行模块405具体用于,从预先确定的各可并行算子组合中筛选出包含有所述第二目标算子的可并行算子组合,作为候选算子组合;针对每个候选算子组合,确定该可并行算子组合中包含所述第一目标算子的数量,若所述数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合;并行运行所述各第一目标算子,以执行所述任务请求对应的任务。
可选地,所述装置还包括:第三确定模块406;
所述第三确定模块406具体用于,获取各目标模型;针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系;根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合。
可选地,所述第三确定模块406具体用于,根据所述数据传输依赖关系,确定所述各目标模型对应的数据流图,在所述数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征所述两个节点之间存在数据传输依赖关系;根据所述数据流图,确定各可并行算子组合。
可选地,所述第三确定模块406具体用于,针对所述数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合;其中针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定所述数据流图包含的除所述目标节点之外的其他节点或除所述目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于所述目标节点或依赖于所述目标节点组合中的各节点中的任意一个节点,若否,则根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点;在确定满足预设的终止条件后,得到各可并行算子组合。
可选地,所述第三确定模块406具体用于,将该其他节点和所述目标节点对应的算子的组合或该其他节点和所述目标节点组合对应的算子的组合,作为候选算子组合,并确定所述候选算子组合在所述芯片中的运行时间;判断所述候选算子组合在所述芯片中的运行时间是否超过预设阈值;若否,则确定该候选算子组合为可并行算子组合。
可选地,所述第三确定模块406具体用于,针对所述数据流图中包含的每个节点,确定该节点对应的算子在所述芯片中的运行时间;判断该节点对应的算子在所述芯片中的运行时间是否超过预设阈值;若否,则将该节点添加到预设的候选节点集中;从所述候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
可选地,所述第三确定模块406具体用于,获取所述候选算子组合的相关特征,所述相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种;将所述相关特征输入到预设的预测模型中,通过所述预测模型,得到预测出的所述候选算子组合在所述芯片中的运行时间。
可选地,所述可并行算子组合是在所述芯片处于离线状态时确定的。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种的方法。
本说明书还提供了图5所示的一种对应于图1的电子设备的示意结构图。如图5所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1的方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程图数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程图数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程图数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程图数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (16)
1.一种任务执行方法,其特征在于,所述任务执行方法用于芯片算力调度,包括:
获取任务请求;
确定执行所述任务请求的多个模型,根据所述多个模型包含的算子,确定算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行;
针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件;
若是,则确定所述芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子;
以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务;
其中,以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,具体包括:在所述芯片处于离线状态时,从预先确定的各可并行算子组合中筛选出包含有所述第二目标算子的可并行算子组合,作为候选算子组合;针对每个候选算子组合,确定该可并行算子组合中包含所述第一目标算子的数量,若所述数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合;
在确定可并行算子组合时,针对每个算子,判断该算子在所述芯片中的运行时间是否超过预设的第二阈值,若是,则不选用,若否,则用于确定可并行算子组合。
2.如权利要求1所述的方法,其特征在于,确定可行性算子组合,具体包括:
获取各目标模型;
针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系;
根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合。
3.如权利要求2所述的方法,其特征在于,根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合,具体包括:
根据所述数据传输依赖关系,确定所述各目标模型对应的数据流图,在所述数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征所述两个节点之间存在数据传输依赖关系;
根据所述数据流图,确定各可并行算子组合。
4.如权利要求3所述的方法,其特征在于,根据所述数据流图,确定各可并行算子组合,具体包括:
针对所述数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合;其中
针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定所述数据流图包含的除所述目标节点之外的其他节点或除所述目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于所述目标节点或依赖于所述目标节点组合中的各节点中的任意一个节点,若否,则根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点;
在确定满足预设的终止条件后,得到各可并行算子组合。
5.如权利要求4所述的方法,其特征在于,根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,具体包括:
将该其他节点和所述目标节点对应的算子的组合或该其他节点和所述目标节点组合对应的算子的组合,作为候选算子组合,并确定所述候选算子组合在所述芯片中的运行时间;
判断所述候选算子组合在所述芯片中的运行时间是否超过预设的第二阈值;
若否,则确定该候选算子组合为可并行算子组合。
6.如权利要求4所述的方法,其特征在于,针对每个算子,判断该算子在所述芯片中的运行时间是否超过预设的第二阈值,若否,则用于确定可并行算子组合,具体包括:
针对所述数据流图中包含的每个节点,确定该节点对应的算子在所述芯片中的运行时间;
判断该节点对应的算子在所述芯片中的运行时间是否超过预设的第二阈值;
若否,则将该节点添加到预设的候选节点集中;
从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点,具体包括:
从所述候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
7.如权利要求5所述的方法,其特征在于,确定所述候选算子组合在所述芯片中的运行时间,具体包括:
获取所述候选算子组合的相关特征,所述相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种;
将所述相关特征输入到预设的预测模型中,通过所述预测模型,得到预测出的所述候选算子组合在所述芯片中的运行时间。
8.一种任务执行装置,其特征在于,所述任务执行装置用于芯片算力调度包括:
获取模块,用于获取任务请求;
第一确定模块,用于确定执行所述任务请求的多个模型,根据所述多个模型包含的算子,确定所需的算子组合,并确定所述算子组合包含的各算子中的至少部分可执行算子,作为各第一目标算子,所述可执行算子不需要依赖其他算子的运行结果,由芯片直接运行;
检测模块,用于针对正在执行其他任务请求对应的任务的芯片,判断所述芯片剩余的计算资源是否满足预设条件;
第二确定模块,用于若是,则确定所述芯片当前运行的其他任务请求对应的可执行算子,作为各第二目标算子;
执行模块,用于以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,并行运行所述各第一目标算子,以执行所述任务请求对应的任务;
其中,以不影响所述芯片为所述各第二目标算子分配的计算资源为基础,为所述各第一目标算子分配所述芯片至少部分剩余计算资源,具体包括:在所述芯片处于离线状态时,从预先确定的各可并行算子组合中筛选出包含有所述第二目标算子的可并行算子组合,作为候选算子组合;针对每个候选算子组合,确定该可并行算子组合中包含所述第一目标算子的数量,若所述数量超过预设的第一阈值,则确定该可并行算子组合,作为目标算子组合;
在确定可并行算子组合时,针对每个算子,判断该算子在所述芯片中的运行时间是否超过预设的第二阈值,若是,则不选用,若否,则用于确定可并行算子组合。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:第三确定模块;
所述第三确定模块具体用于,获取各目标模型;针对每个目标模型,确定该目标模型包含的各算子之间的数据传输依赖关系;根据所述数据传输依赖关系,确定各目标模型包含的各算子中互相之间不存在数据传输依赖关系的各算子,作为可并行算子组合。
10.如权利要求9所述的装置,其特征在于,所述第三确定模块具体用于,根据所述数据传输依赖关系,确定所述各目标模型对应的数据流图,在所述数据流图中,每个节点用于表征各目标模型包含的每个算子,两个节点之间的边用于表征所述两个节点之间存在数据传输依赖关系;根据所述数据流图,确定各可并行算子组合。
11.如权利要求10所述的装置,其特征在于,所述第三确定模块具体用于,针对所述数据流图包含的每个节点,通过多轮迭代,确定该节点对应的可并行算子组合;其中针对每轮迭代,确定该轮迭代中的目标节点或目标节点组合,并确定所述数据流图包含的除所述目标节点之外的其他节点或除所述目标节点组合中的各节点之外的其他节点,针对每个其他节点,判断该其他节点是否依赖于所述目标节点或依赖于所述目标节点组合中的各节点中的任意一个节点,若否,则根据该其他节点和所述目标节点或该其他节点和所述目标节点组合,确定可并行算子组合,并将确定出的可并行算子组合对应的节点组合作为下一轮迭代中的目标节点组合,或从所述数据流图包含的各节点中依次选取出下一轮迭代中的目标节点;在确定满足预设的终止条件后,得到各可并行算子组合。
12.如权利要求11所述的装置,其特征在于,所述第三确定模块具体用于,将该其他节点和所述目标节点对应的算子的组合或该其他节点和所述目标节点组合对应的算子的组合,作为候选算子组合,并确定所述候选算子组合在所述芯片中的运行时间;判断所述候选算子组合在所述芯片中的运行时间是否超过预设阈值;若否,则确定该候选算子组合为可并行算子组合。
13.如权利要求11所述的装置,其特征在于,所述第三确定模块具体用于,针对所述数据流图中包含的每个节点,确定该节点对应的算子在所述芯片中的运行时间;判断该节点对应的算子在所述芯片中的运行时间是否超过预设阈值;若否,则将该节点添加到预设的候选节点集中;从所述候选节点集中依次选取出一个节点,作为下一轮迭代中的目标节点。
14.如权利要求12所述的装置,其特征在于,所述第三确定模块具体用于,获取所述候选算子组合的相关特征,所述相关特征包括:候选算子组合中包含的每个算子的历史所使用芯片的计算量,历史数据带宽,历史运行时间,候选算子组合中包含的各算子的数据传输大小的平均值、最大值、最小值、方差中的至少一种;将所述相关特征输入到预设的预测模型中,通过所述预测模型,得到预测出的所述候选算子组合在所述芯片中的运行时间。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
16.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310509060.5A CN116225669B (zh) | 2023-05-08 | 2023-05-08 | 一种任务执行方法、装置、存储介质及电子设备 |
PCT/CN2023/101479 WO2024051270A1 (zh) | 2023-05-08 | 2023-06-20 | 任务执行的方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310509060.5A CN116225669B (zh) | 2023-05-08 | 2023-05-08 | 一种任务执行方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116225669A CN116225669A (zh) | 2023-06-06 |
CN116225669B true CN116225669B (zh) | 2024-01-09 |
Family
ID=86579092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310509060.5A Active CN116225669B (zh) | 2023-05-08 | 2023-05-08 | 一种任务执行方法、装置、存储介质及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116225669B (zh) |
WO (1) | WO2024051270A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225669B (zh) * | 2023-05-08 | 2024-01-09 | 之江实验室 | 一种任务执行方法、装置、存储介质及电子设备 |
CN116880995B (zh) * | 2023-09-08 | 2024-01-09 | 之江实验室 | 一种模型任务的执行方法、装置、存储介质及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
CN103838621A (zh) * | 2012-11-27 | 2014-06-04 | 中国电信股份有限公司 | 用于调度例行作业的方法和系统、调度节点 |
CN106095586A (zh) * | 2016-06-23 | 2016-11-09 | 东软集团股份有限公司 | 一种任务分配方法、装置及系统 |
CN107291545A (zh) * | 2017-08-07 | 2017-10-24 | 星环信息科技(上海)有限公司 | 计算集群中多用户的任务调度方法及设备 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN112068957A (zh) * | 2020-08-27 | 2020-12-11 | 北京灵汐科技有限公司 | 资源分配方法、装置、计算机设备及存储介质 |
CN112256420A (zh) * | 2020-10-30 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 任务分配方法、装置及电子设备 |
CN112596898A (zh) * | 2020-12-16 | 2021-04-02 | 北京三快在线科技有限公司 | 一种任务执行器调度的方法及装置 |
CN114138440A (zh) * | 2021-11-30 | 2022-03-04 | 上海阵量智能科技有限公司 | 算子执行设备、算子调度设备、方法、及芯片 |
CN114168302A (zh) * | 2021-12-28 | 2022-03-11 | 中国建设银行股份有限公司 | 任务调度方法、装置、设备及存储介质 |
CN115309562A (zh) * | 2021-05-07 | 2022-11-08 | 北京三快在线科技有限公司 | 算子调用系统、算子生成方法,电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4936517B2 (ja) * | 2006-06-06 | 2012-05-23 | 学校法人早稲田大学 | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
US8887163B2 (en) * | 2010-06-25 | 2014-11-11 | Ebay Inc. | Task scheduling based on dependencies and resources |
CN109189483A (zh) * | 2018-08-02 | 2019-01-11 | 优视科技新加坡有限公司 | 任务执行的调控方法、装置、设备/终端/服务器及存储介质 |
US11704185B2 (en) * | 2020-07-14 | 2023-07-18 | Microsoft Technology Licensing, Llc | Machine learning-based techniques for providing focus to problematic compute resources represented via a dependency graph |
CN112035229A (zh) * | 2020-08-31 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 一种计算图处理方法、装置及存储介质 |
CN112199196B (zh) * | 2020-10-21 | 2022-03-18 | 上海交通大学 | 一种资源配置方法、介质及服务端 |
CN115237582B (zh) * | 2022-09-22 | 2022-12-09 | 摩尔线程智能科技(北京)有限责任公司 | 处理多个任务的方法、处理设备以及异构计算系统 |
CN116225669B (zh) * | 2023-05-08 | 2024-01-09 | 之江实验室 | 一种任务执行方法、装置、存储介质及电子设备 |
-
2023
- 2023-05-08 CN CN202310509060.5A patent/CN116225669B/zh active Active
- 2023-06-20 WO PCT/CN2023/101479 patent/WO2024051270A1/zh unknown
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521056A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 任务分配装置和任务分配方法 |
CN103838621A (zh) * | 2012-11-27 | 2014-06-04 | 中国电信股份有限公司 | 用于调度例行作业的方法和系统、调度节点 |
CN106095586A (zh) * | 2016-06-23 | 2016-11-09 | 东软集团股份有限公司 | 一种任务分配方法、装置及系统 |
CN107291545A (zh) * | 2017-08-07 | 2017-10-24 | 星环信息科技(上海)有限公司 | 计算集群中多用户的任务调度方法及设备 |
CN110554909A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 任务的调度处理方法、装置及计算机设备 |
CN112068957A (zh) * | 2020-08-27 | 2020-12-11 | 北京灵汐科技有限公司 | 资源分配方法、装置、计算机设备及存储介质 |
CN112256420A (zh) * | 2020-10-30 | 2021-01-22 | 重庆紫光华山智安科技有限公司 | 任务分配方法、装置及电子设备 |
CN112596898A (zh) * | 2020-12-16 | 2021-04-02 | 北京三快在线科技有限公司 | 一种任务执行器调度的方法及装置 |
CN115309562A (zh) * | 2021-05-07 | 2022-11-08 | 北京三快在线科技有限公司 | 算子调用系统、算子生成方法,电子设备 |
CN114138440A (zh) * | 2021-11-30 | 2022-03-04 | 上海阵量智能科技有限公司 | 算子执行设备、算子调度设备、方法、及芯片 |
CN114168302A (zh) * | 2021-12-28 | 2022-03-11 | 中国建设银行股份有限公司 | 任务调度方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Critical Block Scheduling: A thread-level parallelizing mechanism for a heterogeneous Chip Multiprocessor architecture;Chu, Slo-Li;《LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING》;全文 * |
云计算资源动态配置策略;蒋维成;李兰英;;电脑知识与技术(第26期);全文 * |
可重构计算的任务在线调度与放置策略研究;陈志;《中国优秀硕士学位论文全文数据库(信息科技辑)》(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116225669A (zh) | 2023-06-06 |
WO2024051270A1 (zh) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116225669B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN108845876B (zh) | 一种业务分配的方法及装置 | |
CN116185532B (zh) | 一种任务执行系统、方法、存储介质及电子设备 | |
CN116167463A (zh) | 一种模型训练的方法、装置、存储介质及电子设备 | |
CN116932175B (zh) | 一种基于序列生成的异构芯片任务调度方法以及装置 | |
CN116347623B (zh) | 一种任务调度的方法、装置、存储介质及电子设备 | |
CN112596898A (zh) | 一种任务执行器调度的方法及装置 | |
CN115964181B (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN116107728B (zh) | 一种任务执行方法、装置、存储介质及电子设备 | |
CN116150563B (zh) | 一种业务执行方法、装置、存储介质及电子设备 | |
CN116737345A (zh) | 分布式任务处理系统及方法、装置、存储介质以及设备 | |
CN116304212A (zh) | 一种数据处理系统、方法、设备及存储介质 | |
CN116384505A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
CN111782409B (zh) | 任务处理、风险识别任务处理方法、装置及电子设备 | |
CN114840426A (zh) | 一种代码测试的方法及装置 | |
CN110032433B (zh) | 一种任务执行方法、装置、设备及介质 | |
CN117348999B (zh) | 一种业务执行系统及业务执行方法 | |
CN117522669B (zh) | 一种图形处理器内存优化方法、装置、介质及设备 | |
CN116755862B (zh) | 一种算子优化调度模型的训练方法、装置、介质及设备 | |
CN117455015B (zh) | 一种模型优化的方法、装置、存储介质及电子设备 | |
CN116089434B (zh) | 一种数据存储方法、装置、存储介质及电子设备 | |
CN117555697B (zh) | 一种面向分布式训练的缓存加载系统、方法、装置及设备 | |
CN110009237B (zh) | 一种资源分配方法、装置、设备及介质 | |
CN117891600A (zh) | 一种任务调度的方法、装置、存储介质及电子设备 | |
CN116204324A (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 |