基于异构计算系统的模型训练耗时预测方法、设备及系统与流程
未命名
09-13
阅读:98
评论:0
1.本发明涉及神经网络领域,特别涉及一种基于异构计算系统的模型训练耗时预测方法、设备及系统。
背景技术:
2.随着神经网络模型规模的不断增大,该模型的训练难度及复杂度在不断提升。为对大规模模型进行有效训练,一般可利用分布式计算系统对该模型进行分布式训练。而为方便对模型训练过程及分布式计算系统进行优化,相关技术中通常需要对神经网络模型在分布式计算系统中的训练耗时进行预测。然而,相关技术无法准确地预测对异构计算系统(一种包含有多类型计算设备的分布式计算系统)训练神经网络模型所需耗时,且利用完整的异构计算系统实际运行大规模分布式训练并对耗时进行测量也容易带来较大的时间成本及算力成本,进而不利于模型训练过程及异构计算系统的优化。
技术实现要素:
3.本发明的目的是提供一种基于异构计算系统的模型训练耗时预测方法、设备及系统,可利用与异构计算系统对应的多个简化的子计算系统,对各类型计算设备训练目标模型对应的耗时信息及数据传输量进行实际测量,从而可以较低成本利用实测数据、异构计算系统中的各计算设备间的通信带宽及数学建模方式对异构计算系统训练目标模型的耗时进行准确预测。
4.为解决上述技术问题,本发明提供一种基于异构计算系统的模型训练耗时预测方法,包括:获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各所述计算设备类型对应的训练数据量及所述异构计算系统中的各计算设备间的通信带宽;设置各计算设备类型对应的子计算系统,并利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据;各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;控制各所述子计算系统利用所述训练数据对所述目标模型共同进行多轮迭代训练,并对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时。
5.可选地,所述对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,包括:当确定各所述子计算系统已共同完成预设数量的迭代训练时,对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
6.可选地,所述获取所述异构计算系统中的各计算设备间的通信带宽,包括:获取所述异构计算系统中的各计算设备间的网络地址信息;
根据所述网络地址信息对所述异构计算系统中的各计算设备间的通信带宽进行测量。
7.可选地,所述根据所述网络地址信息对所述异构计算系统中的各计算设备间的通信带宽进行测量,包括:根据所述网络地址信息,利用网络测试工具对所述异构计算系统中的各计算设备间的通信带宽进行测量。
8.可选地,所述获取所述异构计算系统中的各计算设备间的通信带宽,包括:接收输入的所述异构计算系统中的各计算设备间的通信带宽。
9.可选地,所述设置各计算设备类型对应的子计算系统,包括:针对每种计算设备类型,从所述异构计算系统中选择多个目标计算设备;利用各所述计算设备类型对应的目标计算设备,设置各所述计算设备类型对应的子计算系统。
10.可选地,各所述子计算系统包含两个同类型的计算设备。
11.可选地,所述利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据,包括:从所述训练集中随机抽取所述训练数据量的数据作为所述训练数据。
12.可选地,所述对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,包括:利用模型性能分析工具对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
13.可选地,所述获取目标模型,包括:接收以代码形式输入的所述目标模型,并利用预设脚本解析所述目标模型。
14.可选地,所述目标模型基于环状全规约模式训练,所述将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时,包括:将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统中的各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时;将所述单次迭代耗时中的最大值作为所述异构计算系统对所述目标模型执行单次迭代所需的单次迭代总耗时;基于所述单次迭代总耗时确定所述异构计算系统训练所述目标模型的预测耗时。
15.可选地,所述耗时信息包括数据处理耗时及计算耗时,所述数据处理耗时为中央处理器向对应计算设备执行训练数据下发动作的耗时,所述计算耗时包括所述计算设备执行前向反向计算的耗时。
16.可选地,所述将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统中的各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时,包括:利用从相同所述子计算系统中记录的数据处理耗时及计算耗时,确定所述子计算系统所属的计算设备类型对应的数据处理耗时均值及计算耗时均值,并利用各所述计算设
备类型对应的数据处理耗时均值及计算耗时均值,确定所述异构计算系统中各计算设备的数据处理耗时及计算耗时;利用所述数据传输量确定数据传输量均值,并利用所述数据传输量均值、所述通信带宽及所述异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时;利用所述异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定所述异构计算系统中各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时。
17.可选地,所述训练数据下发动作与所述前向反向计算和所述环状全规约操作并行执行,所述利用所述异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定所述异构计算系统中各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时,包括:根据所述计算设备的计算耗时和环状全规约操作耗时,确定所述计算设备的设备处理耗时;将所述数据处理耗时与所述设备处理耗时中的最大值作为所述计算设备对所述目标模型执行单次迭代所需的单次迭代耗时。
18.可选地,所述根据所述计算设备的计算耗时和环状全规约操作耗时,确定所述计算设备的设备处理耗时,包括:从所述计算耗时中提取所述计算设备执行前向计算的前向计算总耗时及执行首次后向计算的后向计算耗时;利用所述前向计算总耗时、所述后向计算耗时及各所述计算设备的环状全规约操作耗时,确定所述计算设备的设备处理耗时。
19.可选地,所述利用所述数据传输量均值、所述通信带宽及所述异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时,包括:根据所述环状全规约操作顺序,确定与所述计算设备执行环状全规约操作的相邻计算设备;利用所述数据传输量均值及所述计算设备与所述相邻计算设备间的通信带宽,确定所述计算设备与所述相邻计算设备执行单次环状全规约操作的耗时;利用所述异构计算系统包含的计算设备数量确定所述计算设备与所述相邻计算设备执行所述环状全规约操作的总次数;利用所述总次数和计算设备与所述相邻计算设备执行单次环状全规约操作的耗时,确定所述计算设备的环状全规约操作耗时。
20.可选地,所述基于所述单次迭代总耗时确定所述异构计算系统训练所述目标模型的预测耗时,包括:根据所述训练集的总数据量、各所述计算设备类型对应的训练数据量、所述异构计算系统中各计算设备执行所述单次迭代所使用的小批量训练数据量及所述异构计算系统包含的计算设备数量,确定异构计算系统利用所述训练集完整训练所述目标模型所需的单次迭代次数;
利用所述单次迭代次数及所述单次迭代总耗时确定所述异构计算系统利用所述训练集完整训练所述目标模型的预测耗时。
21.可选地,在利用所述单次迭代次数及所述单次迭代总耗时确定所述异构计算系统利用所述训练集完整训练所述目标模型的预测耗时之后,还包括:利用所述预测耗时确定所述异构计算系统利用所述训练集多次完整训练所述目标模型的预测总耗时。
22.本发明还提供一种基于异构计算系统的模型训练耗时预测装置,包括:信息收集模块,用于获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各所述计算设备类型对应的训练数据量及所述异构计算系统中的各计算设备间的通信带宽;任务分配模块,用于设置各计算设备类型对应的子计算系统,并利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据;各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;数据收集模块,用于控制各所述子计算系统利用所述训练数据对所述目标模型共同进行多轮迭代训练,并对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;耗时预测模块,用于将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时。
23.本发明还提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的基于异构计算系统的模型训练耗时预测方法。
24.本发明还提供一种基于异构计算系统的模型训练耗时预测系统,包括:电子设备及多个子计算系统,多个所述子计算系统根据异构计算系统中包含的各计算设备类型设置,各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;所述电子设备,用于执行如上所述的基于异构计算系统的模型训练耗时预测方法;所述多个子计算系统,用于在所述电子设备的控制下利用训练数据对目标模型共同进行多轮迭代训练。
25.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的基于异构计算系统的模型训练耗时预测方法。
26.本发明提供一种基于异构计算系统的模型训练耗时预测方法,包括:获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各所述计算设备类型对应的训练数据量及所述异构计算系统中的各计算设备间的通信带宽;设置各计算设备类型对应的子计算系统,并利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据;各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的
数量小于其在所述异构计算系统中的数量;控制各所述子计算系统利用所述训练数据对所述目标模型共同进行多轮迭代训练,并对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时。
27.本发明的有益效果在于:本发明首先将获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各计算设备类型对应的训练数据量及异构计算系统中的各计算设备间的通信带宽,并可设置与各计算设备类型对应的子计算系统,以及利用训练数据量及训练集为各子计算系统中的计算设备分配训练数据,其中各子计算系统包含多个同类型的计算设备,计算设备在子计算系统中的数量小于其在异构计算系统中的数量。换句话说,本发明可根据异构计算系统的相关信息,设置多个简化的子计算系统。随后,本发明可控制各子计算系统利用训练数据对目标模型共同进行多轮迭代训练,并对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,即可将实际要训练的目标模型部署至上述多个简化的子计算系统中,并控制这些子计算系统利用实际的训练数据对该目标模型共同进行多轮迭代训练,以记录各类型的计算设备在训练该目标模型时的实际耗时情况及数据传输量。最后,本发明可将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统训练目标模型的预测耗时,即可利用各类型的计算设备在训练该目标模型过程中产生的实测数据、异构计算系统中各计算设备间的网络通信状况及数据建模方式,以较低成本对异构计算系统训练目标模型所需耗时进行准确预测,从而能够解决相关技术无法准确预测基于异构计算系统预测训练模型训练所需耗时的缺陷。本发明还提供一种基于异构计算系统的模型训练耗时预测装置、电子设备、系统及计算机可读存储介质,具有上述有益效果。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
29.图1为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测方法的流程图;图2为本发明实施例所提供的一种环状全规约模式的示意图;图3为本发明实施例所提供的一种单次迭代耗时的示意图;图4为本发明实施例所提供的另一种单次迭代耗时的示意图;图5为本发明实施例所提供的另一种基于异构计算系统的模型训练耗时预测方法的流程图;图6为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测装置的结构框图;图7为本发明实施例所提供的一种电子设备的结构框图;图8为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测系统的结构框图。
具体实施方式
30.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.随着神经网络模型规模的不断增大,神经网络模型的训练难度及复杂度在不断提升。为对大规模模型进行有效训练,一般可利用分布式计算系统对该模型进行分布式训练。而为方便对模型训练过程及分布式计算系统进行优化,相关技术中通常需要对神经网络模型在分布式计算系统中的训练耗时进行预测。然而,相关技术无法准确地预测对异构计算系统(一种包含有多类型计算设备的分布式计算系统)训练神经网络模型所需耗时,且利用完整的异构计算系统实际运行大规模分布式训练并对耗时进行测量也容易带来较大的时间成本及算力成本。有鉴于此,本发明实施例可提供一种基于异构计算系统的模型训练耗时预测方法,可利用与异构计算系统对应的多个简化的子计算系统,对各类型计算设备训练目标模型对应的耗时信息及数据传输量进行实际测量,从而可以较低成本利用实测数据、异构计算系统中的各计算设备间的通信带宽及数学建模方式对异构计算系统训练该目标模型的耗时进行准确预测。
32.需要说明的是,本发明实施例并不限定执行本方法的具体硬件设备,可以为个人电脑、服务器等,可根据实际应用需求进行设定。
33.请参考图1,图1为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测方法的流程图,该方法可以包括:s100、获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各计算设备类型对应的训练数据量及异构计算系统中的各计算设备间的通信带宽。
34.本发明实施例主要收集的信息可分为三类:训练任务信息、硬件配置信息及硬件网络信息。其中,训练任务信息可包含目标模型及训练集,目标模型为异构计算系统实际要训练的模型,包含有模型中各层的细节、激活函数等;训练集包含训练该目标模型所需的训练数据。当然,训练任务信息中也可进一步包含训练方式信息,该训练方式信息为训练该目标模型所需的信息,如损失函数、训练模式、优化算法等,从而可依照训练方式信息对模型训练过程进行更详尽的配置。硬件配置信息可包含异构计算系统中包含的各计算设备类型及各计算设备类型对应的训练数据量。硬件网络信息具体为异构计算系统中的各计算设备间的通信带宽。需要说明的是,本发明实施例并不限定具体的计算设备类型,例如可以为cpu(中央处理器)、gpu(显卡)、fpga(field programmable gate array,现场可编程门阵列)等,也可以进一步包含细分类别,如进一步包含gpu的不同型号。
35.进一步,需要说明的是,本发明实施例并不限定上述信息的具体获取方式,例如既可以接收用户通过手动输入的方式输入上述信息,也可以通过代码解析、实际测量等方式获取上述信息。具体的,对于目标模型,既可以接收用户手动配置输入的目标模型,也可以接收以代码形式输入的目标模型(如利用人工智能计算框架tensorflow、pytorch等编写的代码文件),并利用预设脚本解析目标模型。当然,若训练任务信息中进一步包含训练方式信息,则该信息也可采用手动配置输入或代码形式输入的方式进行输入。又例如,对于异构计算系统中的各计算设备间的通信带宽,既可以接收输入的异构计算系统中的各计算设备
间的通信带宽,也可根据各计算设备的通信地址,对各计算设备间的通信带宽进行测量。
36.基于此,获取异构计算系统中的各计算设备间的通信带宽,可以包括:s101:获取异构计算系统中的各计算设备间的网络地址信息。
37.s102:根据网络地址信息对异构计算系统中的各计算设备间的通信带宽进行测量。
38.具体的,本发明实施例可利用网络测试工具(如iperf)进行测量,具体的测量过程可参考网络测试工具的相关技术。
39.基于此,根据网络地址信息对异构计算系统中的各计算设备间的通信带宽进行测量,可以包括:s1021:根据网络地址信息,利用网络测试工具对异构计算系统中的各计算设备间的通信带宽进行测量。
40.需要指出的是,为方便记录及运算,计算设备间的通信带宽可基于邻接矩阵进行记录,例如矩阵中的每一行可以表示为:(算力ip1, 算力ip2, )其中算力即表示计算设备,ip为该计算设备的网络地址,表示计算设备间的通信带宽。
41.s200、设置各计算设备类型对应的子计算系统,并利用训练数据量及训练集为各子计算系统中的计算设备分配训练数据;各子计算系统包含多个同类型的计算设备,计算设备在子计算系统中的数量小于其在异构计算系统中的数量。
42.在完成对目标模型的相关信息及异构计算系统的相关信息的收集之后,本发明实施例首先将根据异构计算系统中包含的多种计算设备类型,设置与各计算设备类型对应的子计算系统。子计算系统由多个同类型的计算设备组成,且计算设备在子计算系统中的数量小于其在异构计算系统中的数量。同时,这些子计算系统需共同工作,以基于分布式训练方式共同对目标模型进行训练测试。随后,本发明实施例可根据各计算设备类型对应的训练数据量,利用训练数据量各子计算系统中的计算设备分配训练数据,以将目标模型及训练数据下发至各个子计算系统,并控制这些子计算系统对目标模型进行训练测试。换句话说,这多个子计算系统为异构计算系统的简化版本,本发明实施例可利用这些子计算系统以较小的开支对异构计算系统训练目标模型的具体耗时及计算设备间的数据传输量进行实际测量,从而可根据这些实测的耗时信息及数据传输量来对异构计算系统训练目标模型的耗时进行预测。
43.值得指出的是,由于本发明实施例可采用多个简化的子计算系统对训练目标模型所产生的耗时信息及数据传输量进行实际测量,并可利用实测数据进行耗时预测,且子计算系统的复杂度低于异构计算系统的复杂度,子计算系统所需计算设备的数量远小于异构计算系统所需计算设备的数量,即子计算系统的搭建及调整难度显著低于完整的异构计算系统的搭建及调整难度,因此本发明可在不利用完整的异构计算系统实际运行大规模分布式训练的情况下,仅依赖对子计算系统的测试及数学建模方式,即可准确预测出异构计算系统训练目标模型所需耗时,从而能够降低模型训练耗时预测的时间成本及算力成本,并为模型训练过程及异构计算系统的优化带来便利。此外,相较于纯数学建模方式,本发明实施例已采集了实测数据来考察计算设备的实际工作情况,从而能够融合各计算设备的实际工作情况进行训练耗时预测,进而能够确保预测结果更加贴合异构计算系统的实际工作情
况,以此可提升预测异构计算系统训练目标模型所需耗时的准确度。
44.需要说明的是,本发明实施例并不限定如何设置上述子计算系统,当异构计算系统已搭建完成时,本发明实施例可针对每种计算设备类型,从异构计算系统中选择多个目标计算设备,并利用各计算设备类型对应的目标计算设备,设置各计算设备类型对应的子计算系统;当异构计算系统未完成搭建时,本发明实施例也可根据异构计算系统中包含的计算设备类型,重新搭建对应的子计算系统。
45.基于此,设置各计算设备类型对应的子计算系统,可以包括:s211:针对每种计算设备类型,从异构计算系统中选择多个目标计算设备。
46.s212:利用各计算设备类型对应的目标计算设备,设置各计算设备类型对应的子计算系统。
47.需要说明的是,本发明实施例并不限定各子计算系统中包含的计算设备数量,其至少为两个,当然也可设置其他数量。在子计算系统中设置多个计算设备的目的是方便测量计算设备间的数据传输量,因此为满足测量需求,各子计算系统中至少包含两个同种的计算设备。当然,考虑到在子计算系统中设置两个计算设备可在最节省算力的情况下满足测量要求,因此各子计算系统中同类型的计算设备的数量优选为两个。
48.进一步,本发明实施例并不限定如何分配训练数据,例如可从训练集中随机抽取训练数据量的数据作为训练数据,以确保训练数据足够随机。
49.基于此,利用训练数据量及训练集为各子计算系统中的计算设备分配训练数据,可以包括:s221:从训练集中随机抽取训练数据量的数据作为训练数据。
50.s300、控制各子计算系统利用训练数据对目标模型共同进行多轮迭代训练,并对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
51.在完成多个子计算系统的设置及训练数据的分配之后,本发明可控制各子计算系统利用训练数据对目标模型共同进行多轮迭代训练。而在迭代训练的过程中,本发明实施例将对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,其中耗时信息具体可反映计算设备对目标模型执行单次迭代训练所需的总耗时;数据传输量指计算设备间的数据传输量,这是由于在分布式训练中,需要将各计算设备生成的子训练结果进行汇总,才可得到完整的总训练结果,进而计算设备间需要执行数据传输,以交换子训练结果。
52.需要说明的是,本发明实施例并不限定上述耗时信息及数据传输量的具体记录方式,例如可利用人工智能计算框架(如pytorch、tensorflow等)自带的模型性能分析工具(如profiler)来进行记录,也可自行开发特定的性能分析模块来实现。
53.基于此,对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,可以包括:s311:利用模型性能分析工具对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
54.进一步,需要指出的是,由于模型在最初的迭代中并不能平稳进行训练,容易导致各计算设备对应的耗时信息及数据传输量不准确,进而容易干扰模型训练耗时的预测。因此,在本发明实施例中,还可在确定各子计算系统已共同完成预设数量的迭代训练之后,即
确定模型能够平稳训练之后,再对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。例如,对于总共100次迭代,可仅对各计算设备在执行第20次至第100次迭代时对应的耗时信息及数据传输量进行记录。
55.基于此,对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,可以包括:s321、当确定各子计算系统已共同完成预设数量的迭代训练时,对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
56.s400、将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统训练目标模型的预测耗时。
57.在得到耗时信息、通信带宽及数据传输量之后,本发明实施例便可利用预设数学模型来估计异构计算系统中的各计算设备在进行迭代训练时的耗时及在进行设备间数据传输时的耗时,进而便可对异构计算系统训练目标模型的预测耗时进行有效预测。
58.需要说明的是,本发明实施例并不限定预测数学模型的具体设置方式,其与神经网络模型的具体模型训练模式(例如allreduce全规约、ring-allreduce环状全规约)有关,可根据实际选用的模型训练模式来设置对应的预设数学模型。
59.基于上述实施例,本发明首先将获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各计算设备类型对应的训练数据量及异构计算系统中的各计算设备间的通信带宽,并可设置与各计算设备类型对应的子计算系统,以及利用训练数据量及训练集为各子计算系统中的计算设备分配训练数据,其中各子计算系统包含多个同类型的计算设备,计算设备在子计算系统中的数量小于其在异构计算系统中的数量。换句话说,本发明可根据异构计算系统的相关信息,设置多个简化的子计算系统。随后,本发明可控制各子计算系统利用训练数据对目标模型共同进行多轮迭代训练,并对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,即可将实际要训练的目标模型部署至上述多个简化的子计算系统中,并控制这些子计算系统利用实际的训练数据对该目标模型共同进行多轮迭代训练,以记录各类型的计算设备在训练该目标模型时的实际耗时情况及数据传输量。最后,本发明可将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统训练目标模型的预测耗时,即可利用各类型的计算设备在训练该目标模型过程中产生的实测数据、异构计算系统中各计算设备间的网络通信状况及数据建模方式,以较低成本对异构计算系统训练目标模型所需耗时进行准确预测,从而能够解决相关技术无法准确预测基于异构计算系统预测训练模型训练所需耗时的缺陷。
60.基于上述实施例,下面基于一种具体的模型训练模式,对上述耗时预测的具体过程进行详细介绍。在一种可能的情况中,目标模型基于环状全规约模式训练(ring-allreduce),将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统训练目标模型的预测耗时,可以包括:s401、将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统中的各计算设备对目标模型执行单次迭代所需的单次迭代耗时。
61.为便于理解,请参考图2,图2为本发明实施例提供的一种环状全规约模式的示意图。其中图2左侧为异构计算系统的图示,其包含多个异构的计算设备(又可称为异构算力),这些计算设备可通过服务器内的板间通信方式或服务器间的网络通信方式进行相互
间通信。图2右侧为基于环状全规约模式进行分布式训练的图示,该算法会将多个计算设备组成一个环(如图2中为三个计算设备组成一个环),其中环上的连边代表两个计算节点之间的通信链路。基于这个环,多个计算设备会在每次分布式训练的单次迭代(step)中进行参数同步,从而完成分布式训练。由于在环状全规约模式下,各计算设备将并行执行计算动作及参数同步动作,如计算设备1、2、3同时对目标模型进行前向反向计算,又例如在计算设备1给计算设备2同步参数的同时,计算设备2也在给计算设备3同步参数,计算设备3也在给计算设备1同步参数,同时各计算设备在计算效率、读写速率方面存在差异,即各计算设备执行单次迭代的单次迭代耗时并不相同,因此异构计算系统在对目标模型执行单次迭代的总耗时,事实上等于该计算系统中执行单次迭代最慢的一个计算设备的单次迭代耗时,具体可表示为:;其中,表示各计算设备的单次迭代耗时。也正因如此,针对环状全规约模式下的模型训练耗时预测,本发明实施例首先需要将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统中的各计算设备对目标模型执行单次迭代所需的单次迭代耗时,从而将各计算设备中最大的单次迭代耗时作为异构计算系统的单次迭代总耗时。应当指出的是,上述基于各计算设备的单次迭代耗时来预测异构计算系统的单次迭代总耗时的训练耗时预测方式与环状全规约模式存在强相关关系,即该方式适用于环状全规约模式下的模型训练耗时预测,而不适用于其他训练模式;并且,其他训练模式下的模型训练耗时预测方式也不适用于环状全规约模式。进一步,需要说明的是,由于计算设备在执行单次迭代的过程中包含多个动作,因此为提升预测准确性,耗时信息也可包含计算设备在执行上述各个动作对应的耗时信息。例如,耗时信息可包括数据处理耗时及计算耗时,其中数据处理耗时为中央处理器向计算设备执行训练数据下发动作的耗时,计算耗时包括计算设备执行前向反向计算的耗时。值得指出的是,本发明实施例特别采集了中央处理器向计算设备执行训练数据下发动作的耗时,充分考虑到了中央处理器与计算设备间的实际io情况(输入输出情况)对模型训练耗时的影响。需要说明的是,本发明实施例并不限定中央处理器所执行的训练数据下发动作所包含的具体内容,例如可包含批量数据(batch_size)的抽取、预处理、下发等。本发明实施例也不限定计算设备所执行的前向反向计算所包含的具体内容,例如可包含多次前向计算和多个后向计算。
62.基于上述两种耗时信息,接下来将对异构计算系统中的各计算设备对目标模型执行单次迭代所需的单次迭代耗时的预测过程进行详细介绍。
63.基于此,将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统中的各计算设备对目标模型执行单次迭代所需的单次迭代耗时,可以包括:s4011:利用从相同子计算系统中记录的数据处理耗时及计算耗时,确定子计算系统所属的计算设备类型对应的数据处理耗时均值及计算耗时均值,并利用各计算设备类型对应的数据处理耗时均值及计算耗时均值,确定异构计算系统中各计算设备的数据处理耗时及计算耗时。
64.为提升准确性,本发明实施例可利用从相同子计算系统中记录的数据处理耗时及
计算耗时,确定子计算系统所属的计算设备类型对应的数据处理耗时均值及计算耗时均值。进而,本发明实施例可根据异构计算系统中各计算设备所属的计算设备类型,将对应的数据处理耗时均值及计算耗时均值作为计算设备的数据处理耗时及计算耗时。
65.s4012:利用数据传输量确定数据传输量均值,并利用数据传输量均值、通信带宽及异构计算系统中的各计算设备间的环状全规约操作顺序,确定异构计算系统中的各计算设备的环状全规约操作耗时。
66.同样,为提升准确性,本发明实施例可利用从各计算系统中统计出的数据传输量确定数据传输量均值。进而,由于异构设备中的各计算设备间的环状全规约操作顺序为预设信息,因此本发明实施例可基于该信息确定与某个计算设备执行环状全规约操作的相邻计算设备,进而根据上述数据传输量均值及计算设备与相邻计算设备间的通信带宽,即可确定计算设备与相邻计算设备间执行环状全规约操作的环状全规约操作耗时。
67.基于此,利用数据传输量均值、通信带宽及异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时,可包括:步骤11:根据环状全规约操作顺序,确定与计算设备执行环状全规约操作的相邻计算设备。
68.步骤12:利用数据传输量均值及计算设备与相邻计算设备间的通信带宽,确定计算设备与相邻计算设备执行单次环状全规约操作的耗时。
69.步骤13:利用异构计算系统包含的计算设备数量确定计算设备与相邻计算设备执行环状全规约操作的总次数。
70.步骤14:利用总次数和计算设备与相邻计算设备执行单次环状全规约操作的耗时,确定计算设备的环状全规约操作耗时。
71.具体的,计算设备的环状全规约操作耗时可表示为:;其中,表示计算设备的环状全规约操作耗时,表示数据传输量均值,表示计算设备与相邻计算设备间的通信带宽,表示异构计算系统中计算设备的数量,表示计算设备与相邻计算设备执行环状全规约操作的总次数。
72.s4013:利用异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定异构计算系统中各计算设备对目标模型执行单次迭代所需的单次迭代耗时。
73.在得到了各计算设备的数据处理耗时、计算耗时及环状全规约操作耗时之后,仅需根据训练数据下发动作、前向反向计算及环状全规约操作这三个动作的执行顺序进行建模,即可得到各计算设备对目标模型执行单次迭代所需的单次迭代耗时。
74.下面基于训练数据下发动作、前向反向计算及环状全规约操作这三个动作的具体执行顺序来详细介绍建模过程。在一种可能的情况中,训练数据下发动作与前向反向计算
和环状全规约操作并行执行,利用异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定异构计算系统中各计算设备对目标模型执行单次迭代所需的单次迭代耗时,可以包括:步骤11:根据计算设备的计算耗时和环状全规约操作耗时,确定计算设备的设备处理耗时。
75.步骤12:将数据处理耗时与设备处理耗时中的最大值作为计算设备对目标模型执行单次迭代所需的单次迭代耗时。
76.在本发明实施例中,由于训练数据下发动作与前向反向计算和环状全规约操作的执行主体不同,因此训练数据下发动作可以与前向反向计算和环状全规约操作并行执行,且一般是在计算设备执行本轮前向反向计算及环状全规约操作的同时,中央处理器为计算设备准备及下发下一轮迭代所需的训练数据。可以理解的是,计算设备仅有在完成本轮迭代,并接收到中央处理器下发的下一轮训练数据之后,才可进入下一轮迭代。而由于训练数据下发动作的执行耗时与前向反向计算和环状全规约操作所共同消耗的设备处理耗时可能不同,因此计算设备执行单次迭代的单次迭代耗时,实际等于计算设备的计算耗时和环状全规约操作耗时所组成的设备处理耗时与数据处理耗时中的最大值。
77.进一步,由于计算设备通常需顺序执行多步前向计算及反向计算,而环状全规约操作一般在计算设备完成首次反向计算时,开始与其他反向计算并行执行,因此计算设备的设备处理耗时等于计算设备执行前向计算的前向计算总耗时、执行首次反向计算的反向计算耗时及环状全规约操作耗时的总和。
78.在一种可能的情况中,根据计算设备的计算耗时和环状全规约操作耗时,确定计算设备的设备处理耗时,包括:步骤21:从计算耗时中提取计算设备执行前向计算的前向计算总耗时及执行首次后向计算的后向计算耗时。
79.步骤22:利用前向计算总耗时、后向计算耗时及各计算设备的环状全规约操作耗时,确定计算设备的设备处理耗时。
80.具体的,计算设备的单次迭代耗时可表示为:;其中,表示计算设备执行前向计算的前向计算总耗时,表示计算设备执行首次后向计算的后向计算耗时,表示数据处理耗时(dl,data loading,数据读取),表示表示计算设备的环状全规约操作耗时,表示取与中的最大值。
81.为便于理解,请参考图3及图4,其中图3为本发明实施例所提供的一种单次迭代耗
时的示意图,图4为本发明实施例所提供的另一种单次迭代耗时的示意图。从图中可以看到,每个迭代必然会包含。但是,每个迭代的结束取决于环状全规约操作过程以及数据读取过程。在一些情况下,数据读取过程(dl for next,为下一次迭代所进行的数据读取)相对较快(如图3),而在一些情况下,数据读取过程较慢(如图4),因此异构计算系统单次迭代总耗时的计算公式中包含了一个max的公式,用来建模这两种情况的不同。
82.s402、将单次迭代耗时中的最大值作为异构计算系统对目标模型执行单次迭代所需的单次迭代总耗时。
83.s403、基于单次迭代总耗时确定异构计算系统训练目标模型的预测耗时。
84.在确定异构计算系统对目标模型执行单次迭代所需的单次迭代总耗时之后,本发明实施例可根据训练集的总数据量、各计算设备类型对应的训练数据量、异构计算系统中各计算设备执行单次迭代所使用的小批量训练数据量及异构计算系统包含的计算设备数量,确定异构计算系统利用训练集完整训练目标模型(即一个epoch)所需的单次迭代次数,进而可利用单次迭代次数及单次迭代总耗时确定异构计算系统利用训练集完整训练目标模型的预测耗时。
85.基于此,基于单次迭代总耗时确定异构计算系统训练目标模型的预测耗时,包括:s4031:根据训练集的总数据量、各计算设备类型对应的训练数据量、异构计算系统中各计算设备执行单次迭代所使用的小批量训练数据量及异构计算系统包含的计算设备数量,确定异构计算系统利用训练集完整训练目标模型所需的单次迭代次数。
86.s4032:利用单次迭代次数及单次迭代总耗时确定异构计算系统利用训练集完整训练目标模型的预测耗时。
87.除此以外,本发明实施例还可利用该预测耗时确定异构计算系统利用训练集多次完整训练目标模型(即多个epoch)的预测总耗时。
88.基于此,在利用单次迭代次数及单次迭代总耗时确定异构计算系统利用训练集完整训练目标模型的预测耗时之后,还可以包括:s4033:利用预测耗时确定异构计算系统利用训练集多次完整训练目标模型的预测总耗时。
89.基于上述实施例,本发明可在不利用完整的异构计算系统实际运行大规模分布式训练的情况下,仅依赖对子计算系统的测试及数学建模方式,即可准确预测出异构计算系统对目标模型执行单步迭代所需的耗时,从而能够降低模型训练耗时预测的时间成本及算力成本,并为模型训练过程及异构计算系统的优化带来便利。
90.下面基于具体的示例完整介绍上述模型训练耗时预测方法。请参考图5,图5为本发明实施例所提供的另一种基于异构计算系统的模型训练耗时预测方法的流程图,其中a、b、c、d、e、f均为步骤标号。在一种可能的情况中,训练任务需部署在由100个寒武纪mlu370板卡和100个nvidia a100板卡组成的真实异构计算系统中,并用环状全规约模型(ring-allreduce)进行分布式训练。目标模型为resnet50,并需要使用200tb的数据集训练。其中,每个mlu370分配1gb数据集,每个a100也分配1gb数据集。该训练任务还将使用pytorch的人工智能计算框架。该实施例的目的是在实际部署任务之前,预测评估一下这个任务部署后,
单次迭代(step)的耗时。
91.如图5所示,本实施例一共包括5个模块,分别为:i. 分布式训练任务信息收集模块:用于收集需要预测的分布式训练任务的信息。
92.ii. 测试任务分发模块:根据分布式训练任务信息,生成分布式训练子任务,并下发给由需要使用的各种计算设备所组成的子计算系统,用于对各个计算设备进行性能测试。
93.iii.测试结果数据收集模块:收集各个子计算系统的分布式训练子任务运行信息结果。
94.iv.异构计算系统信息收集模块:收集异构计算系统中的信息,用于训练任务耗时的预测。这个异构计算系统可以是真实的异构计算系统,也可以是未构建的待模拟的异构计算系统。因此异构计算系统的信息可以通过测量获得,也可以通过手动输入获得。
95.v. 分布式训练任务耗时预测模块:基于分布式训练子任务的运行信息结果、异构计算系统信息、分布式训练任务信息,并结合本发明定义的分布式训练耗时数学建模,预测该分布式训练任务的耗时,输出预测结果。
96.其中,由于本实施例相关的计算设备包括mlu370和a100,因此本次测试任务使用的子计算系统分别是由mlu370和a100构成的。
97.如图5所示,在训练过程中,整个工作流程以及各个模块的作用如下:a.分布式训练任务收集模块收集分布式训练任务的训练信息resnet50,然后发送给测试任务分发模块。其中,分布式训练任务的训练信息包括:i.训练任务信息:resnet50模型中各层的细节,各层的激活函数,训练模型用的损失函数(loss)、训练集。实施例中该部分通过代码的方式(例如tensorflow、pytorch等代码)进行提交,由脚本进行解析。
98.ii. 硬件配置的信息:硬件配置信息包括:该训练任务调用的计算设备类型为mlu370和a100,每个计算设备分配1gb的数据集。
99.iii.硬件网络信息:该部分信息包括:参与训练的节点数量为200,ring-allredue的环连接具体节点顺序,该训练任务调用的每个mlu370和a100在异构计算系统中的ip信息。
100.b.测试任务分发模块根据收到的分布式训练任务的训练信息,对mlu370和a100各构造一个分布式训练子任务。具体地,对于mlu370和a100的两个分布式训练子任务,它们任务的模型包括原来分布式训练任务的全部细节,使用的训练数据都是由总数据集切分来并随机抽取的2gb数据,每个异构算力分1gb训练数据。这两个分布式训练子任务被发送到相对应的异构算力子系统上,进行运行。
101.c.由mlu370和a100组成的子计算系统,在训练过程中,会发送训练的信息给测试结果数据收集模块。
102.d.测试结果数据收集模块会接收子计算系统的分布式训练子任务运行信息结果,该收集过程使用pytorch内置的模型性能分析器profiler来实现。对于收集的子任务运行信息结果,主要包括:i.数据处理耗时均值:
cpu将一个批量大小(batch_size)的训练数据从存储中读取,做预处理后,传输到gpu的耗时,记为。
103.ii.计算耗时均值:指在一个迭代中,这个子训练任务从迭代开始到最后一个反向计算算子的每个算子计算耗时,记为其中前向算子耗时记为,反向算子耗时记为,代表算子序号。
104.iii.数据传输数据量均值:每次迭代,每个异构算力进行ring-allreduce需要向外传输的数据量记为。
105.以上统计值通过分布式训练子任务的第20到第100个迭代进行统计,然后取平均获得。
106.e.分布式训练任务信息收集模块将之前收集到的分布式训练任务训练信息发送到分布式训练任务耗时预测模块。异构计算系统信息收集模块将异构计算系统中的信息进行收集,并发送至分布式训练任务耗时预测模块。对于异构计算系统中的信息,实施例用一些网络测试工具iperf进行测试,并由异构算力之间的邻接矩阵进行记录,矩阵中的每一行可以表示为:(算力ip1, 算力ip2, )。
107.当然,在一种可能的情况中,还可直接输入待构建异构计算系统的带宽邻接矩阵,矩阵中每一个数据为:(算力ip1, 算力ip2, )。
108.f.分布式训练任务耗时预测模块收集到上述分布式训练任务的训练信息、异构计算系统中的信息、各子计算系统的分布式训练子任务运行信息结果,然后根据本发明中提出的面向异构计算系统中分布式训练任务耗时的数学建模进行该分布式训练任务单个step训练耗时的预测,并输出耗时预测结果。具体计算公式为:;;;这里,根据建模,需要计算200个节点的,然后取最大值,最终获取结果。
109.下面对本发明实施例提供的基于异构计算系统的模型训练耗时预测装置、电子设备、系统及计算机可读存储介质进行介绍,下文描述的模型训练耗时预测装置、电子设备、系统及计算机可读存储介质与上文描述的异构计算系统的模型训练耗时预测方法可相互对应参照。
110.请参考图6,图6为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测装置的结构框图,该装置可以包括:信息收集模块601,用于获取目标模型、训练集、异构计算系统中包含的各计算设
备类型、各计算设备类型对应的训练数据量及异构计算系统中的各计算设备间的通信带宽;任务分配模块602,用于设置各计算设备类型对应的子计算系统,并利用训练数据量及训练集为各子计算系统中的计算设备分配训练数据;各子计算系统包含多个同类型的计算设备,计算设备在子计算系统中的数量小于其在异构计算系统中的数量;数据收集模块603,用于控制各子计算系统利用训练数据对目标模型共同进行多轮迭代训练,并对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;耗时预测模块604,用于将耗时信息、通信带宽、数据传输量输入至预设数学模型进行耗时预测,得到异构计算系统训练目标模型的预测耗时。
111.可选地,数据收集模块603,具体用于:当确定各子计算系统已共同完成预设数量的迭代训练时,对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
112.可选地,信息收集模块601,可以包括:网络地址信息收集子模块,用于获取异构计算系统中的各计算设备间的网络地址信息;带宽测量子模块,用于根据网络地址信息对异构计算系统中的各计算设备间的通信带宽进行测量。
113.可选地,带宽测量子模块,具体用于:根据网络地址信息,利用网络测试工具对异构计算系统中的各计算设备间的通信带宽进行测量。
114.可选地,信息收集模块601,可以包括:带宽输入子模块,用于接收输入的异构计算系统中的各计算设备间的通信带宽。
115.可选地,任务分配模块602,包括:选择子模块,用于针对每种计算设备类型,从异构计算系统中选择多个目标计算设备;设置子模块,用于利用各计算设备类型对应的目标计算设备,设置各计算设备类型对应的子计算系统。
116.可选地,各子计算系统包含两个同类型的计算设备。
117.可选地,任务分配模块602,可以包括:训练数据分配子模块,用于从训练集中随机抽取训练数据量的数据作为训练数据。
118.可选地,数据收集模块603,具体用于:利用模型性能分析工具对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
119.可选地,信息收集模块601,可以包括:模型信息接收子模块,用于接收以代码形式输入的目标模型,并利用预设脚本解析目标模型。
120.可选地,目标模型基于环状全规约模式训练,耗时预测模块604,可以包括:单次迭代耗时预测子模块,用于将耗时信息、通信带宽、数据传输量输入至预设数
学模型进行耗时预测,得到异构计算系统中的各计算设备对目标模型执行单次迭代所需的单次迭代耗时;单次迭代总耗时预测子模块,用于将单次迭代耗时中的最大值作为异构计算系统对目标模型执行单次迭代所需的单次迭代总耗时;预测耗时生成子模块,用于基于单次迭代总耗时确定异构计算系统训练目标模型的预测耗时。
121.可选地,耗时信息包括数据处理耗时及计算耗时,数据处理耗时为中央处理器向对应计算设备执行训练数据下发动作的耗时,计算耗时包括计算设备执行前向反向计算的耗时。
122.可选地,单次迭代耗时预测子模块,可以包括:第一计算单元,用于利用从相同子计算系统中记录的数据处理耗时及计算耗时,确定子计算系统所属的计算设备类型对应的数据处理耗时均值及计算耗时均值,并利用各计算设备类型对应的数据处理耗时均值及计算耗时均值,确定异构计算系统中各计算设备的数据处理耗时及计算耗时;第二计算单元,用于利用数据传输量确定数据传输量均值,并利用数据传输量均值、通信带宽及异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时;第三计算单元,用于利用异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定异构计算系统中各计算设备对目标模型执行单次迭代所需的单次迭代耗时。
123.可选地,训练数据下发动作与前向反向计算和环状全规约操作并行执行,第三计算单元,可以包括:第一计算子单元,用于根据计算设备的计算耗时和环状全规约操作耗时,确定计算设备的设备处理耗时;第二计算子单元,用于将数据处理耗时与设备处理耗时中的最大值作为计算设备对目标模型执行单次迭代所需的单次迭代耗时。
124.可选地,第一计算子单元,具体用于:从计算耗时中提取计算设备执行前向计算的前向计算总耗时及执行首次后向计算的后向计算耗时;利用前向计算总耗时、后向计算耗时及各计算设备的环状全规约操作耗时,确定计算设备的设备处理耗时。
125.可选地,第二计算单元,可以包括:第三计算子单元,用于根据环状全规约操作顺序,确定与计算设备执行环状全规约操作的相邻计算设备;第四计算子单元,用于利用数据传输量均值及计算设备与相邻计算设备间的通信带宽,确定计算设备与相邻计算设备执行单次环状全规约操作的耗时;第五计算子单元,用于利用异构计算系统包含的计算设备数量确定计算设备与相邻计算设备执行环状全规约操作的总次数;第六计算子单元,用于利用总次数和计算设备与相邻计算设备执行单次环状全规
约操作的耗时,确定计算设备的环状全规约操作耗时。
126.可选地,预测耗时生成子模块,可以包括:第四计算单元,用于根据训练集的总数据量、各计算设备类型对应的训练数据量、异构计算系统中各计算设备执行单次迭代所使用的小批量训练数据量及异构计算系统包含的计算设备数量,确定异构计算系统利用训练集完整训练目标模型所需的单次迭代次数;第五计算单元,用于利用单次迭代次数及单次迭代总耗时确定异构计算系统利用训练集完整训练目标模型的预测耗时。
127.可选地,预测耗时生成子模块,还可以包括:第六计算单元,用于利用预测耗时确定异构计算系统利用训练集多次完整训练目标模型的预测总耗时。
128.请参考图7,图7为本发明实施例所提供的一种电子设备的结构框图,本发明实施例提供了一种电子设备70,包括处理器71和存储器72;其中,所述存储器72,用于保存计算机程序;所述处理器71,用于在执行所述计算机程序时执行前述实施例提供的基于异构计算系统的模型训练耗时预测方法。
129.关于上述基于异构计算系统的模型训练耗时预测方法的具体过程可以参考前述实施例中提供的相应内容,在此不再进行赘述。
130.并且,所述存储器72作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
131.另外,所述电子设备70还包括电源73、通信接口74、输入输出接口75和通信总线76;其中,所述电源73用于为所述电子设备70上的各硬件设备提供工作电压;所述通信接口74能够为所述电子设备70创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口75,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
132.请参考图8,图8为本发明实施例所提供的一种基于异构计算系统的模型训练耗时预测系统的结构框图,本发明实施例还提供一种基于异构计算系统的模型训练耗时预测系统,包括:电子设备810及多个子计算系统820,多个子计算系统根据异构计算系统中包含的各计算设备类型设置,各子计算系统包含多个同类型的计算设备821,计算设备821在子计算系统820中的数量小于其在异构计算系统中的数量。
133.电子设备810,用于执行如上所述的基于异构计算系统的模型训练耗时预测方法;多个子计算系统820,用于在电子设备的控制下利用训练数据对目标模型共同进行多轮迭代训练。
134.由于系统部分的实施例与基于异构计算系统的模型训练耗时预测方法部分的实施例相互对应,因此系统部分的实施例请参见基于异构计算系统的模型训练耗时预测方法部分的实施例的描述,这里不再赘述。
135.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的基于异构计算系统的模型训练耗时预测方法的步骤。
136.由于计算机可读存储介质部分的实施例与基于异构计算系统的模型训练耗时预测方法部分的实施例相互对应,因此存储介质部分的实施例请参见基于异构计算系统的模型训练耗时预测方法部分的实施例的描述,这里不再赘述。
137.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
138.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
139.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
140.以上对本发明所提供的基于异构计算系统的模型训练耗时预测方法、设备及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
技术特征:
1.一种基于异构计算系统的模型训练耗时预测方法,其特征在于,包括:获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各所述计算设备类型对应的训练数据量及所述异构计算系统中的各计算设备间的通信带宽;设置各所述计算设备类型对应的子计算系统,并利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据;各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;控制各所述子计算系统利用所述训练数据对所述目标模型共同进行多轮迭代训练,并对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时。2.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,包括:当确定各所述子计算系统已共同完成预设数量的迭代训练时,对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。3.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述获取所述异构计算系统中的各计算设备间的通信带宽,包括:获取所述异构计算系统中的各计算设备间的网络地址信息;根据所述网络地址信息对所述异构计算系统中的各计算设备间的通信带宽进行测量。4.根据权利要求3所述的模型训练耗时预测方法,其特征在于,所述根据所述网络地址信息对所述异构计算系统中的各计算设备间的通信带宽进行测量,包括:根据所述网络地址信息,利用网络测试工具对所述异构计算系统中的各计算设备间的通信带宽进行测量。5.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述获取所述异构计算系统中的各计算设备间的通信带宽,包括:接收输入的所述异构计算系统中的各计算设备间的通信带宽。6.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述设置各所述计算设备类型对应的子计算系统,包括:针对每种计算设备类型,从所述异构计算系统中选择多个目标计算设备;利用各所述计算设备类型对应的目标计算设备,设置各所述计算设备类型对应的子计算系统。7.根据权利要求1所述的模型训练耗时预测方法,其特征在于,各所述子计算系统包含两个同类型的计算设备。8.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据,包括:从所述训练集中随机抽取所述训练数据量的数据作为所述训练数据。9.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录,包括:利用模型性能分析工具对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录。
10.根据权利要求1所述的模型训练耗时预测方法,其特征在于,所述获取目标模型,包括:接收以代码形式输入的所述目标模型,并利用预设脚本解析所述目标模型。11.根据权利要求1至10任一项所述的模型训练耗时预测方法,其特征在于,所述目标模型基于环状全规约模式训练,所述将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时,包括:将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统中的各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时;将所述单次迭代耗时中的最大值作为所述异构计算系统对所述目标模型执行单次迭代所需的单次迭代总耗时;基于所述单次迭代总耗时确定所述异构计算系统训练所述目标模型的预测耗时。12.根据权利要求11所述的模型训练耗时预测方法,其特征在于,所述耗时信息包括数据处理耗时及计算耗时,所述数据处理耗时为中央处理器向对应计算设备执行训练数据下发动作的耗时,所述计算耗时包括所述计算设备执行前向反向计算的耗时。13.根据权利要求12所述的模型训练耗时预测方法,其特征在于,所述将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统中的各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时,包括:利用从相同所述子计算系统中记录的数据处理耗时及计算耗时,确定所述子计算系统所属的计算设备类型对应的数据处理耗时均值及计算耗时均值,并利用各所述计算设备类型对应的数据处理耗时均值及计算耗时均值,确定所述异构计算系统中各计算设备的数据处理耗时及计算耗时;利用所述数据传输量确定数据传输量均值,并利用所述数据传输量均值、所述通信带宽及所述异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时;利用所述异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定所述异构计算系统中各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时。14.根据权利要求13所述的模型训练耗时预测方法,其特征在于,所述训练数据下发动作与所述前向反向计算和所述环状全规约操作并行执行,所述利用所述异构计算系统中各计算设备的数据处理耗时、计算耗时、环状全规约操作耗时,确定所述异构计算系统中各计算设备对所述目标模型执行单次迭代所需的单次迭代耗时,包括:根据所述计算设备的计算耗时和环状全规约操作耗时,确定所述计算设备的设备处理耗时;将所述数据处理耗时与所述设备处理耗时中的最大值作为所述计算设备对所述目标模型执行单次迭代所需的单次迭代耗时。15.根据权利要求14所述的模型训练耗时预测方法,其特征在于,所述根据所述计算设备的计算耗时和环状全规约操作耗时,确定所述计算设备的设备处理耗时,包括:
从所述计算耗时中提取所述计算设备执行前向计算的前向计算总耗时及执行首次后向计算的后向计算耗时;利用所述前向计算总耗时、所述后向计算耗时及各所述计算设备的环状全规约操作耗时,确定所述计算设备的设备处理耗时。16.根据权利要求13所述的模型训练耗时预测方法,其特征在于,所述利用所述数据传输量均值、所述通信带宽及所述异构计算系统中的各计算设备间的环状全规约操作顺序,确定述异构计算系统中的各计算设备的环状全规约操作耗时,包括:根据所述环状全规约操作顺序,确定与所述计算设备执行环状全规约操作的相邻计算设备;利用所述数据传输量均值及所述计算设备与所述相邻计算设备间的通信带宽,确定所述计算设备与所述相邻计算设备执行单次环状全规约操作的耗时;利用所述异构计算系统包含的计算设备数量确定所述计算设备与所述相邻计算设备执行所述环状全规约操作的总次数;利用所述总次数和计算设备与所述相邻计算设备执行单次环状全规约操作的耗时,确定所述计算设备的环状全规约操作耗时。17.根据权利要求11所述的模型训练耗时预测方法,其特征在于,所述基于所述单次迭代总耗时确定所述异构计算系统训练所述目标模型的预测耗时,包括:根据所述训练集的总数据量、各所述计算设备类型对应的训练数据量、所述异构计算系统中各计算设备执行所述单次迭代所使用的小批量训练数据量及所述异构计算系统包含的计算设备数量,确定异构计算系统利用所述训练集完整训练所述目标模型所需的单次迭代次数;利用所述单次迭代次数及所述单次迭代总耗时确定所述异构计算系统利用所述训练集完整训练所述目标模型的预测耗时。18.根据权利要求17所述的模型训练耗时预测方法,其特征在于,在利用所述单次迭代次数及所述单次迭代总耗时确定所述异构计算系统利用所述训练集完整训练所述目标模型的预测耗时之后,还包括:利用所述预测耗时确定所述异构计算系统利用所述训练集多次完整训练所述目标模型的预测总耗时。19.一种基于异构计算系统的模型训练耗时预测装置,其特征在于,包括:信息收集模块,用于获取目标模型、训练集、异构计算系统中包含的各计算设备类型、各所述计算设备类型对应的训练数据量及所述异构计算系统中的各计算设备间的通信带宽;任务分配模块,用于设置各计算设备类型对应的子计算系统,并利用所述训练数据量及所述训练集为各所述子计算系统中的计算设备分配训练数据;各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;数据收集模块,用于控制各所述子计算系统利用所述训练数据对所述目标模型共同进行多轮迭代训练,并对各所述子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;
耗时预测模块,用于将所述耗时信息、所述通信带宽、所述数据传输量输入至预设数学模型进行耗时预测,得到所述异构计算系统训练所述目标模型的预测耗时。20.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至18任一项所述的基于异构计算系统的模型训练耗时预测方法。21.一种基于异构计算系统的模型训练耗时预测系统,其特征在于,包括:电子设备及多个子计算系统,多个所述子计算系统根据异构计算系统中包含的各计算设备类型设置,各所述子计算系统包含多个同类型的计算设备,所述计算设备在所述子计算系统中的数量小于其在所述异构计算系统中的数量;所述电子设备,用于执行如权利要求1至18任一项所述的基于异构计算系统的模型训练耗时预测方法;所述多个子计算系统,用于在所述电子设备的控制下利用训练数据对目标模型共同进行多轮迭代训练。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至18任一项所述的基于异构计算系统的模型训练耗时预测方法。
技术总结
本发明提供基于异构计算系统的模型训练耗时预测方法、设备及系统,涉及神经网络领域,可根据异构计算系统中包含的各计算设备类型,设置对应的多个简化的子计算系统;随后,可将目标模型及训练数据下发至各子计算系统,并可控制各子计算系统利用该训练数据对目标模型共同进行多轮迭代训练,以对各子计算系统中的各计算设备对应的耗时信息及数据传输量进行记录;进而,本发明可将实际采集到的耗时信息、数据传输量与异构计算系统中的各计算设备间的通信带宽一同输入预设数学模型进行耗时预测,得到异构计算系统训练该目标模型的预测耗时,从而能够解决相关技术无法准确预测异构计算系统训练模型所需耗时的缺陷。算系统训练模型所需耗时的缺陷。算系统训练模型所需耗时的缺陷。
技术研发人员:唐轶男 李仁刚 赵雅倩 郭振华 王丽 高开 曹芳
受保护的技术使用者:浪潮电子信息产业股份有限公司
技术研发日:2023.08.04
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
