CN116204324A - 一种任务执行的方法、装置、存储介质及电子设备 - Google Patents

一种任务执行的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116204324A
CN116204324A CN202310345473.4A CN202310345473A CN116204324A CN 116204324 A CN116204324 A CN 116204324A CN 202310345473 A CN202310345473 A CN 202310345473A CN 116204324 A CN116204324 A CN 116204324A
Authority
CN
China
Prior art keywords
network layer
computing
execution unit
task
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.)
Pending
Application number
CN202310345473.4A
Other languages
English (en)
Inventor
曾令仿
陈志广
程稳
李勇
陈�光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202310345473.4A priority Critical patent/CN116204324A/zh
Publication of CN116204324A publication Critical patent/CN116204324A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书公开了一种任务执行的方法、装置、存储介质及电子设备。所述任务执行的方法包括:确定目标模型中的每个网络层对应的计算任务各计算设备对应的设备信息,针对每个网络层,根据执行该网络层对应计算任务时涉及的计算次数以及各计算设备的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长,根据计算时长、上一个网络层对应的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定该网络层对应的目标设备,在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行计算任务。

Description

一种任务执行的方法、装置、存储介质及电子设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种任务执行的方法、装置、存储介质及电子设备。
背景技术
随着深度神经网络技术的发展,逐渐涌现出一些超大型的深度神经网络模型,由于这些模型的参数量十分庞大,对训练这些模型的计算系统带来了诸多挑战。大规模训练不仅需要较多的计算资源,对设备的内存以及传输等资源的需求也很高,因此模型的并行训练逐渐成为主流的发展趋势。
目前通常会将模型划分为多个计算任务并分配给不同的图形处理器(GraphicProcessing Unit,GPU)执行运算,而中央处理器(Central Processing Unit,CPU)仅负责数据的传输和调度,这样的方法需要依赖大量的GPU计算资源,而CPU的计算资源却得不到有效的利用,这不仅仅会造成模型训练过程中资源的浪费,部署较多的GPU执行计算任务也会进一步提高模型的训练成本。
因此,如何提高模型训练过程中对不同类型设备的利用率,降低模型的训练成本,是一个亟待解决的问题。
发明内容
本说明书提供一种任务执行的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种任务执行的方法,包括:
获取目标模型的模型数据;
对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU;
针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长;
根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的;
将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
可选地,确定该网络层对应的计算设备之前,所述方法还包括:
确定各计算设备中的至少一个执行单元;
根据各计算设备对应的设备信息,确定每个计算设备中的各执行单元对应的计算能力。
可选地,针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长,具体包括:
针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各执行单元对应的计算能力,确定通过各执行单元执行该网络层对应计算任务时所需的计算时长。
可选地,根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,具体包括:
根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元;
将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务,具体包括:
将各网络层部署在各网络层对应执行单元所在的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的执行单元执行所述计算任务。
可选地,所述数据传输时长是根据执行所述上一个网络层对应计算任务的执行单元与所述其他各执行单元之间的传输信息以及所述上一个网络层输出的数据量进行确定的。
可选地,根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元,具体包括:
若该网络层不为所述目标模型的起始网络层,则针对每个执行单元,根据该执行单元对应的计算时长以及数据传输时长,确定该执行单元对应的综合时长;
在各执行单元中确定出对应计算设备的剩余内存大于所述内存空间,且对应综合时长小于通过执行所述上一个网络层对应计算任务的执行单元执行该网络层对应计算任务时所需计算时长的执行单元,作为候选执行单元;
根据各候选执行单元对应的综合时长,确定该网络层对应的目标执行单元。
可选地,根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元,具体包括:
若该网络层为所述目标模型的起始网络层,则根据执行该网络层对应计算任务时所需的计算次数以及各执行单元对应的计算能力,确定各执行单元对应的计算时长;
根据各执行单元对应的计算时长、所述内存空间以及所述剩余内存,确定该网络层对应的执行单元。
可选地,根据各执行单元对应的计算时长、所述内存空间以及所述剩余内存,确定该网络层对应的执行单元,具体包括:
确定剩余内存大于所述内存空间的执行单元,作为候选执行单元;
根据各候选执行单元对应的计算时长,确定该网络层对应的目标执行单元。
可选地,所述方法还包括:
针对每个网络层,若该网络层对应的目标执行单元和该网络层的相邻网络层对应的目标执行单元之间存在至少两种传输方式,则对当前传输方式的传输状态进行监测;
根据所述传输状态,确定是否需要对当前的传输方式进行调整;
若是,将当前的传输方式调整为另一种传输方式。
可选地,所述传输信息包括:各执行单元之间的传输方式以及各传输方式对应的带宽,所述传输方式包括:第一传输方式以及第二传输方式中的至少一种。
可选地,所述方法还包括:
若该网络层对应的目标执行单元和相邻网络层对应的目标执行单元均为GPU设备中的执行单元,且该网络层对应的目标执行单元与相邻网络层对应的目标执行单元之间存在所述第二传输方式,则通过所述第二传输方式对该网络层与所述相邻网络层之间的数据进行传输,否则通过所述第一传输方式对该网络层与所述相邻网络层之间的数据进行传输。
可选地,所述第一传输方式包括:串行计算机扩展总线PCI-E,所述第二传输方式包括:NVLINK。
本说明书提供了一种任务执行的装置,包括:
获取模块,获取目标模型的模型数据;
解析模块,对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU;
第一确定模块,针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长;
第二确定模块,根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的;
执行模块,将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行的方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的任务执行的方法中,确定目标模型中的每个网络层对应的计算任务各计算设备对应的设备信息,针对每个网络层,根据执行该网络层对应计算任务时涉及的计算次数以及各计算设备的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长,根据计算时长、上一个网络层对应的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定该网络层对应的目标设备,在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行计算任务。
从上述方法可以看出,本方案能够基于不同类型的计算设备(CPU以及GPU)的设备信息,为不同的网络层分配不同的计算设备从而执行相应的计算任务,相比于目前仅通过GPU执行主要计算任务的方法,在本方案中无论是CPU还是GPU,都能够根据其设备信息确定出与之相匹配的网络层,进而执行该网络层对应的计算任务,极大的提高了不同计算设备的利用率,进一步降低了计算任务的执行成本。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种任务执行的方法的流程示意图;
图2为本说明书中提供的一种模型训练时的任务执行过程示意图;
图3为本说明书中提供的一种任务执行系统示意图;
图4为本说明书提供的一种任务执行的装置的示意图;
图5为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种任务执行的方法的流程示意图,包括以下步骤:
S101:获取目标模型的模型数据。
S102:对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU。
在模型训练的过程中,模型的各个网络层的训练流程通常会具有先后关系,下一网络层计算的输入依赖于上一网络层计算的输出,所以很多GPU大部分时间都在等待上层输入的计算完毕,造成了计算资源的空置。
流水线并行是一种通过将模型并行与数据流水线相结合来加速神经网络训练的方法。其核心思想是将模型按层分割成若干块,每块都交给一个设备。在前向传递过程中,每个设备将中间的激活传递给下一个阶段。在后向传递过程中,每个设备将输入张量的梯度传回给前一个流水线阶段。这个方法缓解了模型并行的部分资源浪费。
但是目前模型并行训练的过程中大部分计算任务都是有GPU来完成的,CPU仅是执行数据的传输和控制,导致CPU资源的利用率较低,甚至在大部分时间处于闲置状态,造成了CPU资源的浪费。
基于此,本说明书提供了一种任务执行的方法,在不同类型计算设备的执行单元中确定出目标模型每个网络层对应计算任务的执行单元,进而执行计算任务,提高对不同类型计算资源的利用率。
在本说明书中,用于执行该任务执行的方法的执行主体可以是指服务器等指定设备,为了便于描述,本说明书仅以服务器是执行主体为例,对本说明书提供的一种任务执行的方法进行说明。
其中,在执行针对目标模型的计算任务的过程中,服务器需要获取目标模型的模型数据,该计算任务可以为在模型训练过程中的计算任务(包括前项传递和后向传递过程中的计算任务),在获取模型的训练请求后,服务器即可获取模型数据,当然,上述计算任务也可以为模型在实际预测过程中的计算任务。
获取模型数据后,服务器可以对该模型数据解析,例如,服务器可以将模型结构以数据流图的形式进行存储,在对其结构进行解析后,可以确定目标模型的每个网络层对应的计算任务。
与此同时,服务器可以确定各计算设备对应的设备信息,各计算设备可以部署在同一台终端设备(如计算机)中,当然,也可以部署在分布式计算系统的多个节点中。
在本说明书中,上述计算设备可以包括至少一个中央处理器CPU以及至少一个图形处理器GPU,当然,也可以包含有诸如张量处理单元(Tensor Processing Unit,TPU)、嵌入式神经网络处理器(Neural-Network Processing Unit,NPU)等其他计算设备,本说明书对此不做具体限定。
各计算设备的设备信息可以包括CPU数量、CPU频率、CPU内存大小、GPU数量、GPU的流处理器数量、GPU的流处理器频率等以及GPU内存大小等,本说明书对此不做具体限定。
另外,服务器还可以确定各计算设备之间的传输信息,该传输信息包括不同计算设备之间的传输方式,以及不同传输方式对应的带宽。在本说明书中,上述传输方式可以包括第一传输方式以及第二传输方式中的至少一种,第一传输方式可以包括高速串行计算机扩展总线PCI-E(Peripheral Component Interconnect Express),第二传输方式可以包括NVLINK,其中,NVLINK用于GPU与GPU之间的数据传输。
进一步的,服务器可以确定各计算设备中包含的至少一个执行单元,并将各执行单元进行实例化。在本说明书中,执行单元可以根据计算设备的线程束进行确定,当然,也可以根据计算设备的核心数来进行确定,本说明书对此不做具体限定。
针对每个执行单元,服务器可以根据该执行单元所属计算设备的设备信息,确定该执行单元对应的计算能力,该计算能力可以表示为执行单元对应的每秒浮点运算次数(flops)。
S 103:针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长。
S104:根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的。
在确定各网络层对应计算设备的过程中,针对每个网络层,服务器对执行该网络层对应的计算任务时所需的计算次数(如浮点运算次数)以及该网络层输出的数据量进行推导,并确定该网络层的数据(如模型参数、张量等)所需的内存空间。
对于目标模型的起始网络层,服务器可以根据该起始网络层对应的计算次数和内存空间、各执行单元对应的计算能力以及各执行单元对应计算设备的剩余内存,确定起始网络层对应的执行单元,该执行单元的确定方法可以通过如下公式进行表示:
Figure BDA0004161903450000091
其中,La.flop为起始网络层a所需的计算次数(浮点运算次数),ECi为执行单元i对应的计算能力(每秒浮点运算次数),Meni为执行单元i对应计算设备的剩余内存,La.Mem为网络层a所需的内存空间。
服务器可以依据上述公式,确定剩余内存大于网络层a所需内存空间的执行单元,作为候选执行单元,根据起始网络层a所需的计算次数以及各执行单元对应的计算能力,确定,确定各执行单元对应的计算时长,进而根据各候选执行单元对应的计算时长,确定该网络层对应的唯一执行单元(如将计算时长最小的候选执行单元作为起始网络层a对应的执行单元)作为该网络层对应的目标执行单元。
对于除起始网络层外的网络层,服务器可以根据该网络层对应的计算次数和所需内存空间、各执行单元对应的计算能力、各执行单元对应计算设备的剩余内存、该网络层的上一网络层所输出的数据量、上一网络层对应执行单元(即执行上一网络层对应计算任务的执行单元)与各执行单元之间的传输信息,确定该网络层对应的执行单元,该执行单元的确定方法可以通过如下公式进行表示:
Figure BDA0004161903450000101
其中,La_1.size为上一个网络层输出的数据量,BWi,j,k为上一个网络层对应执行单元j与其他执行单元i之间的带宽,当执行单元j与执行单元i属于不同的计算设备时,k有两个值,分别表示两种传输方式,k=0表示使用PCI-e进行数据传输,k=1的情况表示使用NVLINK进行数据传输。
具体的,服务器可以基于上述公式,根据网络层a(a>1)对应的计算次数以及各执行单元对应的计算能力,确定各执行单元对应的计算时长,根据上一个网络层所对应的计算设备与各计算设备之间的传输信息,以及上一个网络层输出的数据量,确定各执行单元对应的数据传输时长,进而根据上述计算时长以及数据传输时长,确定各网络层对应的综合时长,即
Figure BDA0004161903450000102
进一步的,在确定网络层a(a>1)对应执行单元的过程中,服务器可以在各执行单元中确定出对应计算设备的剩余内存大于网络层a(a>1)所需内存空间,且对应综合时长小于通过所述上一个网络层的执行单元执行该网络层对应计算任务时所需计算时长的执行单元,作为候选执行单元,进而根据各候选执行单元对应的综合时长,确定该网络层对应的目标执行单元(如将综合时长最小的候选执行单元作为网络层a对应的计算单元)。
需要说明的是,在实际应用中也可以不对各计算设备对应的执行单元进行划分,而是确定不同网络层对应的计算设备,每个计算设备可以等效为一个执行单元,从而通过不同网络层对应的计算设备执行各网络层对应的计算任务。
在此过程中,服务器可以针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长,根据上一个网络层所对应的计算设备(即执行上一个网络层对应计算任务的计算设备)与各计算设备之间的传输信息,以及上一个网络层输出的数据量确定各计算设备对应的数据传输时长,进而根据各计算设备对应的计算时长以及数据传输时长确定各计算设备的综合时长,进而根据各计算设备对应的综合时长,各计算设备的剩余内存以及上述内存空间中的至少一种确定该网络层对应的计算设备,作为该网络层对应的目标设备。
S105:将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
具体的,服务器可以基于上述设备信息、传输信息以及推导信息输出一个多元组列表,该列表中可以包括神经模型网络第几层,前后向操作,在计算设备中的位置,是否使用直接存储器访问(Direct Memory Access,DMA),是否使用NVLINK等信息。而后服务器可以基于上述多元组列表,通过各网络层对应的执行单元执行计算任务。
在执行计算任务的过程中,服务器可以先将各网络层部署在各自对应目标执行单元所在的目标设备上,需要说明的是,针对每个网络层,若该网络层对应的目标执行单元和该网络层的相邻网络层对应的目标执行单元之间存在至少两种传输方式(即包括NVLINK以及PCI-e),则对当前传输方式的传输状态进行监测,并根据监测到的传输状态,确定是否需要对当前的传输方式进行调整,其中,上述传输状态可以包括当前传输方式的繁忙程度或是流量大小,若当前的传输方式较为繁忙,则可以将当前的传输方式调整为另一种传输方式。
在实际应用中,只有GPU的执行单元之间才存在NVLINK(第二传输方式),CPU的执行单元以及CPU和GPU的执行单元之间不存在NVLINK。
另外,在本说明书中,针对每个网络层,若该网络层对应的目标执行单元和相邻网络层对应的目标执行单元均为GPU设备中的执行单元,且该网络层对应的目标执行单元与相邻网络层对应的目标执行单元之间存在NVLINK传输方式,由于NVLINK传输方式的传输效率要远高于PCI-e,因此服务器可以优先通过NVLINK传输方式对该网络层与所述相邻网络层之间的数据进行传输,若不存在则通过PCI-e进行传输。
在执行计算任务的过程中,当监测到NVLINK的传输状态较为繁忙时,可以将NVLINK调整为PCI-e,在同时存在两种传输方式的情况下,当PCI-e的传输状态较为繁忙时,也可以将其调整为NVLINK,以保证计算任务的执行效率。为了便于理解,本说明书提供了一种模型训练时的任务执行过程示意图,如图2所示。
图2为本说明书中提供的一种模型训练时的任务执行过程示意图。
其中,在对目标模型进行训练的过程中,服务器可以先获取用户提交的训练请求,而后对模型的结构进行解析,确定每个网络层对应的计算任务以及每个网络层对应的计算量(浮点运算次数),与此同时,获取各计算设备的设备信息,确定各计算设备对应的执行单元,并判断各执行单元之间是否存在NVLINK,若存在则确定其带宽,而后基于上述设备信息、对各网络层的预估信息以及传输信息确定分配策略。
确定分配策略后服务器可以初始化各执行单元,并在开始训练后监控传输状态,若确定传输方式需要进行修改,则在满足条件后对传输方式进行调整,通过各目标执行单元执行模型训练过程中的前后向操作,并执行优化器输出模型参数,在达到预设训练次数后停止对目标模型的训练。
在本说明书中,也可以在服务器中部署相应的任务执行系统,以通过该任务执行系统完成计算任务,为了便于理解,本说明书提供了一种任务执行系统示意图,如图3所示。
图3为本说明书中提供的一种任务执行系统示意图。
其中,该任务执行系统包括执行单元管理器、监控模块以及动态资源调度器,动态资源调度器包括:模型分析模块、分配模块、判断模块以及配置选择模块,执行单元管理器包括各计算设备对应的执行单元以及传输单元,监控模块包括功能修改单元以及重分配单元。
执行单元管理器负责在各个计算设备上实例化多个执行单元,例如一个GPU上可以有一个或者多个执行单元。这些执行单元负责完成各网络层对应的计算任务,并且为网络的下一层提供输入数据;传输单元负责下一层的输入数据的传输。传输单元和执行单元的数量并不一致。如果网络的下一层和执行单元存在不同的计算设备,那么就会实例化一个传输单元,如果网络的下一层和该执行单元负责的神经网络层在同一个计算单元,那么不需要生成一个传输单元。传输单元基于分配方案上是否需要数据传输而生成,并且传输单元的传输方式也是基于分配方案来决定。
监控模块负责监控深度神经网络每次批处理的过程的节点资源变化,来计算是否需要修改深度神经网络层级之间的数据传输方式,当分配方案发生了改变(即各网络层对应的执行单元反生更改)时,监控模块的功能修改单元可以修改对应的传输单元的传输方式,通过这样的修改可以动态的调整模型并行过程中的数据传输和数据计算的重合度,来提高深度神经网络训练的效率。
从上述方法可以看出,本方案能够基于不同类型的计算设备(CPU以及GPU)的设备信息,为不同的网络层分配不同的计算设备从而执行相应的计算任务,相比于目前仅通过GPU执行主要计算任务的方法,在本方案中无论是CPU还是GPU,都能够根据其设备信息确定出与之相匹配的网络层,进而执行该网络层对应的计算任务,极大的提高了不同计算设备的利用率,进一步降低了计算任务的执行成本。
另外,本方案还可以对各执行单元间传输方式的传输状态进行监测,从而在满足更改条件时对传输方式进行调整,保证模型训练时的数据通信效率。
以上为本说明书的一个或多个实施任务执行的方法,基于同样的思路,本说明书还提供了相应的任务执行的装置,如图4所示。
图4为本说明书提供的一种任务执行的装置的示意图,包括:
获取模块401,用于获取目标模型的模型数据;
解析模块402,用于对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU;
第一确定模块403,用于针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长;
第二确定模块404,用于根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的;
执行模块405,用于将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
可选地,确定该网络层对应的计算设备之前,所述第一确定模块403还用于,确定各计算设备中的至少一个执行单元;根据各计算设备对应的设备信息,确定每个计算设备中的各执行单元对应的计算能力。
可选地,所述第一确定模块403具体用于,针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各执行单元对应的计算能力,确定通过各执行单元执行该网络层对应计算任务时所需的计算时长。
可选地,所述第二确定模块404具体用于,根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元;将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务,具体包括:将各网络层部署在各网络层对应执行单元所在的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的执行单元执行所述计算任务。
可选地,所述数据传输时长是根据执行所述上一个网络层对应计算任务的执行单元与所述其他各执行单元之间的传输信息以及所述上一个网络层输出的数据量进行确定的。
可选地,所述第二确定模块404具体用于,若该网络层不为所述目标模型的起始网络层,则针对每个执行单元,根据该执行单元对应的计算时长以及数据传输时长,确定该执行单元对应的综合时长;在各执行单元中确定出对应计算设备的剩余内存大于所述内存空间,且对应综合时长小于通过执行所述上一个网络层对应计算任务的执行单元执行该网络层对应计算任务时所需计算时长的执行单元,作为候选执行单元;根据各候选执行单元对应的综合时长,确定该网络层对应的目标执行单元。
可选地,所述第二确定模块404具体用于,若该网络层为所述目标模型的起始网络层,则根据执行该网络层对应计算任务时所需的计算次数以及各执行单元对应的计算能力,确定各执行单元对应的计算时长;根据各执行单元对应的计算时长、所述内存空间以及所述剩余内存,确定该网络层对应的执行单元。
可选地,所述第二确定模块404具体用于,确定剩余内存大于所述内存空间的执行单元,作为候选执行单元;根据各候选执行单元对应的计算时长,确定该网络层对应的目标执行单元。
可选地,所述执行模块405还用于,针对每个网络层,若该网络层对应的目标执行单元和该网络层的相邻网络层对应的目标执行单元之间存在至少两种传输方式,则对当前传输方式的传输状态进行监测;根据所述传输状态,确定是否需要对当前的传输方式进行调整;若是,将当前的传输方式调整为另一种传输方式。
可选地,所述传输信息包括:各执行单元之间的传输方式以及各传输方式对应的带宽,所述传输方式包括:第一传输方式以及第二传输方式中的至少一种。
可选地,所述执行模块405还用于,若该网络层对应的目标执行单元和相邻网络层对应的目标执行单元均为GPU设备中的执行单元,且该网络层对应的目标执行单元与相邻网络层对应的目标执行单元之间存在所述第二传输方式,则通过所述第二传输方式对该网络层与所述相邻网络层之间的数据进行传输,否则通过所述第一传输方式对该网络层与所述相邻网络层之间的数据进行传输。
可选地,所述第一传输方式包括:串行计算机扩展总线PCI-E,所述第二传输方式包括:NVLINK。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种任务执行的方法。
本说明书还提供了图5所示的一种对应于图1的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的任务执行的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware DescriptionLanguage,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated CircuitHardware 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 (15)

1.一种任务执行的方法,其特征在于,包括:
获取目标模型的模型数据;
对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU;
针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长;
根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的;
将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
2.如权利要求1所述的方法,其特征在于,确定该网络层对应的计算设备之前,所述方法还包括:
确定各计算设备中的至少一个执行单元;
根据各计算设备对应的设备信息,确定每个计算设备中的各执行单元对应的计算能力。
3.如权利要求2所述的方法,其特征在于,针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长,具体包括:
针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各执行单元对应的计算能力,确定通过各执行单元执行该网络层对应计算任务时所需的计算时长。
4.如权利要求3所述的方法,其特征在于,根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,具体包括:
根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元;
将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务,具体包括:
将各网络层部署在各网络层对应执行单元所在的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的执行单元执行所述计算任务。
5.如权利要求4所述的方法,其特征在于,所述数据传输时长是根据执行所述上一个网络层对应计算任务的执行单元与所述其他各执行单元之间的传输信息以及所述上一个网络层输出的数据量进行确定的。
6.如权利要求4所述的方法,其特征在于,根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元,具体包括:
若该网络层不为所述目标模型的起始网络层,则针对每个执行单元,根据该执行单元对应的计算时长以及数据传输时长,确定该执行单元对应的综合时长;
在各执行单元中确定出对应计算设备的剩余内存大于所述内存空间,且对应综合时长小于通过执行所述上一个网络层对应计算任务的执行单元执行该网络层对应计算任务时所需计算时长的执行单元,作为候选执行单元;
根据各候选执行单元对应的综合时长,确定该网络层对应的目标执行单元。
7.如权利要求4所述的方法,其特征在于,根据各执行单元对应的计算时长、执行上一个网络层对应计算任务的执行单元与其他各执行单元之间的数据传输时长、所述内存空间以及所述剩余内存中的至少一种,确定执行该网络层对应计算任务的执行单元,作为该网络层对应的目标执行单元,具体包括:
若该网络层为所述目标模型的起始网络层,则根据执行该网络层对应计算任务时所需的计算次数以及各执行单元对应的计算能力,确定各执行单元对应的计算时长;
根据各执行单元对应的计算时长、所述内存空间以及所述剩余内存,确定该网络层对应的执行单元。
8.如权利要求7所述的方法,其特征在于,根据各执行单元对应的计算时长、所述内存空间以及所述剩余内存,确定该网络层对应的执行单元,具体包括:
确定剩余内存大于所述内存空间的执行单元,作为候选执行单元;
根据各候选执行单元对应的计算时长,确定该网络层对应的目标执行单元。
9.如权利要求5所述的方法,其特征在于,所述方法还包括:
针对每个网络层,若该网络层对应的目标执行单元和该网络层的相邻网络层对应的目标执行单元之间存在至少两种传输方式,则对当前传输方式的传输状态进行监测;
根据所述传输状态,确定是否需要对当前的传输方式进行调整;
若是,将当前的传输方式调整为另一种传输方式。
10.如权利要求5所述的方法,其特征在于,所述传输信息包括:各执行单元之间的传输方式以及各传输方式对应的带宽,所述传输方式包括:第一传输方式以及第二传输方式中的至少一种。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
若该网络层对应的目标执行单元和相邻网络层对应的目标执行单元均为GPU设备中的执行单元,且该网络层对应的目标执行单元与相邻网络层对应的目标执行单元之间存在所述第二传输方式,则通过所述第二传输方式对该网络层与所述相邻网络层之间的数据进行传输,否则通过所述第一传输方式对该网络层与所述相邻网络层之间的数据进行传输。
12.如权利要求10所述的方法,其特征在于,所述第一传输方式包括:串行计算机扩展总线PCI-E,所述第二传输方式包括:NVLINK。
13.一种任务执行的装置,其特征在于,包括:
获取模块,获取目标模型的模型数据;
解析模块,对所述模型数据进行解析,确定所述目标模型中的每个网络层对应的计算任务,以及,确定各计算设备对应的设备信息,所述计算设备包括至少一个中央处理器CPU以及至少一个图形处理器GPU;
第一确定模块,针对每个网络层,根据执行该网络层对应计算任务时所涉及的计算次数,以及各计算设备对应的设备信息,确定通过各计算设备执行该网络层对应计算任务时所需的计算时长;
第二确定模块,根据所述计算时长、执行上一个网络层对应计算任务的计算设备与其他各计算设备之间的数据传输时长、该网络层的数据所需的内存空间以及各计算设备的剩余内存中的至少一种,确定执行该网络层对应计算任务的计算设备,作为该网络层对应的目标设备,其中,所述数据传输时长是根据执行上一个网络层对应计算任务的计算设备与所述其他各计算设备之间的传输信息,以及所述上一个网络层输出的数据量进行确定的;
执行模块,将各网络层部署在各网络层对应的目标设备中,以在接收到各网络层对应计算任务的执行请求后通过各网络层对应的目标设备执行所述计算任务。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~12任一项所述的方法。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~12任一项所述的方法。
CN202310345473.4A 2023-03-29 2023-03-29 一种任务执行的方法、装置、存储介质及电子设备 Pending CN116204324A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310345473.4A CN116204324A (zh) 2023-03-29 2023-03-29 一种任务执行的方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310345473.4A CN116204324A (zh) 2023-03-29 2023-03-29 一种任务执行的方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116204324A true CN116204324A (zh) 2023-06-02

Family

ID=86517466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310345473.4A Pending CN116204324A (zh) 2023-03-29 2023-03-29 一种任务执行的方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116204324A (zh)

Similar Documents

Publication Publication Date Title
CN107577523B (zh) 一种任务执行的方法及装置
CN114780225B (zh) 一种分布式模型训练系统、方法及装置
CN116521380A (zh) 一种资源自适应协同的模型训练加速方法、装置及设备
CN110401700A (zh) 模型加载方法及系统、控制节点及执行节点
CN116225669B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116167463A (zh) 一种模型训练的方法、装置、存储介质及电子设备
CN117195997B (zh) 一种模型训练方法、装置、存储介质及电子设备
CN116151363B (zh) 分布式强化学习系统
CN112596898A (zh) 一种任务执行器调度的方法及装置
CN116185629A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN117931423A (zh) 任务处理、风险识别任务处理方法、装置及电子设备
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
CN116932175B (zh) 一种基于序列生成的异构芯片任务调度方法以及装置
CN115964181B (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116107728B (zh) 一种任务执行方法、装置、存储介质及电子设备
CN116384505A (zh) 一种数据处理的方法、装置、存储介质及电子设备
CN116304212A (zh) 一种数据处理系统、方法、设备及存储介质
CN116204324A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN113177632B (zh) 一种基于流水线并行的模型训练方法、装置以及设备
CN111880922A (zh) 并发任务的处理方法、装置及设备
CN117032999B (zh) 一种基于异步运行时的cpu-gpu协同调度方法及装置
CN117076135B (zh) 一种资源调度方法、装置、存储介质及电子设备
CN117421129B (zh) 一种基于异构存储集群的业务执行方法、装置及电子设备
CN117909371B (zh) 一种模型训练方法、装置、存储介质及电子设备
CN116909744A (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