任务调度训练方法、装置、设备及计算机可读存储介质与流程

文档序号:32100813发布日期:2022-11-09 01:53阅读:163来源:国知局
任务调度训练方法、装置、设备及计算机可读存储介质与流程

1.本发明涉及模型训练技术领域,尤其涉及一种任务调度训练方法、装置、设备以及计算机可读存储介质。


背景技术:

2.目前,常用的深度学习异构计算通常采用以下两种方案:第一种方案:cpu(central processing unit,中央处理器)+gpu(graphics processing unit,图形处理器),通过控制gpu处理并行计算任务,通过控制cpu处理串行计算任务。第二种方案:cpu+fpga(field programmable gate array,现场可编程逻辑门阵列),通过控制fpga处理并行计算任务,通过控制cpu处理处理控制逻辑等串行计算任务。然而这两种方案都只是将任务简单分为并行计算任务和串行计算任务,没有考虑模型训练(如深度学习模型训练)过程中产生的大量矩阵计算任务,对矩阵计算任务没有针对性的处理,造成模型训练效率低。


技术实现要素:

3.本发明的主要目的在于提供一种任务调度训练方法、装置、设备及计算机可读存储介质,旨在解决如何解决如何提高模型训练的效率的技术问题。
4.为实现上述目的,本发明提供一种任务调度训练方法,包括以下步骤:
5.对待训练模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务,其中,所述子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务;
6.确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;
7.对各所述计算结果进行整合,并将整合结果作为所述待训练模型的目标模型参数。
8.可选地,确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果的步骤,包括:
9.遍历各所述子任务,确定遍历的子任务的任务类型;
10.根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
11.可选地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
12.若所述任务类型为矩阵计算子任务类型,则确定和所述遍历的子任务对应的目标集群为asic集群,并将所述遍历的子任务发送至所述asic集群;
13.控制所述asic集群对应的集群控制器对所述asic集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
14.可选地,将所述遍历的子任务发送至所述asic集群的步骤之后,包括:
15.确定所述asic集群中是否存在处于空闲状态的第一任务处理器;
16.若存在处于空闲状态的第一任务处理器,则根据所述第一任务处理器执行所述控制所述asic集群中的集群控制器对所述asic集群中所述遍历的子任务进行计算处理的步骤。
17.可选地,确定所述asic集群中是否存在处于空闲状态的第一任务处理器的步骤之后,包括:
18.若不存在处于空闲状态的第一任务处理器,则将所述asic集群中的所述遍历的子任务作为目标任务移动至预设的fpga集群;
19.根据所述fpga集群对应的集群控制器计算所述fpga集群中的目标任务,以获取所述遍历的子任务对应的计算结果。
20.可选地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
21.若所述任务类型为串行计算子任务,则确定和所述遍历的子任务对应的目标集群为cpu集群,并将所述遍历的子任务发送至所述cpu集群;
22.控制所述cpu集群对应的集群控制器对所述cpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
23.可选地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
24.若所述任务类型为并行计算子任务,则确定和所述遍历的子任务对应的目标集群为gpu集群,并将所述遍历的子任务发送至所述gpu集群;
25.控制所述gpu集群对应的集群控制器对所述gpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
26.此外,为实现上述目的,本发明还提供一种任务调度训练装置,包括:
27.获取模块,用于对待训练深度学习模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务,其中,所述子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务;
28.计算模块,用于确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;
29.整合模块,用于对各所述计算结果进行整合,并将整合结果作为所述待训练深度学习模型的目标模型参数。
30.此外,为实现上述目的,本发明还提供一种任务调度训练设备,任务调度训练设备包括存储器、处理器及存储在存储器上并可在处理器上运行的任务调度训练程序,任务调度训练程序被处理器执行时实现如上述的任务调度训练方法的步骤。
31.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有任务调度训练程序,任务调度训练程序被处理器执行时实现如上述的任务调度训练方法的步骤。
32.本发明通过对待训练模型的计算任务进行任务划分,以获取所有子任务,其中,子
任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务,从而实现了在对计算任务进行任务划分时,就先确定各个不同的子任务,而且会根据各个子任务对应的集群对各个子任务进行计算处理,得到计算结果,再将各个计算结果进行整合,并将整合结果作为待训练模型的目标模型参数,综合考虑了不同类型的子任务的计算处理过程,从而避免了现有技术中只针对并行计算任务和串行计算任务进行处理,而没考虑矩阵计算任务,导致模型训练效率低的现象发生,保障了获取到的目标模型参数的准确性,提高了模型训练的效率。
附图说明
33.图1是本发明实施例方案涉及的硬件运行环境的任务调度训练设备结构示意图;
34.图2为本发明任务调度训练方法第一实施例的流程示意图;
35.图3为本发明任务调度训练装置的装置模块示意图;
36.图4为本发明任务调度训练方法中任务划分的流程示意图;
37.图5为本发明任务调度训练方法中矩阵计算子任务的流程处理示意图;
38.图6为本发明任务调度训练方法中模型参数汇聚器的流程示意图;
39.图7为本发明任务调度训练系统的系统结构示意图。
40.本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
41.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
42.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的任务调度训练设备结构示意图。
43.本发明实施例终端为任务调度训练设备。
44.如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
45.可选地,终端还可以包括摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在终端设备移动到耳边时,关闭显示屏和/或背光。当然,终端设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
46.本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
47.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及任务调度训练程序。
48.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的任务调度训练程序,并执行以下操作:
49.对待训练模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务,其中,所述子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务;
50.确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;
51.对各所述计算结果进行整合,并将整合结果作为所述待训练模型的目标模型参数。
52.参照图2,本发明提供一种任务调度训练方法,在任务调度训练方法的第一实施例中,任务调度训练方法包括以下步骤:
53.步骤s10,对待训练模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务,其中,所述子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务;
54.由于目前针对待训练模型(如待训练的深度学习模型)的训练任务(即计算任务)只是简单地进行划分,并没有考虑模型训练过程中产生的矩阵计算任务,对矩阵计算任务并没有具体针对性的处理,从而使得模型训练效率低。因此在本实施例中,是通过结合异构计算技术对待训练的计算任务进行划分,比如可以划分为矩阵计算子任务、并行计算子任务和串行计算子任务,再将不同的计算子任务分配给不同的计算资源进行处理,从而能够实现待训练模型的快速训练。并且在子任务调度过程中,会提前定制asic(application specific integrated circuit,特殊应用集成电路)芯片作为矩阵计算的计算资源,根据不同模型的矩阵计算子任务的数量进行相应配置,并且还能根据需求对fpga(field programmable gate array,现场可编程逻辑门阵列)芯片进行矩阵计算配置,及时扩展矩阵计算资源,保障矩阵计算子任务高效完成。
55.因此,在本实施例中,先确定待训练模型,如待训练深度学习模型,并确定待训练深度学习模型对应的训练数据集,该训练数据集中包含有提前设置的多个训练任务(即计算任务),而这些计算任务可以是根据用户的需求提前进行设置的。然后通过提前设置的子任务划分器对计算任务进行任务划分,得到计算任务对应的所有子任务,如矩阵计算子任务、并行计算子任务和串行计算子任务等。其中,矩阵计算子任务是矩阵相乘的任务。并行计算子任务是可以同时计算多个子任务的任务。串行计算子任务是一次只能计算一个子任务的任务。
56.其中,模型训练,是在深度学习模型结构确定后,对初始化参数不断调节,最终获得一个预测精度高的网络模型的过程。因此在本实施例中,通过异构计算得到模型参数后,就可以认为该模型参数符合待训练模型的要求,即此时待训练模型已训练完成。
57.步骤s20,确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;
58.在获取到计算任务对应的所有子任务后,需要确定各个子任务对应的集群,以便根据各个集群对各个子任务进行计算处理。例如,如图4所示,当子任务划分器根据待训练深度学习模型和训练数据集,将计算任务划分为矩阵计算子任务、并行计算子任务和串行计算子任务后,子任务划分器会将划分后的矩阵计算子任务、并行计算子任务和串行计算
子任务发送给子任务调度器。而且子任务调度器会将串行计算子任务分配给cpu(central processing unit,中央处理器)集群控制器,并且cpu集群控制器会对cpu集群中的cpu芯片的工作状态进行监控,将待分配的串行计算子任务分配给空闲的cpu芯片实施计算,以得到分配的串行计算子任务对应的计算结果。并且子任务调度器会将并行计算子任务分配给gpu(graphics processing unit,图形处理器)集群控制器,gpu控制器会对gpu集群中的gpu芯片的工作状态进行监控,将待分配的并行计算子任务分配给空闲的gpu芯片实施计算,以得到分配的并行计算子任务对应的计算结果。
59.需要说明的是,针对矩阵计算子任务,如图5所示,子任务调度器首先将矩阵计算子任务传送给asic集群控制器,asic集群控制器会将矩阵计算子任务进一步划分为符合定制的asic芯片要求的矩阵计算,并且asic集群控制器监控asic集群中asic芯片的工作状态,确定asic集群中是否有asic芯片处于空闲状态?若否,在asic集群控制器将划分后的矩阵计算任务发送给子任务调度器,子任务调度器将矩阵计算任务发送给fpga集群,并驱动fpga集群配置空闲的fpga芯片,并实施矩阵计算任务,以得到矩阵计算子任务对应的计算结果。若是,asic集群控制器会将划分后的矩阵计算任务发送给空闲的asic芯片,通过空闲的asic芯片进行计算以得到矩阵计算子任务对应的计算结果。
60.步骤s30,对各所述计算结果进行整合,并将整合结果作为所述待训练模型的目标模型参数。
61.当计算得到所有子任务对应的计算结果后,会通过提前设置的模型参数汇聚器对所有的计算结果进行整合,并将整合后的整合结果作为待训练模型的目标模型参数。其中整合方式,可以是直接将所有计算结果汇聚在一起,统一作为模型参数。也可以是对不同的计算结果设置不同的权重,并根据不同的权重计算各个计算结果的和值,将和值作为待训练模型的模型参数。而且本实施例中模型参数汇聚器的工作流程可以如图6所示,模型参数汇聚器接收asic集群、fpga集群、gpu集群和cpu集群的计算结果,并整合四个集群的计算结果,输出最终的深度学习模型参数(即目标模型参数)。
62.并且在本实施例中,会结合异构计算技术,对计算任务进行划分,得到矩阵计算子任务、并行计算子任务和串行计算子任务,不同类型的子任务交给不同的硬件设备进行处理,从而加速待训练模型的训练效率。而且会对asic芯片进行矩阵计算的逻辑定制,重复应用于不同的深度学习训练任务中,提高asic芯片的复用率,同时也可以提高矩阵计算的计算效率。并且当矩阵计算子任务过多,asic芯片无法满足矩阵计算子任务时,可以对fpga芯片进行设置,设置为和asic芯片相同的逻辑编程,以提高异构计算系统的矩阵计算能力,并且fpga芯片可以重复编程,当矩阵计算任务结束后,可以释放资源给其他的计算任务使用。
63.此外,为辅助理解本实施例中进行异构计算的原理的理解,下面针对异构计算系统架构进行举例说明。
64.例如,如图7所示,异构计算系统架构包括子任务划分器、子任务调度器、asic集群控制器、asic集群、fpga集群控制器、fpga集群、gpu集群控制器、gpu集群、cpu集群控制器、cpu集群和模型参数汇聚器。子任务划分器将待训练的深度学习模型在训练数据集中的深度学习训练任务进行划分,并将划分后的子任务发送到子任务调度器。子任务调度器将不同类型的子任务分别发送至asic集群控制器、fpga集群控制器、gpu集群控制器和cpu集群控制器。asic集群控制器对asic集群中的所有asic芯片的工作状态进行监控,以便分配处
于空闲状态的计算资源(即处于空闲状态的asic芯片)对子任务调度器发送的子任务进行处理。fpga集群控制器对fpga集群中的所有fpga芯片的工作状态进行监控,以便分配处于空闲状态的计算资源(即处于空闲状态的fpga芯片)对子任务调度器发送的子任务进行处理。gpu集群控制器对gpu集群中的所有gpu芯片的工作状态进行监控,以便分配处于空闲状态的计算资源(即处于空闲状态的gpu芯片)对子任务调度器发送的子任务进行处理。cpu集群控制器对cpu集群中的所有cpu芯片的工作状态进行监控,以便分配处于空闲状态的计算资源(即处于空闲状态的cpu芯片)对子任务调度器发送的子任务进行处理。并且在本实施例中,当矩阵运算子任务超出asic集群的处理能力时,fpga集群中的fpga芯片会做同样的矩阵运算逻辑设置,以负责超出部分的矩阵计算任务。并且模型参数汇聚器会将asic集群、fpga集群、gpu集群和cpu集群的处理结果进行整合,以得到学习模型参数,并根据学习模型参数确定训练好的深度学习模型。
65.在本实施例中,通过对待训练深度学习模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务;确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;对各所述计算结果进行整合,并将整合结果作为所述待训练深度学习模型的模型参数。
66.本实施例通过对待训练模型的计算任务进行任务划分,以获取所有子任务,其中,子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务,从而实现了在对计算任务进行任务划分时,就先确定各个不同的子任务,而且会根据各个子任务对应的集群对各个子任务进行计算处理,得到计算结果,再将各个计算结果进行整合,并将整合结果作为待训练模型的目标模型参数,综合考虑了不同类型的子任务的计算处理过程,从而避免了现有技术中只针对并行计算任务和串行计算任务进行处理,而没考虑矩阵计算任务,导致模型训练效率低的现象发生,保障了获取到的目标模型参数的准确性,提高了模型训练的效率。
67.进一步地,基于上述本发明的第一实施例,提出本发明任务调度训练方法的第二实施例,在本实施例中,上述实施例步骤s20,确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果的步骤的细化,包括:
68.步骤a,遍历各所述子任务,确定遍历的子任务的任务类型;
69.在本实施例中,当获取到计算任务对应的所有子任务后,可以依次遍历各个子任务,并确定遍历的子任务的任务类型。其中,任务类型包括串行计算子任务类型、矩阵计算子任务类型和并行计算子任务类型。并且在本实施例中,在对计算任务进行任务划分时,就可以根据提前设置的任务类型进行划分。
70.步骤b,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
71.当确定遍历的子任务的任务类型后,就可以直接根据该任务类型来确定遍历的子任务对应的目标集群。例如,若任务类型为矩阵计算子任务类型,则遍历的子任务为矩阵计算子任务,此时遍历的子任务对应的目标集群为asic集群,然后根据asic集群对应的集群控制器对遍历的子任务进行计算处理,如矩阵相乘处理,以得到其计算结果,并将该计算结果作为遍历的子任务对应的计算结果。
72.若任务类型为串行计算子任务类型,则遍历的子任务为串行计算子任务,此时遍历的子任务对应的目标集群为cpu集群,然后再根据cpu集群对应的集群控制器对遍历的子任务进行计算处理,得到对应的计算结果,即遍历的子任务对应的计算结果。
73.若任务类型为并行计算子任务类型,则遍历的子任务为并行计算子任务,此时遍历的子任务对应的目标集群为gpu集群,然后再根据gpu集群对应的集群控制器对遍历的子任务进行计算处理,得到对应的计算结果,即遍历的子任务对应的计算结果。
74.在本实施例中,通过遍历各个子任务,根据遍历的子任务的任务类型确定目标集群,并根据目标集群对遍历的子任务进行计算处理,以获取遍历的子任务对应的计算结果,从而保障了获取到的计算结果的准确性。
75.具体地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
76.步骤c,若所述任务类型为矩阵计算子任务类型,则确定和所述遍历的子任务对应的目标集群为asic集群,并将所述遍历的子任务发送至所述asic集群;
77.在本实施例中,当经过判断发现任务类型为矩阵计算子任务类型时,此时就可以确定遍历的子任务为矩阵计算子任务,遍历的子任务对应的目标集群为asic集群。其中asic集群中有提前设置好的多个第一任务处理器(如asic芯片),子任务调度器会将遍历的子任务发送至asic集群。
78.步骤d,控制所述asic集群对应的集群控制器对所述asic集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
79.当asic集群接收到遍历的子任务后,且检测到asic集群中存在处于空闲状态的asic芯片时,会先确定asic集群对应的集群控制器,并控制该集群控制器对asic集群中接收到的遍历的子任务进行计算处理,如矩阵相乘处理,以得到其计算结果,并将此计算结果作为遍历的子任务对应的计算结果。
80.在本实施例中,通过在任务类型为矩阵计算子任务类型时,确定目标集群为asic集群,并将遍历的子任务发送至asic集群,控制asic集群对应的控制器对遍历的子任务进行计算处理,以获取遍历的子任务对应的计算结果,从而保障了获取到的计算结果的准确性。
81.具体地,将所述遍历的子任务发送至所述asic集群的步骤之后,包括:
82.步骤e,确定所述asic集群中是否存在处于空闲状态的第一任务处理器;
83.在本实施例中,当将遍历的子任务发送至asic集群后,会对asic集群中的所有第一任务处理器的状态进行监控,以确定asic集群中是否存在处于空闲状态的第一任务处理器,并根据不同的确定结果进行不同的操作。其中,空闲状态是未进行工作的状态。第一任务处理器是用于处理asic集群中的任务的,如asic芯片。
84.步骤f,若存在处于空闲状态的第一任务处理器,则根据所述第一任务处理器执行所述控制所述asic集群对应的集群控制器对所述asic集群中所述遍历的子任务进行计算处理的步骤。
85.当经过判断发现存在处于空闲状态的第一任务处理器时,则可以确定asic集群可以处理该遍历的子任务,此时可以再次对asic集群中接收的遍历的子任务的格式进行调
整,调整为符合asic集群对应的集群控制器进行运算的格式,然后再通过asic集群对应的集群控制器根据处于空闲状态的asic芯片对asic集群中接收的遍历的子任务进行处理,得到对应的计算结果。
86.在本实施例中,通过确定asic集群中存在处于空闲状态的第一任务处理器时,根据第一任务处理器执行对遍历的子任务进行计算处理的步骤,从而保障了计算处理的有效进行。
87.具体地,确定所述asic集群中是否存在处于空闲状态的第一任务处理器的步骤之后,包括:
88.步骤g,若不存在处于空闲状态的第一任务处理器,则将所述asic集群中的所述遍历的子任务作为目标任务移动至预设的fpga集群;
89.当经过判断发现不存在处于空闲状态的第一任务处理器,则可以确定asic集群无法支持执行遍历的子任务进行的计算运算过程,此时就可以将此遍历的子任务作为目标任务返回至子任务调度器,再通过子任务调度器发送至提前设置的fpga集群中。
90.步骤h,根据所述fpga集群对应的集群控制器计算所述fpga集群中的目标任务,以获取所述遍历的子任务对应的计算结果。
91.当在fpga集群中接收到目标任务后,且发现存在处于空闲状态的fpga芯片,可以直接根据fpga集群对应的集群控制器通过处于空闲状态的fpga芯片来计算fpga集群中接收到的目标任务,得到目标任务对应的计算结果,并将此计算结果作为遍历的子任务对应的计算结果。其中,fpga集群中处于空闲状态的fpga芯片的运行逻辑和asic集群中的asic芯片的运行逻辑相同。
92.在本实施例中,通过在确定不存在处于空闲状态的第一任务处理器,将遍历的子任务作为目标任务移动至fpga集群,根据fpga集群对应的集群控制器进行计算,以得到计算结果,从而保障了获取到的计算结果的准确性。
93.进一步地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
94.步骤k,若所述任务类型为串行计算子任务类型,则确定和所述遍历的子任务对应的目标集群为cpu集群,并将所述遍历的子任务发送至所述cpu集群;
95.当经过判断发现任务类型为串行计算子任务类型时,此时就可以确定遍历的子任务为串行计算子任务,遍历的子任务对应的目标集群为cpu集群。其中cpu集群中有提前设置好的多个第二任务处理器(如cpu芯片),子任务调度器会将遍历的子任务发送至cpu集群。
96.步骤m,控制所述cpu集群对应的集群控制器对所述cpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
97.当cpu集群接收到遍历的子任务后,且检测到cpu集群中存在处于空闲状态的cpu芯片时,会先确定cpu集群对应的集群控制器,并控制该集群控制器对cpu集群中接收到的遍历的子任务进行计算处理,以得到其计算结果,并将此计算结果作为遍历的子任务对应的计算结果。
98.在本实施例中,通过在确定任务类型为串行计算子任务时,将遍历的子任务发送
至cpu集群,通过控制cpu集群对应的集群控制器对cpu集群中遍历的子任务进行计算处理,而不是如同现有技术中直接调用cpu进行处理,从而保障了获取到的计算结果的准确性。
99.进一步地,根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果的步骤,包括:
100.步骤x,若所述任务类型为并行计算子任务类型,则确定和所述遍历的子任务对应的目标集群为gpu集群,并将所述遍历的子任务发送至所述gpu集群;
101.当经过判断发现任务类型为并行计算子任务类型时,此时就可以确定遍历的子任务为并行计算子任务,遍历的子任务对应的目标集群为gpu集群。其中gpu集群中有提前设置好的多个第三任务处理器(如gpu芯片),子任务调度器会将遍历的子任务发送至gpu集群。
102.步骤y,控制所述gpu集群对应的集群控制器对所述gpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
103.当gpu集群接收到遍历的子任务后,且检测到gpu集群中存在处于空闲状态的gpu芯片时,会先确定gpu集群对应的集群控制器,并控制该集群控制器对gpu集群中接收到的遍历的子任务进行计算处理,以得到其计算结果,并将此计算结果作为遍历的子任务对应的计算结果。
104.在本实施例中,通过在确定任务类型为并行计算子任务时,将遍历的子任务发送至gpu集群,通过控制gpu集群对应的集群控制器对gpu集群中遍历的子任务进行计算处理,而不是如同现有技术中直接调用gpu进行处理,从而保障了获取到的计算结果的准确性。
105.此外,参照图3,本发明实施例还提供一种任务调度训练装置,包括:
106.获取模块a10,用于对待训练深度学习模型的计算任务进行任务划分,以获取所述计算任务对应的所有子任务,其中,所述子任务为并行计算子任务、或串行计算子任务、或矩阵计算子任务;
107.计算模块a20,用于确定各所述子任务对应的集群,并根据各所述集群对各所述子任务进行计算处理,以获取各所述子任务对应的计算结果;
108.整合模块a30,用于对各所述计算结果进行整合,并将整合结果作为所述待训练深度学习模型的目标模型参数。
109.可选地,计算模块a20,用于:
110.遍历各所述子任务,确定遍历的子任务的任务类型;
111.根据所述任务类型确定和所述遍历的子任务对应的目标集群,并根据所述目标集群对所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
112.可选地,计算模块a20,用于:
113.若所述任务类型为矩阵计算子任务类型,则确定和所述遍历的子任务对应的目标集群为asic集群,并将所述遍历的子任务发送至所述asic集群;
114.控制所述asic集群对应的集群控制器对所述asic集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
115.可选地,计算模块a20,用于:
116.确定所述asic集群中是否存在处于空闲状态的第一任务处理器;
117.若存在处于空闲状态的第一任务处理器,则根据所述第一任务处理器执行所述控制所述asic集群中的集群控制器对所述asic集群中所述遍历的子任务进行计算处理的步骤。
118.可选地,计算模块a20,用于:
119.若不存在处于空闲状态的第一任务处理器,则将所述asic集群中的所述遍历的子任务作为目标任务移动至预设的fpga集群;
120.根据所述fpga集群对应的集群控制器计算所述fpga集群中的目标任务,以获取所述遍历的子任务对应的计算结果。
121.可选地,计算模块a20,用于:
122.若所述任务类型为串行计算子任务,则确定和所述遍历的子任务对应的目标集群为cpu集群,并将所述遍历的子任务发送至所述cpu集群;
123.控制所述cpu集群对应的集群控制器对所述cpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
124.可选地,计算模块a20,用于:
125.若所述任务类型为并行计算子任务,则确定和所述遍历的子任务对应的目标集群为gpu集群,并将所述遍历的子任务发送至所述gpu集群;
126.控制所述gpu集群对应的集群控制器对所述gpu集群中所述遍历的子任务进行计算处理,以获取所述遍历的子任务对应的计算结果。
127.其中,任务调度训练装置的各个功能模块实现的步骤可参照本发明任务调度训练方法的各个实施例,此处不再赘述。
128.此外,本发明还提供一种任务调度训练设备,所述终端包括:存储器、处理器、通信总线以及存储在所述存储器上的任务调度训练程序:
129.所述通信总线用于实现处理器和存储器之间的连接通信;
130.所述处理器用于执行所述任务调度训练程序,以实现上述任务调度训练方法各实施例的步骤。
131.本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任务调度训练方法各实施例的步骤。
132.本发明计算机可读存储介质具体实施方式与上述任务调度训练方法各实施例基本相同,在此不再赘述。
133.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
134.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
135.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
136.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1