CN116701001A - 目标任务分配方法、装置、电子设备及存储介质 - Google Patents
目标任务分配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116701001A CN116701001A CN202310989113.8A CN202310989113A CN116701001A CN 116701001 A CN116701001 A CN 116701001A CN 202310989113 A CN202310989113 A CN 202310989113A CN 116701001 A CN116701001 A CN 116701001A
- Authority
- CN
- China
- Prior art keywords
- target
- operator
- operators
- edge device
- edge
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008859 change Effects 0.000 claims abstract description 83
- 238000004364 calculation method Methods 0.000 claims abstract description 76
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 230000007246 mechanism Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 37
- 230000001133 acceleration Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 abstract description 17
- 238000012549 training Methods 0.000 abstract description 16
- 238000013136 deep learning model Methods 0.000 abstract description 11
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012821 model calculation Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/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
- G06F9/5044—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 considering hardware capabilities
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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
技术领域
本发明涉及电力系统自动化调度领域,尤其涉及目标任务分配方法、装置、电子设备及存储介质。
背景技术
人工智能被视为科学创新、经济发展和产业改革的核心引擎,它已经改变了人们的生活方式和工作方式。随着深度学习算法的广泛应用,大规模的神经网络模型已经成为了人工智能应用(Applications of artificial intelligence,AI)中的主要组成部分。作为人工智能的主力,深度神经网络(Deep Neural Network,DNN))以其突出的性能和灵活性成为计算机视觉应用的首选。然而,这些模型的训练和推理需要大量的计算资源,尤其是在处理海量数据和复杂任务时,对计算资源的需求更是激增。因此,如何提高模型的计算效率,成为了人工智能领域研究的热点问题之一。
AI芯片也被称为AI加速器或计算卡,即专门用于处理人工智能应用中大量计算任务的模块,是提高模型计算效率的主要手段之一。在处理深度学习算法时,相比于传统的中央处理器(Central Processing Unit,CPU),AI加速芯片具有更高的计算效率和更低的功耗。然而,AI加速芯片的设计和实现是一项十分复杂和困难的任务。在设计AI加速芯片时,需要考虑到多个方面的因素,如计算单元的数量、计算单元的结构、内存带宽、功耗等。同时,由于不同的神经网络模型具有不同的特点和结构,所以AI加速芯片也需要支持多种模型算子的计算,才能广泛应用于各种应用场景中。在实际应用中,因为不同的模型算子具有不同的计算特点和计算需求,导致AI加速芯片并不能全量支持所有的模型算子,且AI加速芯片的设计和实现是一项非常复杂的工作,因此,在设计AI加速芯片时,通常会对常见的模型算子进行优化,而对于一些较为复杂或不太常见的模型算子,AI加速芯片可以无法完全支持该类算子,这导致在使用AI加速芯片进行模型计算时,可能会出现无法支持算子的情况,从而影响模型的计算效率和计算精度。
另一方面,可以使用中央处理器进行模型计算。虽然CPU具有较高的通用性和灵活性,但在处理深度学习算法时,CPU的计算效率相对较低。具体原因在于,深度学习算法需要进行大量的矩阵计算和向量计算,而CPU在进行这些计算时,需要频繁地进行数据的读取和写入,导致计算效率较低。同时,由于深度学习模型通常具有非常大的参数量和规模,在使用CPU进行模型计算时,会受到内存带宽和计算能力的限制,导致计算速度较慢。
因此,现有的深度学习模型进行模型训练时,存在不能全量支持模型算子以及计算效率低的问题。
发明内容
本发明提供目标任务分配方法、装置、电子设备及存储介质,解决了现有的深度学习模型进行模型训练时,存在的不能全量支持模型算子以及计算效率低的问题。
为达到上述目的,本发明采用如下技术方案:
第一方面,本发明提供目标任务分配方法,该方法应用于服务器,包括:
将目标任务拆分为不同类型的多个算子;
根据每个所述算子支持的处理器的类型,将多个所述算子划分为第一组数据和第二组数据;所述第一组数据包括多个AI加速芯片不支持的算子,所述第二组数据包括多个AI加速芯片支持的算子;
根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果;所述第一拆分结果和所述第二拆分结果中包括拆分后的多个目标算子;
获取每个所述目标算子的计算资源需求量,以及将每个所述目标算子分别分配到与所述服务器连接的多个边缘设备上的计算时限;
根据所述计算资源需求量和所述计算时限确定每个所述目标算子在每个所述边缘设备上的资源变化速率,得到算力更新速率表;
根据每个所述边缘设备的计算资源总量、启动时长以及在所述启动时长内的资源变化速率,确定每个所述边缘设备的剩余空闲资源量;
根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系;
根据所述映射关系将所述目标算子分配到多个所述边缘设备上。
在一种可能的实现方式中,所述根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,具体包括:
根据所述第一组数据中的每个算子的数据规模与第一预设值的大小,将数据规模大于或等于所述第一预设值的算子作为第二算子,将数据规模小于所述第一预设值的算子作为第三算子;
根据模型并行机制将所述第二算子拆分为多个第四算子;
根据所述第三算子和所述第四算子,得到所述第一组数据对应的第一拆分结果。
在一种可能的实现方式中,所述根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果,具体包括:
根据所述第二组数据中每个算子的数据规模与第二预设值的大小,将数据规模大于或等于所述第二预设值的算子作为第五算子,将数据规模小于所述第二预设值的算子作为第六算子;
根据数据并行机制将所述第五算子拆分为多个第七算子;
根据所述第六算子和所述第七算子,得到所述第二组数据对应的第二拆分结果。
在一种可能的实现方式中,所述确定每个所述目标算子在每个所述边缘设备上的资源变化速率,具体为:
根据如下公式计算每个所述目标算子在每个所述边缘设备上的资源变化速率:
,
其中,0n+1,n表示所述目标算子的总数量,/>表示第i个目标算子在第j个边缘设备上的资源变化速率,/>表示第i个目标算子的计算资源需求量,/>表示第i个目标算子被分配到第j个边缘设备对应的计算时限。
在一种可能的实现方式中,所述确定每个所述边缘设备的剩余空闲资源量,具体为:
根据如下公式计算每个所述边缘设备的剩余空闲资源量:
,
其中,表示第j个边缘设备的剩余空闲资源量,/>表示第j个边缘设备的计算资源总量,t表示第j个边缘设备的启动时长;/>表示在启动时长内第j个边缘设备上的资源变化速率。
在一种可能的实现方式中,所述设备类型包括支持中央处理器的边缘设备和支持图形处理器的边缘设备;根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系,具体包括:
根据所述算力更新速率表中的每个所述目标算子在不同的所述边缘设备的资源变化速率的大小,确定每个所述目标算子在分配时对应的多个所述边缘设备的优先级;所述资源变化速率的大小与所述边缘设备的优先级成正比;
根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系;并确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备,得到所述第二拆分结果中的每个目标算子与所述支持图形处理器的边缘设备的映射关系。
在一种可能的实现方式中,所述根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系,具体包括:
将所述第一拆分结果中资源变化速率最大的目标算子优先分配到所述优先级最高的支持中央处理器的边缘设备中;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值小于预设阈值时,将优先级第二高的支持中央处理器的边缘设备作为新的优先级最高的支持中央处理器的边缘设备;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值大于预设阈值,且所述第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,将所述第一拆分结果中资源变化速率第二大的目标算子作为新的资源变化速率最大的目标算子;
在对所述第一拆分结果中的每个目标算子分配完成后,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系。
在一种可能的实现方式中,在根据所述映射关系将所述目标算子分配到多个所述边缘设备上之后,所述方法还包括:
定期更新所述目标任务的剩余任务量和每个所述边缘设备的剩余空闲资源量;所述剩余任务量包括多个未被所述边缘设备执行的所述目标算子;
根据所述剩余空闲资源量、所述算力更新速率表、每个所述边缘设备的设备类型以及所述剩余任务量中的每个目标算子的计算资源需求量,更新所述剩余任务量与多个所述边缘设备的映射关系。
第二方面,本发明提供目标任务分配装置,该装置应用于服务器,包括:
第一拆分单元,用于将目标任务拆分为不同类型的多个算子;
算子分类单元,用于根据每个所述算子支持的处理器的类型,将多个所述算子划分为第一组数据和第二组数据;所述第一组数据包括多个AI加速芯片不支持的算子,所述第二组数据包括多个AI加速芯片支持的算子;
第二拆分单元,用于根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果;所述第一拆分结果和所述第二拆分结果中包括拆分后的多个目标算子;
数据采集单元,用于获取每个所述目标算子的计算资源需求量,以及将每个所述目标算子分别分配到与所述服务器连接的多个边缘设备上的计算时限;
第一计算单元,用于根据所述计算资源需求量和所述计算时限确定每个所述目标算子在每个所述边缘设备上的资源变化速率,得到算力更新速率表;
第二计算单元,用于根据每个所述边缘设备的计算资源总量、启动时长以及在所述启动时长内的资源变化速率,确定每个所述边缘设备的剩余空闲资源量;
匹配关系确定单元,用于根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系;
算力匹配单元,用于根据所述映射关系将所述目标算子分配到多个所述边缘设备上。
在一种可能的实现方式中,在根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果时,所述第二拆分单元被配置为执行:
根据所述第一组数据中的每个算子的数据规模与第一预设值的大小,将数据规模大于或等于所述第一预设值的算子作为第二算子,将数据规模小于所述第一预设值的算子作为第三算子;
根据模型并行机制将所述第二算子拆分为多个第四算子;
根据所述第三算子和所述第四算子,得到所述第一组数据对应的第一拆分结果。
在一种可能的实现方式中,在根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果时,所述第二拆分单元被配置为执行:
根据所述第二组数据中每个算子的数据规模与第二预设值的大小,将数据规模大于或等于所述第二预设值的算子作为第五算子,将数据规模小于所述第二预设值的算子作为第六算子;
根据数据并行机制将所述第五算子拆分为多个第七算子;
根据所述第六算子和所述第七算子,得到所述第二组数据对应的第二拆分结果。
在一种可能的实现方式中,在确定每个所述目标算子在每个所述边缘设备上的资源变化速率时,所述第一计算单元具体被配置为执行:
根据如下公式计算每个所述目标算子在每个所述边缘设备上的资源变化速率:
,
其中,0n+1,n表示所述目标算子的总数量,/>表示第i个目标算子在第j个边缘设备上的资源变化速率,/>表示第i个目标算子的计算资源需求量,/>表示第i个目标算子被分配到第j个边缘设备对应的计算时限。
在一种可能的实现方式中,在确定每个所述边缘设备的剩余空闲资源量时,所述第二计算单元被配置为执行:
根据如下公式计算每个所述边缘设备的剩余空闲资源量:
,
其中,表示第j个边缘设备的剩余空闲资源量,/>表示第j个边缘设备的计算资源总量,t表示第j个边缘设备的启动时长;/>表示在启动时长内第j个边缘设备上的资源变化速率。
在一种可能的实现方式中,所述设备类型包括支持中央处理器的边缘设备和支持图形处理器的边缘设备;所述匹配关系确定单元被配置为执行:
根据所述算力更新速率表中的每个所述目标算子在不同的所述边缘设备的资源变化速率的大小,确定每个所述目标算子在分配时对应的多个所述边缘设备的优先级;所述资源变化速率的大小与所述边缘设备的优先级成正比;
根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系;并确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备,得到所述第二拆分结果中的每个目标算子与所述支持图形处理器的边缘设备的映射关系。
在一种可能的实现方式中,在根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系时,所述匹配关系确定单元具体被配置为执行:
将所述第一拆分结果中资源变化速率最大的目标算子优先分配到所述优先级最高的支持中央处理器的边缘设备中;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值小于预设阈值时,将优先级第二高的支持中央处理器的边缘设备作为新的优先级最高的支持中央处理器的边缘设备;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值大于预设阈值,且所述第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,将所述第一拆分结果中资源变化速率第二大的目标算子作为新的资源变化速率最大的目标算子;
在对所述第一拆分结果中的每个目标算子分配完成后,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系。
在一种可能的实现方式中,所述装置还包括更新单元,在所述根据所述映射关系将所述目标算子分配到多个所述边缘设备上之后,所述更新单元被配置为执行:
定期更新所述目标任务的剩余任务量和每个所述边缘设备的剩余空闲资源量;所述剩余任务量包括多个未被所述边缘设备执行的所述目标算子;
根据所述剩余空闲资源量、所述算力更新速率表、每个所述边缘设备的设备类型以及所述剩余任务量中的每个目标算子的计算资源需求量,更新所述剩余任务量与多个所述边缘设备的映射关系。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一项所述的目标任务分配方法。
第四方面,本发明提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一项所述的目标任务分配方法。
本发明实施例提供的目标任务分配方法应用在服务器上,在服务器上接收到目标任务后,首先,将目标任务拆分为不同类型的多个算子;其次,将拆分后的多个算子分为包括多个AI加速芯片不支持的算子的第一组数据和包括多个AI加速芯片支持的算子的第二组数据;再次,根据模型并行机制对第一组数据进行二次拆分,根据数据并行机制对第二组数据进行二次拆分,得到拆分后的多个目标算子;之后,根据每个目标算子的计算资源需求量、以及每个目标算子分配到不同的边缘设备上的计算时限,确定每个目标算子在每个边缘设备上的资源变化速率,得到算力更新速率表;之后,根据每个边缘设备的计算资源总量、启动时长以及在启动时长内的资源变化速率,确定每个边缘设备的剩余空闲资源量;之后,根据算力更新速率表、边缘设备的设备类型、每个边缘设备的剩余空闲资源量以及每个目标算子的计算资源需求量,确定每个目标算子对应的边缘设备,得到度过目标算子和多个边缘设备的映射关系;最后,根据映射关系将目标算子分配到多个边缘设备上;本发明在方法应用在深度学习模型的训练过程中,将目标认为经两次拆分,得到拆分后的多个目标算子,并将目标算子分配到最合适的边缘设备上执行,通过不同的边缘设备对目标任务协同计算,不仅能解决单个边缘设备不能全量支持模型算子的问题,而且能最大化计算资源的利用效率,有效地提高模型训练过程中的计算效率。
附图说明
图1为本发明实施例提供的目标任务分配方法的步骤流程图;
图2为本发明实施例提供的目标任务分配装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“基于”或“根据”的使用意味着开放和包容性,因为“基于”或“根据”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
为了解决现有的深度学习模型进行模型训练时,存在的不能全量支持模型算子以及计算效率低的问题,本发明实施例提供了目标任务分配方法、装置、电子设备及存储介质。
如图1所示,第一方面,本发明实施例提供目标任务分配方法,该方法应用于服务器,包括:
步骤101、将目标任务拆分为不同类型的多个算子。
其中,目标任务为待训练的深度学习模型的计算任务。深度学习是机器学习的分支,是一种以人工网络为架构、对数据进行表征学习的算法。
根据算子的功能描述以及API(Application Programming Interface,API接口)规范对目标任务进行自动拆分,将目标任务拆分为不同类型的多个算子,其中,不同类型的算子包括激活算子、特征提取算子、归一化算子等。
步骤102、根据每个算子支持的处理器的类型,将多个算子划分为第一组数据和第二组数据。
其中,第一组数据包括多个AI加速芯片不支持的算子,第二组数据包括多个AI加速芯片支持的算子。AI加速芯片支持的算子如:矩阵乘、卷积、反卷积、激活函数和元素操作等算子;AI加速芯片不支持的算子可以是用户自定义的各种算子。
AI加速芯片是专门用于处理人工智能应用中大量计算任务的模块。
根据算子支持的处理器的类型,将第一次拆分后的算子分为AI加速芯片支持的算子和AI加速芯片不支持的算子;即将第一次拆分后的算子分为图形处理器(GraphicsProcessing Unit,GPU)处理的算子和中央处理器(Central Processing Unit,CPU)处理的算子。
步骤103、根据模型并行机制对第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对第二组数据进行二次拆分,得到第二拆分结果。
其中,第一拆分结果和第二拆分结果中包括拆分后的多个目标算子。
由于第一次拆分后的算子中存在规模大的算子,导致边缘设备无法直接对该算子进行处理,因此,需要对规模大于预设数值的算子进行二次拆分,使得拆分后得到的目标算子均能单独被对应的边缘设备处理。即通过多个边缘设备协同处理同一个算子,提高计算效率。
模型并行机制实质是对计算机资源的分配问题,由于待处理的模型规模较大,无法将整个模型整体载入一个边缘设备中,此时,将模型按模型层结构分解为多份,将每一份载入不同的节点中,即通过不同的节点对整个模型的不同层进行计算。
数据并行机制是指在深度学习的过程中,由于训练数据集规模较大,导致我们无法将整个数据集载入一个边缘设备中进行计算,此时,将训练数据集分成多个部分,将每个部分在不同的边缘设备上进行计算,即通过多个边缘设备并行对拆分后的训练数据集进行计算,最终将各边缘设备上的计算结果合并,能够大幅度缩短计算时间。数据并行是一种并行计算技术,用于加深深度学习模型的训练和推理。
在本发明本实施例中,通过模型并行机制对AI加速芯片支持的算子进行二次拆分,通过数据并行机制对AI加速芯片不支持的算子进行二次拆分,得到包含多个目标算子的第一拆分结果和第二拆分结果。
步骤104、获取每个目标算子的计算资源需求量,以及将每个目标算子分别分配到与服务器连接的多个边缘设备上的计算时限。
具体的,将目标任务拆分为多个目标算子后,每个目标算子的数据规模是确定的,从而每个目标算子在计算过程中的计算资源需求量也是确定的,在边缘设备上执行每个算子所需要的计算时限也是确定的。
通过服务器可以获取到每个目标算子的计算资源需求量,以及每个目标算子在与服务器连接的不同的边缘设备上的计算时限。
步骤105、根据计算资源需求量和计算时限确定每个目标算子在每个边缘设备上的资源变化速率,得到算力更新速率表。
具体的,由于一个目标算子在一个边缘设备上的资源变化速率可以由该目标算子的计算资源需求量以及计算时限确定,在计算资源需求量以及计算时限均为已知数据时,可以得到该目标算子在对应的边缘设备上的资源变化速率。
将所有目标算子在所有边缘设备上的资源变化速率以表格的形式进行记录,得到算力更新速率表。
步骤106、根据每个边缘设备的计算资源总量、启动时长以及在启动时长内的资源变化速率,确定每个边缘设备的剩余空闲资源量。
具体的,每个边缘设备的剩余空闲资源量与该边缘设备的计算资源总量和被占用的计算资源量相关,而被占用的计算资源量可以由该边缘设备当前正在执行的算子的资源变化速率与该边缘设备的启动时间确定。
步骤107、根据算力更新速率表、每个边缘设备的设备类型、每个边缘设备的剩余空闲资源量、以及每个目标算子的计算资源需求量,确定每个目标算子对应的边缘设备,得到多个目标算子和多个边缘设备的映射关系。
具体的,在确定每个目标算子对应的边缘设备时,需要考虑:第一、将AI加速芯片支持的算子分配到类型为GPU的边缘设备处理,将AI加速芯片不支持的算子分配到类型为CPU的边缘设备处理。
第二、优先将目标算子分配到处理时资源变化速率大的边缘设备处理。
基于上述两个分配原则,根据算力更新速率表、每个边缘设备的设备类型、每个边缘设备的剩余空闲资源量、以及每个目标算子的计算资源需求量,将目标算子分配到合适的边缘设备上,得到目标算子与边缘设备的映射关系。
其中,边缘设备是指向企业或服务商核心网络提供入口点的设备,包括路由器、网关等。
映射关系指的是将拆分后的目标算子分配到对应的边缘设备时,目标算子与边缘设备的对应关系。
映射关系具有较高的可扩展性,能够支持算子和边缘设备之间的“多对多”映射,也就是说,一个算子可以拆分为多个目标算子后分配到多个边缘设备执行,一个边缘设备可以执行多个算子。
在本实施例中,在车路云协同的智能驾驶场景中,目标任务为一个基于深度学习的目标识别模型,边缘设备为车载网关、智能终端以及路边单元。
目标识别模型可以拆分为十个目标算子,分别记为目标算子1~目标算子10;其中,目标算子1~目标算子6为AI加速芯片支持的算子,目标算子7~目标算子10为AI加速芯片不支持的算子;车载网关的类型为CPU,智能终端和路边单元的类型为GPU。
在对目标算子进行分配时,将目标算子1~目标算子6分配到智能终端和路边单元上,将目标算子7~目标算子10分配到车载网关上。
在对目标算子1~目标算子6进行分配的过程中,首先需要根据算力更新速率表,按照目标算子1~目标算子6在智能终端和路边单元上的资源变化速率的大小对目标算子1~目标算子6进行进一步的分配。
当目标算子1在智能终端上的资源变化速率最大时,在目标算子1的计算资源需求量小于智能终端当前的剩余空闲资源量时,确定将目标算子1分配到智能终端上执行;当目标算子2在路边单元上的资源变化速率最大时,在目标算子2计算资源需求量小于路边单元当前的剩余空闲资源量时,确定将目标算子2分配到路边单元上;每一个目标算子分配之后,需要更新边缘设备的剩余空闲资源量,并更新新的资源变化速率最大的目标算子,以完成对其余目标算子的分配。
当路边单元的剩余空闲资源量小于待分配的目标算子的资源需求量时,需要根据该目标算子在智能终端上的资源变化速率,将该目标算子分配到智能终端上执行。
将目标算子7~目标算子10分配到车载网关上的过程与将目标算子1~目标算子6分配到智能终端和路边单元上的过程相同,此次不再赘述。
最终,目标算子1、目标算子3、目标算子4以及目标算子6确定依次被分配到智能终端上,目标算子2、目标算子5确定依次被分配到路边单元上,目标算子7~目标算子10确定依次被分配到车载网关上,确定的该分配方式即为目标算子与边缘设备的映射关系。
步骤108、根据映射关系将目标算子分配到多个边缘设备上。
具体的,根据确定的映射关系,通过服务器将各目标算子分配到对应的边缘设备处理。
各边缘设备将分配的目标算子处理完成后,通过服务器将处理结果合成为最终的计算结果。
本发明实施例提供的目标任务分配方法应用在服务器上,在服务器上接收到目标任务后,首先,将目标任务拆分为不同类型的多个算子;其次,将拆分后的多个算子分为包括多个AI加速芯片不支持的算子的第一组数据和包括多个AI加速芯片支持的算子的第二组数据;再次,根据模型并行机制对第一组数据进行二次拆分,根据数据并行机制对第二组数据进行二次拆分,得到拆分后的多个目标算子;之后,根据每个目标算子的计算资源需求量、以及每个目标算子分配到不同的边缘设备上的计算时限,确定每个目标算子在每个边缘设备上的资源变化速率,得到算力更新速率表;之后,根据每个边缘设备的计算资源总量、启动时长以及在启动时长内的资源变化速率,确定每个边缘设备的剩余空闲资源量;之后,根据算力更新速率表、边缘设备的设备类型、每个边缘设备的剩余空闲资源量以及每个目标算子的计算资源需求量,确定每个目标算子对应的边缘设备,得到度过目标算子和多个边缘设备的映射关系;最后,根据映射关系将目标算子分配到多个边缘设备上。
本发明在方法应用在深度学习模型的训练过程中,将目标认为经两次拆分,得到拆分后的多个目标算子,并将目标算子分配到最合适的边缘设备上执行,通过不同的边缘设备对目标任务协同计算,不仅能解决单个边缘设备不能全量支持模型算子的问题,而且能最大化计算资源的利用效率,有效地提高模型训练过程中的计算效率。
本发明不仅可以应用于车路云协同的智能驾驶领域,还可以应用于工业互联网领域以及智能电网领域,实现对待处理的任务在低资源、少样本环境下的动态适配与部署。
进一步的,根据模型并行机制对第一组数据进行二次拆分,得到第一拆分结果,具体包括:
根据第一组数据中的每个算子的数据规模与第一预设值的大小,将数据规模大于或等于第一预设值的算子作为第二算子,将数据规模小于第一预设值的算子作为第三算子。
具体的,第一组数据中的每个算子的数据规模不尽相同,当算子的数据规模大于或等于第一预设值时,该算子无法分配到一个边缘设备上独立计算,因此需要将第一组数据中的算子分类为需要拆分的第二算子,以及不需要拆分的第三算子。
根据模型并行机制将第二算子拆分为多个第四算子。
具体的,在对一个第二算子进行拆分时,通过模型并行机制,采用水平拆分和垂直拆分的方法,将一个第二算子拆解为多个第四算子。
其中,水平拆分是将第二算子中各层的神经元进行拆分,垂直拆分是以深度学习模型的分层为依据,将深度学习模型的卷积层和全连接层进行并行计算。
根据第三算子和第四算子,得到第一组数据对应的第一拆分结果。
具体的,第一拆分结果包括未拆分的第三算子以及拆分后得到的多个第四算子。
进一步的,根据数据并行机制对第二组数据进行二次拆分,得到第二拆分结果,具体包括:
根据第二组数据中每个算子的数据规模与第二预设值的大小,将数据规模大于或等于第二预设值的算子作为第五算子,将数据规模小于第二预设值的算子作为第六算子。
具体的,第二组数据中的每个算子的数据规模不尽相同,当算子的数据规模大于或等于第二预设值时,该算子无法分配到一个边缘设备上独立计算,因此需要将第二组数据中的算子分类为需要拆分的第五算子,以及不需要拆分的第六算子。
根据数据并行机制将第五算子拆分为多个第七算子。
具体的,在对一个第五算子进行拆分时,通过数据并行机制,在前向传播阶段,将第五算子中的数据通过采样的方式分为多组,并将多组数据分配到不同的边缘设备并行计算;在反向传播阶段,将多个边缘设备的计算结果进行汇总,得到总的计算结果。
根据第六算子和第七算子,得到第二组数据对应的第二拆分结果。
具体的,第二拆分结果包括未拆分的第六算子以及拆分后得到的多个第七算子。
进一步的,确定每个目标算子在每个边缘设备上的资源变化速率,具体为:
根据如下公式计算每个目标算子在每个边缘设备上的资源变化速率:
,
其中,0n+1,n表示目标算子的总数量,/>表示第i个目标算子在第j个边缘设备上的资源变化速率,/>表示第i个目标算子的计算资源需求量,/>表示第i个目标算子被分配到第j个边缘设备对应的计算时限。
具体的,通过计算目标算子的计算资源需求量与目标算子被分配到对应的边缘设备的计算时限的比值,可以得到目标算子在对应的边缘设备上的资源变化速率。
进一步的,确定每个边缘设备的剩余空闲资源量,具体为:
根据如下公式计算每个边缘设备的剩余空闲资源量:
,
其中,表示第j个边缘设备的剩余空闲资源量,/>表示第j个边缘设备的计算资源总量,t表示第j个边缘设备的启动时长;/>表示在启动时长内第j个边缘设备上的资源变化速率。
具体的,边缘设备的剩余空闲资源量等于该边缘设备的计算资源总量与该边缘设备的资源占用量的差值,资源占用量等于该边缘设备的启动时间与该边缘设备当前执行的算子的资源变化速率的乘积,当该边缘设备上还未分配算子时,资源占用量为零,剩余空闲资源量等于该边缘设备的计算资源总量。
进一步的,设备类型包括支持中央处理器的边缘设备和支持图形处理器的边缘设备。
根据算力更新速率表、每个边缘设备的设备类型、每个边缘设备的剩余空闲资源量、以及每个目标算子的计算资源需求量,确定每个目标算子对应的边缘设备,得到多个目标算子和多个边缘设备的映射关系,具体包括:
根据算力更新速率表中的每个目标算子在不同的边缘设备的资源变化速率的大小,确定每个目标算子在分配时对应的多个边缘设备的优先级。
其中,资源变化速率的大小与边缘设备的优先级成正比。
具体的,资源变化速率越大,表示该边缘设备执行对应的目标算子花费的时间越短,为了节省模型训练的时间,需要将目标算子分配到执行时花费的时间最短的边缘设备上执行。
根据优先级,结合目标算子的计算资源需求量、每个边缘设备的剩余空闲资源量,确定第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系。
同时确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备,得到第二拆分结果中的每个目标算子与支持图形处理器的边缘设备的映射关系。
进一步的,根据优先级,结合目标算子的计算资源需求量、每个边缘设备的剩余空闲资源量,确定第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系,具体包括:
将第一拆分结果中资源变化速率最大的目标算子优先分配到优先级最高的支持中央处理器的边缘设备中。
具体的,在边缘设备的剩余空闲资源量支持分配目标算子的前提下,优先将资源变化速率最大的目标算子分配到优先级最高的支持中央处理器的边缘设备中。
在边缘设备的剩余空闲资源量和分配到边缘设备的目标算子的计算资源需求量总和的差值小于预设阈值时,将优先级第二高的支持中央处理器的边缘设备作为新的优先级最高的支持中央处理器的边缘设备。
具体的,在分配过程中,当目前支持中央处理器的边缘设备的剩余资源量不足以处理其他目标算子时,将其他的目标算子分配到优先级第二高的支持中央处理器的边缘设备中。
在边缘设备的剩余空闲资源量和分配到边缘设备的目标算子的计算资源需求量总和的差值大于预设阈值,且第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,将第一拆分结果中资源变化速率第二大的目标算子作为新的资源变化速率最大的目标算子。
具体的,当目前支持中央处理器的边缘设备的剩余资源量还能处理其他目标算子,同时,第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,对第一拆分结果中资源变化速率第二大的目标算子进行分配。
在对第一拆分结果中的每个目标算子分配完成后,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系。
进一步的,确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备的方法与确定第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备的方法相同,此处不再赘述。
进一步的,在根据映射关系将目标算子分配到多个边缘设备上之后,方法还包括:
定期更新目标任务的剩余任务量和每个边缘设备的剩余空闲资源量。
其中,剩余任务量包括多个未被边缘设备执行的目标算子。
根据剩余空闲资源量、算力更新速率表、每个边缘设备的设备类型以及剩余任务量中的每个目标算子的计算资源需求量,更新剩余任务量与多个边缘设备的映射关系。
具体的,在目标任务执行的过程中,在目标时间间隔内,定期更新目标任务的剩余任务量和每个边缘设备的剩余空闲资源,并对剩余空闲资源进行回收,同时,根据更新后的剩余空闲资源、剩余认为量中未被执行的目标算子、算力更新速率表、边缘设备的类型,将剩余任务量中的目标算子重新分配到不同的边缘设备上,以更新剩余任务量与边缘设备的映射关系,进一步缩短边缘设备的计算时间,提高模型的训练效率。
如图2所示,第二方面,本发明实施例还提供目标任务分配装置,该装置包括:
第一拆分单元201,用于将目标任务拆分为不同类型的多个算子;
算子分类单元202,用于根据每个算子支持的处理器的类型,将多个算子划分为第一组数据和第二组数据;第一组数据包括多个AI加速芯片不支持的算子,第二组数据包括多个AI加速芯片支持的算子;
第二拆分单元203,用于根据模型并行机制对第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对第二组数据进行二次拆分,得到第二拆分结果;第一拆分结果和第二拆分结果中包括拆分后的多个目标算子;
数据采集单元204,用于获取每个目标算子的计算资源需求量,以及将每个目标算子分别分配到与服务器连接的多个边缘设备上的计算时限;
第一计算单元205,用于根据计算资源需求量和计算时限确定每个目标算子在每个边缘设备上的资源变化速率,得到算力更新速率表;
第二计算单元206,用于根据每个边缘设备的计算资源总量、启动时长以及在启动时长内的资源变化速率,确定每个边缘设备的剩余空闲资源量;
匹配关系确定单元207,用于根据算力更新速率表、每个边缘设备的设备类型、每个边缘设备的剩余空闲资源量、以及每个目标算子的计算资源需求量,确定每个目标算子对应的边缘设备,得到多个目标算子和多个边缘设备的映射关系;
算力匹配单元208,用于根据映射关系将目标算子分配到多个边缘设备上。
进一步的,在根据模型并行机制对第一组数据进行二次拆分,得到第一拆分结果时,第二拆分单元203被配置为执行:
根据第一组数据中的每个算子的数据规模与第一预设值的大小,将数据规模大于或等于第一预设值的算子作为第二算子,将数据规模小于第一预设值的算子作为第三算子;
根据模型并行机制将第二算子拆分为多个第四算子;
根据第三算子和第四算子,得到第一组数据对应的第一拆分结果。
进一步的,在根据数据并行机制对第二组数据进行二次拆分,得到第二拆分结果时,第二拆分单元203被配置为执行:
根据第二组数据中每个算子的数据规模与第二预设值的大小,将数据规模大于或等于第二预设值的算子作为第五算子,将数据规模小于第二预设值的算子作为第六算子;
根据数据并行机制将第五算子拆分为多个第七算子;
根据第六算子和第七算子,得到第二组数据对应的第二拆分结果。
进一步的,在确定每个目标算子在每个边缘设备上的资源变化速率时,第一计算单元205具体被配置为执行:
根据如下公式计算每个目标算子在每个边缘设备上的资源变化速率:
,
其中,0n+1,n表示目标算子的总数量,/>表示第i个目标算子在第j个边缘设备上的资源变化速率,/>表示第i个目标算子的计算资源需求量,/>表示第i个目标算子被分配到第j个边缘设备对应的计算时限。
进一步的,在确定每个边缘设备的剩余空闲资源量时,第二计算单元206被配置为执行:
根据如下公式计算每个边缘设备的剩余空闲资源量:
,
其中,表示第j个边缘设备的剩余空闲资源量,/>表示第j个边缘设备的计算资源总量,t表示第j个边缘设备的启动时长;/>表示在启动时长内第j个边缘设备上的资源变化速率。
进一步的,设备类型包括支持中央处理器的边缘设备和支持图形处理器的边缘设备;匹配关系确定单元207被配置为执行:
根据算力更新速率表中的每个目标算子在不同的边缘设备的资源变化速率的大小,确定每个目标算子在分配时对应的多个边缘设备的优先级;资源变化速率的大小与边缘设备的优先级成正比;
根据优先级,结合目标算子的计算资源需求量、每个边缘设备的剩余空闲资源量,确定第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系;并确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备,得到第二拆分结果中的每个目标算子与支持图形处理器的边缘设备的映射关系。
进一步的,在根据优先级,结合目标算子的计算资源需求量、每个边缘设备的剩余空闲资源量,确定第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系时,匹配关系确定单元207具体被配置为执行:
将第一拆分结果中资源变化速率最大的目标算子优先分配到优先级最高的支持中央处理器的边缘设备中;
在边缘设备的剩余空闲资源量和分配到边缘设备的目标算子的计算资源需求量总和的差值小于预设阈值时,将优先级第二高的支持中央处理器的边缘设备作为新的优先级最高的支持中央处理器的边缘设备;
在边缘设备的剩余空闲资源量和分配到边缘设备的目标算子的计算资源需求量总和的差值大于预设阈值,且第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,将第一拆分结果中资源变化速率第二大的目标算子作为新的资源变化速率最大的目标算子;
在对第一拆分结果中的每个目标算子分配完成后,得到第一拆分结果中的每个目标算子与支持中央处理器的边缘设备的映射关系。
进一步的,在一种可能的实现方式中,装置还包括更新单元,在根据映射关系将目标算子分配到多个边缘设备上之后,更新单元被配置为执行:
定期更新目标任务的剩余任务量和每个边缘设备的剩余空闲资源量;剩余任务量包括多个未被边缘设备执行的目标算子;
根据剩余空闲资源量、算力更新速率表、每个边缘设备的设备类型以及剩余任务量中的每个目标算子的计算资源需求量,更新剩余任务量与多个边缘设备的映射关系。
本发明能够实时对目标任务与边缘设备的映射关系进行动态调整,进一步提高边缘设备的资源利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
第三方面,本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本发明实施例中的目标任务分配方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现本发明实施例中的目标任务分配方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.目标任务分配方法,其特征在于,所述方法应用于服务器,包括:
将目标任务拆分为不同类型的多个算子;
根据每个所述算子支持的处理器的类型,将多个所述算子划分为第一组数据和第二组数据;所述第一组数据包括多个AI加速芯片不支持的算子,所述第二组数据包括多个AI加速芯片支持的算子;
根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果;所述第一拆分结果和所述第二拆分结果中包括拆分后的多个目标算子;
获取每个所述目标算子的计算资源需求量,以及将每个所述目标算子分别分配到与所述服务器连接的多个边缘设备上的计算时限;
根据所述计算资源需求量和所述计算时限确定每个所述目标算子在每个所述边缘设备上的资源变化速率,得到算力更新速率表;
根据每个所述边缘设备的计算资源总量、启动时长以及在所述启动时长内的资源变化速率,确定每个所述边缘设备的剩余空闲资源量;
根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系;
根据所述映射关系将所述目标算子分配到多个所述边缘设备上。
2.根据权利要求1所述的目标任务分配方法,其特征在于,所述根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,具体包括:
根据所述第一组数据中的每个算子的数据规模与第一预设值的大小,将数据规模大于或等于所述第一预设值的算子作为第二算子,将数据规模小于所述第一预设值的算子作为第三算子;
根据模型并行机制将所述第二算子拆分为多个第四算子;
根据所述第三算子和所述第四算子,得到所述第一组数据对应的第一拆分结果。
3.根据权利要求1所述的目标任务分配方法,其特征在于,所述根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果,具体包括:
根据所述第二组数据中每个算子的数据规模与第二预设值的大小,将数据规模大于或等于所述第二预设值的算子作为第五算子,将数据规模小于所述第二预设值的算子作为第六算子;
根据数据并行机制将所述第五算子拆分为多个第七算子;
根据所述第六算子和所述第七算子,得到所述第二组数据对应的第二拆分结果。
4.根据权利要求1所述的目标任务分配方法,其特征在于,所述确定每个所述目标算子在每个所述边缘设备上的资源变化速率,具体为:
根据如下公式计算每个所述目标算子在每个所述边缘设备上的资源变化速率:
,
其中,0n+1,n表示所述目标算子的总数量,/>表示第i个目标算子在第j个边缘设备上的资源变化速率,/>表示第i个目标算子的计算资源需求量,/>表示第i个目标算子被分配到第j个边缘设备对应的计算时限。
5.根据权利要求4所述的目标任务分配方法,其特征在于,所述确定每个所述边缘设备的剩余空闲资源量,具体为:
根据如下公式计算每个所述边缘设备的剩余空闲资源量:
,
其中,表示第j个边缘设备的剩余空闲资源量,/>表示第j个边缘设备的计算资源总量,t表示第j个边缘设备的启动时长;/>表示在启动时长内第j个边缘设备上的资源变化速率。
6.根据权利要求1所述的目标任务分配方法,其特征在于,所述设备类型包括支持中央处理器的边缘设备和支持图形处理器的边缘设备;根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系,具体包括:
根据所述算力更新速率表中的每个所述目标算子在不同的所述边缘设备的资源变化速率的大小,确定每个所述目标算子在分配时对应的多个所述边缘设备的优先级;所述资源变化速率的大小与所述边缘设备的优先级成正比;
根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系;并确定第二拆分结果中的每个目标算子对应的支持图形处理器的边缘设备,得到所述第二拆分结果中的每个目标算子与所述支持图形处理器的边缘设备的映射关系。
7.根据权利要求6所述的目标任务分配方法,其特征在于,所述根据所述优先级,结合所述目标算子的计算资源需求量、每个所述边缘设备的剩余空闲资源量,确定所述第一拆分结果中的每个目标算子对应的支持中央处理器的边缘设备,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系,具体包括:
将所述第一拆分结果中资源变化速率最大的目标算子优先分配到所述优先级最高的支持中央处理器的边缘设备中;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值小于预设阈值时,将优先级第二高的支持中央处理器的边缘设备作为新的优先级最高的支持中央处理器的边缘设备;
在所述边缘设备的剩余空闲资源量和分配到所述边缘设备的目标算子的计算资源需求量总和的差值大于预设阈值,且所述第一拆分结果中资源变化速率最大的目标算子已全部完成分配后,将所述第一拆分结果中资源变化速率第二大的目标算子作为新的资源变化速率最大的目标算子;
在对所述第一拆分结果中的每个目标算子分配完成后,得到所述第一拆分结果中的每个目标算子与所述支持中央处理器的边缘设备的映射关系。
8.根据权利要求7所述的目标任务分配方法,其特征在于,在根据所述映射关系将所述目标算子分配到多个所述边缘设备上之后,所述方法还包括:
定期更新所述目标任务的剩余任务量和每个所述边缘设备的剩余空闲资源量;所述剩余任务量包括多个未被所述边缘设备执行的所述目标算子;
根据所述剩余空闲资源量、所述算力更新速率表、每个所述边缘设备的设备类型以及所述剩余任务量中的每个目标算子的计算资源需求量,更新所述剩余任务量与多个所述边缘设备的映射关系。
9.目标任务分配装置,其特征在于,所述装置应用于服务器,包括:
第一拆分单元,用于将目标任务拆分为不同类型的多个算子;
算子分类单元,用于根据每个所述算子支持的处理器的类型,将多个所述算子划分为第一组数据和第二组数据;所述第一组数据包括多个AI加速芯片不支持的算子,所述第二组数据包括多个AI加速芯片支持的算子;
第二拆分单元,用于根据模型并行机制对所述第一组数据进行二次拆分,得到第一拆分结果,根据数据并行机制对所述第二组数据进行二次拆分,得到第二拆分结果;所述第一拆分结果和所述第二拆分结果中包括拆分后的多个目标算子;
数据采集单元,用于获取每个所述目标算子的计算资源需求量,以及将每个所述目标算子分别分配到与所述服务器连接的多个边缘设备上的计算时限;
第一计算单元,用于根据所述计算资源需求量和所述计算时限确定每个所述目标算子在每个所述边缘设备上的资源变化速率,得到算力更新速率表;
第二计算单元,用于根据每个所述边缘设备的计算资源总量、启动时长以及在所述启动时长内的资源变化速率,确定每个所述边缘设备的剩余空闲资源量;
匹配关系确定单元,用于根据所述算力更新速率表、每个所述边缘设备的设备类型、每个所述边缘设备的剩余空闲资源量、以及每个所述目标算子的计算资源需求量,确定每个所述目标算子对应的边缘设备,得到多个所述目标算子和多个所述边缘设备的映射关系;
算力匹配单元,用于根据所述映射关系将所述目标算子分配到多个所述边缘设备上。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-8中任一项所述的目标任务分配方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-8中任一项所述的目标任务分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310989113.8A CN116701001B (zh) | 2023-08-08 | 2023-08-08 | 目标任务分配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310989113.8A CN116701001B (zh) | 2023-08-08 | 2023-08-08 | 目标任务分配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116701001A true CN116701001A (zh) | 2023-09-05 |
CN116701001B CN116701001B (zh) | 2023-10-20 |
Family
ID=87843703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310989113.8A Active CN116701001B (zh) | 2023-08-08 | 2023-08-08 | 目标任务分配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701001B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724823A (zh) * | 2024-02-07 | 2024-03-19 | 之江实验室 | 基于声明式语义的多模型工作流描述的任务执行方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993299A (zh) * | 2017-12-29 | 2019-07-09 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
CN111954236A (zh) * | 2020-07-27 | 2020-11-17 | 河海大学 | 一种基于优先级的分层边缘计算卸载方法 |
CN112073452A (zh) * | 2020-05-27 | 2020-12-11 | 河南工程学院 | 一种能源有效和资源受限的移动边缘计算任务分配方法 |
CN113377547A (zh) * | 2021-08-12 | 2021-09-10 | 南京邮电大学 | 一种5g边缘计算环境下计算任务智能卸载和安全保障方法 |
CN113961351A (zh) * | 2021-10-28 | 2022-01-21 | 北京百度网讯科技有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN114519417A (zh) * | 2022-01-20 | 2022-05-20 | 广州杰赛科技股份有限公司 | 一种边缘设备的模型训练方法、装置、设备及介质 |
US20220229701A1 (en) * | 2019-06-28 | 2022-07-21 | Microsoft Technology Licensing, Llc | Dynamic allocation of computing resources |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN114915630A (zh) * | 2021-02-10 | 2022-08-16 | 中国移动通信有限公司研究院 | 基于物联网设备的任务分配方法、网络训练方法及装置 |
CN115017030A (zh) * | 2022-02-22 | 2022-09-06 | 哲库科技(北京)有限公司 | 资源分配方法、装置、电子设备及存储介质 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
CN115600676A (zh) * | 2022-10-08 | 2023-01-13 | 浙江大华技术股份有限公司(Cn) | 深度学习模型推理方法、装置、设备及存储介质 |
CN116089051A (zh) * | 2021-10-31 | 2023-05-09 | 华为技术有限公司 | 一种任务分配方法、装置及系统 |
-
2023
- 2023-08-08 CN CN202310989113.8A patent/CN116701001B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993299A (zh) * | 2017-12-29 | 2019-07-09 | 中兴通讯股份有限公司 | 数据训练方法及装置、存储介质、电子装置 |
US20220229701A1 (en) * | 2019-06-28 | 2022-07-21 | Microsoft Technology Licensing, Llc | Dynamic allocation of computing resources |
CN112073452A (zh) * | 2020-05-27 | 2020-12-11 | 河南工程学院 | 一种能源有效和资源受限的移动边缘计算任务分配方法 |
CN111954236A (zh) * | 2020-07-27 | 2020-11-17 | 河海大学 | 一种基于优先级的分层边缘计算卸载方法 |
CN114915630A (zh) * | 2021-02-10 | 2022-08-16 | 中国移动通信有限公司研究院 | 基于物联网设备的任务分配方法、网络训练方法及装置 |
CN113377547A (zh) * | 2021-08-12 | 2021-09-10 | 南京邮电大学 | 一种5g边缘计算环境下计算任务智能卸载和安全保障方法 |
CN113961351A (zh) * | 2021-10-28 | 2022-01-21 | 北京百度网讯科技有限公司 | 深度学习模型的分布式训练方法、装置、设备及存储介质 |
CN116089051A (zh) * | 2021-10-31 | 2023-05-09 | 华为技术有限公司 | 一种任务分配方法、装置及系统 |
CN114519417A (zh) * | 2022-01-20 | 2022-05-20 | 广州杰赛科技股份有限公司 | 一种边缘设备的模型训练方法、装置、设备及介质 |
CN115017030A (zh) * | 2022-02-22 | 2022-09-06 | 哲库科技(北京)有限公司 | 资源分配方法、装置、电子设备及存储介质 |
CN114840322A (zh) * | 2022-05-17 | 2022-08-02 | 北京百度网讯科技有限公司 | 任务调度方法及装置、电子设备和存储 |
CN115061800A (zh) * | 2022-06-30 | 2022-09-16 | 中国联合网络通信集团有限公司 | 边缘计算任务的处理方法、边缘服务器及存储介质 |
CN115600676A (zh) * | 2022-10-08 | 2023-01-13 | 浙江大华技术股份有限公司(Cn) | 深度学习模型推理方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
ANDREAS KOULOUMPRIS 等: ""Reliability-Aware Task Allocation Latency Optimization in Edge Computing"", 《2019 IEEE 25TH INTERNATIONAL SYMPOSIUM ON ON-LINE TESTING AND ROBUST SYSTEM DESIGN (IOLTS)》 * |
任杰 等: ""面向边缘设备的高能效深度学习任务调度策略"", 《计算机学报》 * |
王丽;郭振华;曹芳;高开;赵雅倩;赵坤;: "面向模型并行训练的模型拆分策略自动生成方法", 计算机工程与科学, no. 09 * |
董思岐;吴嘉慧;李海龙;屈毓锛;胡磊;: "面向优先级任务的移动边缘计算资源分配方法", 计算机工程, no. 03 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724823A (zh) * | 2024-02-07 | 2024-03-19 | 之江实验室 | 基于声明式语义的多模型工作流描述的任务执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116701001B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515739B (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
CN111242282B (zh) | 基于端边云协同的深度学习模型训练加速方法 | |
CN109947565B (zh) | 用于分配计算任务的方法和装置 | |
CN113377540A (zh) | 集群资源调度方法及装置、电子设备和存储介质 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN116701001B (zh) | 目标任务分配方法、装置、电子设备及存储介质 | |
CN114610474B (zh) | 一种异构超算环境下多策略的作业调度方法及系统 | |
US20230244537A1 (en) | Efficient gpu resource allocation optimization method and system | |
CN114356587B (zh) | 算力任务跨区域调度方法、系统及设备 | |
CN110570075A (zh) | 一种电力业务边缘计算任务分配方法及装置 | |
CN111352711A (zh) | 多计算引擎调度方法、装置、设备及存储介质 | |
CN112559147A (zh) | 基于gpu占用资源特点的动态匹配算法、系统和设备 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN110780991A (zh) | 一种基于优先级的深度学习任务调度方法及装置 | |
CN112182111B (zh) | 基于区块链的分布式系统分层处理方法和电子设备 | |
CN117271100A (zh) | 算法芯片集群调度方法、装置、计算机设备和存储介质 | |
CN116560968A (zh) | 一种基于机器学习的仿真计算时间预测方法、系统及设备 | |
CN116647560A (zh) | 物联网计算机集群协调优化控制方法、装置、设备及介质 | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN114090239A (zh) | 一种基于模型的强化学习的边缘资源调度方法和装置 | |
CN111796934A (zh) | 任务下发方法、装置、存储介质和电子设备 | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
CN117608862B (zh) | 数据分发控制方法、装置、设备及介质 | |
CN115965070B (zh) | 计算图处理方法、装置、设备、存储介质以及程序产品 | |
CN116980423B (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 |