CN117827619A - 异构算力的耗时预测仿真方法、装置、设备、介质及系统 - Google Patents
异构算力的耗时预测仿真方法、装置、设备、介质及系统 Download PDFInfo
- Publication number
- CN117827619A CN117827619A CN202410230017.XA CN202410230017A CN117827619A CN 117827619 A CN117827619 A CN 117827619A CN 202410230017 A CN202410230017 A CN 202410230017A CN 117827619 A CN117827619 A CN 117827619A
- Authority
- CN
- China
- Prior art keywords
- communication
- heterogeneous computing
- node
- calculation
- time
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 169
- 238000004088 simulation Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000006854 communication Effects 0.000 claims abstract description 238
- 238000004891 communication Methods 0.000 claims abstract description 236
- 238000012549 training Methods 0.000 claims abstract description 230
- 238000004590 computer program Methods 0.000 claims description 48
- 238000003860 storage Methods 0.000 claims description 20
- 230000002194 synthesizing effect Effects 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000010276 construction Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 238000002372 labelling Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000012014 frustrated Lewis pair Substances 0.000 description 1
- 208000037805 labour Diseases 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Abstract
本发明公开了计算机技术领域内的一种异构算力的耗时预测仿真方法、装置、设备、介质及系统。本发明能够构建包括通信图节点和计算图节点的有向图,从而根据多个异构算力设备的网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时。由于无需部署实际的算力设备,因此没有部署难度,实现成本低,可根据预测的训练耗时优化算力设备的部署策略,预测准确度更高,适用于多元异构计算系统。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种异构算力的耗时预测仿真方法、装置、设备、介质及系统。
背景技术
在异构计算系统中,不同计算性能的异构算力设备(异构计算芯片或计算卡)会被接入到同一个分布式计算系统中,并用于协同进行神经网络模型的训练。但神经网络训练十分耗时、耗能源,因此需要合理进行训练任务的配置(例如切割训练任务、配置集群等)来使多个异构算力高效协同进行计算。若基于实地部署进行试错,成本昂贵。为了更合理地进行训练任务的配置,可以对模型训练耗时进行预测,以提前检测训练任务的配置是否合理,为训练任务的配置优化提供有效参考。
因此,如何在多元异构计算系统中进行神经网络模型的训练耗时预测,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种异构算力的耗时预测仿真方法、装置、设备、介质及系统,以在多元异构计算系统中进行神经网络模型的训练耗时预测。其具体方案如下:
第一方面,本发明提供了一种异构算力的耗时预测仿真方法,包括:
确定模型训练任务、运行所述模型训练任务中的各算子的多个异构算力设备以及所述多个异构算力设备的网络拓扑信息;
按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,所述通信图节点表示数据传输逻辑;按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立所述多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;
根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时。
另一方面,确定模型训练任务,包括:
获取目标模型;
确定所述目标模型中各算子的参数数据量及所述目标模型中各算子的计算复杂度;
设定总迭代次数;
构建包括所述总迭代次数、所述目标模型中的各算子、所述参数数据量及所述计算复杂度的所述模型训练任务。
另一方面,确定运行所述模型训练任务中的各算子的多个异构算力设备,包括:
在多元异构计算系统中选择与所述模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为所述多个异构算力设备确定设备标识信息。
另一方面,所述按照预设的训练并行模式确定多个通信图节点,包括:
按照预设的训练并行模式确定通信布局;
按照所述通信布局设定所述多个通信图节点;
为所述多个通信图节点配置相应的通信属性;所述通信属性包括:通信数据量大小和通信范围。
另一方面,所述基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点之后,还包括:
根据所述网络拓扑信息确定所述多个异构算力设备的位置标识信息;
确定所述多个异构算力设备运行的相应算子的计算复杂度;
将所述位置标识信息和所述计算复杂度标注于相应计算图节点。
另一方面,还包括:
采集所述多个异构算力设备的计算特性和故障概率;
采集所述多个异构算力设备之间的通信链路的通信特性;
确定所述多个异构算力设备的邻接信息;
根据所述计算特性、所述故障概率、所述通信特性和所述邻接信息得到所述网络拓扑信息。
另一方面,所述采集所述多个异构算力设备的计算特性,包括:
读取所述多个异构算力设备中的寄存器,获得多个设备型号;
按照所述多个设备型号查询得到所述多个异构算力设备的计算特性。
另一方面,采集所述多个异构算力设备的故障概率,包括:
确定所述多个异构算力设备的初始故障率;
采集所述多个异构算力设备的实际故障率;
综合所述初始故障率和所述实际故障率,得到所述多个异构算力设备的故障概率。
另一方面,所述综合所述初始故障率和所述实际故障率,得到所述多个异构算力设备的故障概率,包括:
按照第一公式计算所述多个异构算力设备的故障概率;所述第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
另一方面,所述采集所述多个异构算力设备之间的通信链路的通信特性,包括:
采集所述多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到所述通信特性;或,采集所述多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到所述通信特性;或,采集所述多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集所述多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合所述实际时延信息和所述理想时延信息,得到综合时延信息;综合所述实际带宽信息和所述理想带宽信息,得到综合带宽信息;将所述综合时延信息和所述综合带宽信息作为所述通信特性。
另一方面,所述确定所述多个异构算力设备的邻接信息,包括:
基于所述多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;
将所述邻接矩阵或邻接表作为所述邻接信息。
另一方面,所述根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时,包括:
将所述有向图中的至少一个起始计算图节点作为正在运行节点;
将所述正在运行节点添加至目标列表;
计算所述正在运行节点的运行耗时;
选择最小运行耗时;
计当前训练耗时为所述最小运行耗时;
用所述正在运行节点的运行耗时减去所述最小运行耗时,得到多个差值;
将为零的差值对应的正在运行节点从所述目标列表中删除,得到更新后的目标列表;
判断更新后的目标列表中是否存在起始计算图节点;
若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;所述目标值比当前迭代次数大2;
若是,则使当前迭代次数递增一;
若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为所述模型训练任务的训练耗时。
另一方面,还包括:
将所述最小运行耗时对应的正在运行节点标记为完成节点;
确定所述完成节点指向的下一节点;
若所述下一节点为计算图节点且满足运行条件,则将所述下一节点作为所述正在运行节点后,执行所述计算所述正在运行节点的运行耗时的步骤及后续步骤。
另一方面,还包括:
若所述下一节点为计算图节点且不满足运行条件,则等待预设时长后,判断所述下一节点是否满足运行条件。
另一方面,还包括:
若所述下一节点为通信图节点,则将所述下一节点作为所述正在运行节点后,通过网络仿真确定所述下一节点的运行耗时。
另一方面,还包括:
若递增一后的迭代次数未超过总迭代次数,则执行所述选择最小运行耗时的步骤及后续步骤。
另一方面,所述计算所述正在运行节点的运行耗时,包括:
按照第二公式计算所述正在运行节点的运行耗时;所述第二公式为:TGPUi,Xi=FXi/SGPUi×(Perror,GPUi+1);TGPUi,Xi为正在运行节点GPUi的运行耗时;FXi为算子Xi的计算复杂度;SGPUi为正在运行节点GPUi的计算特性;Perror,GPUi为正在运行节点GPUi的故障概率。
另一方面,若所述训练并行模式为参数服务器,则通信图节点表示数据从任意计算图节点传输到参数服务器的逻辑或数据从参数服务器传输到任意计算图节点的逻辑。
另一方面,本发明提供了一种异构算力的耗时预测仿真装置,包括:
确定模块,用于确定模型训练任务、运行所述模型训练任务中的各算子的多个异构算力设备以及所述多个异构算力设备的网络拓扑信息;
构建模块,用于按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,所述通信图节点表示数据传输逻辑;按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立所述多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;
预测模块,用于根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时。
另一方面,本发明提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的异构算力的耗时预测仿真方法。
另一方面,本发明提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的异构算力的耗时预测仿真方法。
另一方面,本发明提供了一种异构算力的耗时预测仿真系统,包括:
任务建模模块,用于进行模型训练任务的建模;
算力信息记录模块,用于记录运行所述模型训练任务中的各算子的多个异构算力设备;
网络信息收集模块,用于收集所述多个异构算力设备的网络信息;
耗时预测模块,用于实现如上述任一项所述的方法。
通过以上方案可知,本发明提供了一种异构算力的耗时预测仿真方法,包括:确定模型训练任务以及运行所述模型训练任务中的各算子的多个异构算力设备;按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的各算子确定多个计算图节点,并按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立所述多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;按照所述多个异构算力设备的网络拓扑信息运行所述有向图,以预测所述模型训练任务的训练耗时。
可见,本发明的有益效果为:能够确定模型训练任务、运行模型训练任务中的各算子的多个异构算力设备以及多个异构算力设备的网络拓扑信息;按照预设的训练并行模式确定多个通信图节点,基于多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,通信图节点表示数据传输逻辑;按照训练并行模式和模型训练任务中的各算子间的关系建立多个通信图节点之间、多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;从而根据网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时,实现了以异构算力为应用背景的耗时预测仿真方案,由于无需部署实际的算力设备,因此没有部署难度,实现成本低,可根据预测的训练耗时优化算力设备的部署策略,预测准确度更高,适用于多元异构计算系统。
相应地,本发明提供的一种异构算力的耗时预测仿真装置、设备、介质及系统,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种异构算力的耗时预测仿真方法流程图;
图2为本发明公开的一种有向图示意图;
图3为本发明公开的PS具体的训练过程示意图;
图4为本发明公开的一种有向图示意图;
图5为本发明公开的ring-Allreduce具体的训练过程示意图;
图6为本发明公开的一种多元异构计算系统示意图;
图7为本发明公开的另一种异构算力的耗时预测仿真方法流程图;
图8为本发明公开的一种异构算力的耗时预测仿真装置示意图;
图9为本发明公开的一种电子设备示意图;
图10为本发明提供的一种服务器结构图;
图11为本发明提供的一种终端结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。
为了解决大型神经网络模型训练的问题,可以使用分布式训练的方式,将训练数据或大型网络模型进行拆分,并将拆分后的数据与子训练任务部署到多个计算芯片上,使大模型的训练成为可能。
一般可以通过实际部署来对大型训练任务的分配进行分析与优化,但实际上,部署大型分布式训练的难度、成本都较大。例如:同时启动数千张计算卡开展分布式训练任务,其部署难度、采购成本和能耗成本都很大。此外,在异构多元异构计算系统中,异构设备进行协同计算还需要进行一些额外的软件适配工作,这也带来了巨大额外的人工开发成本。
目前,在异构计算系统中,不同计算性能的异构算力设备(异构计算芯片或计算卡)会被接入到同一个分布式计算系统中,并用于协同进行神经网络模型的训练。但神经网络训练十分耗时、耗能源,因此需要合理进行训练任务的配置(例如切割训练任务、配置集群等)来使多个异构算力高效协同进行计算。为了更合理地进行训练任务的配置,可以对模型训练耗时进行预测,以提前检测训练任务的配置是否合理,为训练任务的配置优化提供有效参考。为此,本发明提供了一种异构算力的耗时预测仿真方案,能够在多元异构计算系统中进行神经网络模型的训练耗时预测。
参见图1所示,本发明实施例公开了一种异构算力的耗时预测仿真方法,包括:
S101、确定模型训练任务、运行模型训练任务中的各算子的多个异构算力设备以及多个异构算力设备的网络拓扑信息。
需要说明的是,本实施例提供的是一种通过仿真多元异构计算系统实现的模型训练耗时预测方法。对多元异构计算系统仿真建模,就无需进行多元异构计算系统的实际部署,可以节约成本,且更易于实现分布式训练。在实际部署之前就可以对多元异构计算系统中的分布式训练任务的分配与配置进行评估。由于大规模分布式训练的运行耗时很大,因此对多元异构计算系统中的分布式训练任务的训练耗时进行有效、准确的建模与预测,是至关重要的。
在本实施例中,确定模型训练任务,包括:获取目标模型;确定目标模型中各算子的参数数据量及目标模型中各算子的计算复杂度;设定总迭代次数;构建包括总迭代次数、目标模型中的各算子、参数数据量及计算复杂度的模型训练任务。其中,目标模型可以为神经网络模型、机器学习模型等。
在一种示例中,确定运行模型训练任务中的各算子的多个异构算力设备,包括:在多元异构计算系统中选择与模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为多个异构算力设备确定设备标识信息。设备标识信息可以是IP地址、设备编码等。
S102、按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点;按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图。
其中,所述通信图节点表示数据传输逻辑。
本实施例适用于分布式训练,在分布式训练中,用于训练模型的训练数据、训练子任务会在多个算力设备之间进行拆分和共享。分布式训练可用于传统的机器学习模型,但更适用于计算时间密集型的训练任务,如用于训练大型深度神经网络。常用的分布式训练方式主要包括PS(Parameter Server,参数服务器)和Allreduce。Allreduce是一种集合通信方法,可用于梯度同步。
按照PS训练并行模式,用2个异构GPU来训练包含三个算子的模型训练任务的有向图如图2所示。在图2中,计算图节点“GPU1,算子FP1”和计算图节点“GPU2,算子FP1”为起始计算图节点,表示:训练开始后,GPU1运行算子FP1,同时GPU2运行算子FP1。GPU1运行算子FP1完成后,计算图节点“GPU1,算子FP2”依赖GPU1运行算子FP1的结果以及通信图节点“拉算子BP2”的数据而运行。计算图节点“GPU1,算子FP2”表示:GPU1运行算子FP2。图2中其他节点以此类推进行理解。其中,计算图节点首次运行时不依赖其他通信图节点。
其中,PS具体的训练过程可参见图3。每个异构算力设备(一个计算设备)都会训练一个相同且完整的神经网络模型,多个异构算力设备依靠一个参数服务器进行神经网络模型的参数同步。在一个分布式训练的迭代中,每个异构算力设备会使用自己所分配到的batch_size数据来训练自己的神经网络。一个异构算力设备训练完毕后,会将自己神经网络的梯度发送(push)到参数服务器。当参数服务器收到所有异构算力设备的梯度后,会进行梯度同步更新参数,然后将更新后的参数返回(pull)给各个异构算力设备,然后各异构算力设备收到参数后才能进行下一次训练迭代。其中,若训练并行模式为PS,则通信图节点表示数据从任意计算图节点传输到参数服务器的逻辑或数据从参数服务器传输到任意计算图节点的逻辑。
按照Allreduce训练并行模式,用2个异构GPU来训练包含三个算子的模型训练任务的有向图如图4所示。在图4中,计算图节点“GPU1,算子FP1”和计算图节点“GPU2,算子FP1”为起始计算图节点,表示:训练开始后,GPU1运行算子FP1,同时GPU2运行算子FP1。GPU1运行算子FP1完成后,计算图节点“GPU1,算子FP2”依赖GPU1运行算子FP1的结果以及使用集合通信方法的通信节点2传输的算子BP2相关的数据而运行。计算图节点“GPU1,算子FP2”表示:GPU1运行算子FP2。图4中其他节点以此类推进行理解。其中,计算图节点首次运行时不依赖其他通信图节点。使用集合通信方法的通信节点1、2、3均基于Allreduce实现,因此使用集合通信方法的通信节点1具体为:AllreduceBP1,表示:使用Allreduce传输算子BP1相关的数据;使用集合通信方法的通信节点2具体为:AllreduceBP2,表示:使用Allreduce传输算子BP2相关的数据;使用集合通信方法的通信节点3具体为:AllreduceBP3,表示:使用Allreduce传输算子BP3相关的数据。
其中,Allreduce的训练方式之一有ring-Allreduce,具体可参见图5,ring-Allreduce会将多个异构算力设备组成一个环,其中环上的连边代表两个计算节点之间的通信链路。基于这个环,三个异构算力设备会在每次分布式训练的step中进行参数同步,从而完成分布式训练。
在一种示例中,按照预设的训练并行模式确定多个通信图节点,包括:按照预设的训练并行模式确定通信布局;按照通信布局设定多个通信图节点;为多个通信图节点配置相应的通信属性;通信属性包括:通信数据量大小和通信范围。
在一种示例中,基于多个异构算力设备及其运行的相应算子确定多个计算图节点之后,还包括:根据网络拓扑信息确定多个异构算力设备的位置标识信息;确定多个异构算力设备运行的相应算子的计算复杂度;将位置标识信息和计算复杂度标注于相应计算图节点。
在一种示例中,还包括:采集多个异构算力设备的计算特性和故障概率;采集多个异构算力设备之间的通信链路的通信特性;确定多个异构算力设备的邻接信息;根据计算特性、故障概率、通信特性和邻接信息得到网络拓扑信息。其中,采集多个异构算力设备的计算特性,包括:读取所述多个异构算力设备中的寄存器,获得多个设备型号;按照所述多个设备型号查询得到所述多个异构算力设备的计算特性。
其中,采集多个异构算力设备的故障概率,包括:确定多个异构算力设备的初始故障率;采集多个异构算力设备的实际故障率;综合初始故障率和实际故障率,得到多个异构算力设备的故障概率。其中,综合初始故障率和实际故障率,得到多个异构算力设备的故障概率,包括:按照第一公式计算多个异构算力设备的故障概率;第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
在一种示例中,采集多个异构算力设备之间的通信链路的通信特性,包括:采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合实际时延信息和理想时延信息,得到综合时延信息;综合实际带宽信息和理想带宽信息,得到综合带宽信息;将综合时延信息和综合带宽信息作为通信特性。
在一种示例中,确定多个异构算力设备的邻接信息,包括:基于多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;将邻接矩阵或邻接表作为邻接信息。
S103、根据网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时。
在一种示例中,根据网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时,包括:将有向图中的至少一个起始计算图节点作为正在运行节点;将正在运行节点添加至目标列表;计算正在运行节点的运行耗时;选择最小运行耗时;计当前训练耗时为最小运行耗时;用正在运行节点的运行耗时减去最小运行耗时,得到多个差值;将为零的差值对应的正在运行节点从目标列表中删除,得到更新后的目标列表;判断更新后的目标列表中是否存在起始计算图节点;若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;目标值比当前迭代次数大2;若是,则使当前迭代次数递增一;若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为模型训练任务的训练耗时。将最小运行耗时对应的正在运行节点标记为完成节点;确定完成节点指向的下一节点;若下一节点为计算图节点且满足运行条件,则将下一节点作为正在运行节点后,执行计算正在运行节点的运行耗时的步骤及后续步骤。若下一节点为计算图节点且不满足运行条件,则等待预设时长(如等待1毫秒)后,判断下一节点是否满足运行条件。若下一节点为通信图节点,则将下一节点作为正在运行节点后,通过网络仿真确定下一节点的运行耗时。若递增一后的迭代次数未超过总迭代次数,则执行选择最小运行耗时的步骤及后续步骤。其中,运行条件为:计算图节点依赖的所有节点均已运行完毕。等待预设时长后再次判断下一节点是否满足运行条件,可及时检测出满足运行条件的时刻。在满足运行条件时,可以以此事件触发如下步骤的执行:将下一节点作为正在运行节点,执行计算正在运行节点的运行耗时的步骤及后续步骤。
在一种示例中,计算正在运行节点的运行耗时,包括:按照第二公式计算正在运行节点的运行耗时;第二公式为:TGPUi,Xi=FXi/SGPUi×(Perror,GPUi+1);TGPUi,Xi为正在运行节点GPUi的运行耗时;FXi为算子Xi的计算复杂度;SGPUi为正在运行节点GPUi的计算特性;Perror,GPUi为正在运行节点GPUi的故障概率。
可见,本实施例提供了一种用于异构算力的模型训练耗时预测仿真方案,能够确定模型训练任务、运行模型训练任务中的各算子的多个异构算力设备以及多个异构算力设备的网络拓扑信息;按照预设的训练并行模式确定多个通信图节点,基于多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,通信图节点表示数据传输逻辑;按照训练并行模式和模型训练任务中的各算子间的关系建立多个通信图节点之间、多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;从而根据网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时,实现了以异构算力为应用背景的耗时预测仿真方案,由于无需部署实际的算力设备,因此没有部署难度,实现成本低,可根据预测的训练耗时优化算力设备的部署策略,预测准确度更高,适用于多元异构计算系统。
在一种示例中,多元异构计算系统如图6所示。由于算力异构且算力之间的互联由复杂的数据中心网络构成,这导致相比传统的由相同算力组成的计算平台,想要在多元异构计算系统中预测以上分布式训练任务的执行时间十分困难。另外,由于异构算力设备的存在,各异构算力设备的计算稳定性各不相同,且当发生故障时,异构算力设备需要对当时执行的训练子任务进行重新计算,影响分布式训练任务的执行效率。若在预测分布式训练任务的计算时间时,再考虑上述平台中异构设备的故障导致的训练重算问题,会一定程度提高预测的耗时时间的准确性。
在本示例中,一种具体是预测方案实现过程请参见图7,包括:使用者进行分布式训练任务的描述,分布式训练任务的建模模块根据使用者定义的分布式训练任务的描述,对分布式训练任务的执行过程进行建模。分布式训练任务的耗时预测模块根据分布式训练任务的建模,对分布式训练任务进行耗时预测。算力信息记录与存储模块用于记录、存储多元异构计算系统中异构算力的计算能力(即计算特性)、故障概率等信息。网络信息收集模块:用于收集多元异构计算系统的网络信息。
其中,分布式训练任务的描述包括:使用的分布式训练任务的并行方式,可选包括PS,Allreduce两种。所训练模型包含的各算子,每个算子的参数数据量、计算复杂度FLOPs。在多元异构计算系统中所选择的计算节点,可以使用IP地址标识。如果分布式训练的并行方式为PS,则还需告知参数服务器的IP地址标识,用于知道谁是参数服务器。所需预测的训练step数量(即总迭代次数)。
根据以上信息,分布式训练任务的建模模块会对分布式训练任务进行建模,具体方法如下:将分布式训练中,每个异构算力中每个算子的计算过程、通信过程描述为图节点。其中通信过程可以代表点对点的通信,也可以代表集合通信。对于每个计算图节点,需要包含的属性有:计算复杂度FLOPS,计算通信布局(即所处位置,可用IP地址标识)。对于每个通信图节点,需要包含的属性有:通信数据量、通信的范围(通信包含哪些计算节点,源节点、目的节点都是谁,具体情况需要根据并行方式中的通信过程来决定)。根据并行方式,将上述图节点之间的依赖关系建立为有向边。依赖关系代表边的出发图节点是所指向图节点的前置依赖,若出发图节点未执行完毕,则所指向的图节点不可执行。将图节点与边连接起来,生成有向图。该过程可以使用python的networtx实现,也可以使用各种图数据库实现。
建模后产生的有向图,会被发送到分布式训练任务的耗时预测模块,用于进行耗时预测。分布式训练任务的耗时预测模块:根据建模后产生的有向图,会从网络信息收集模块采集实时的多元异构计算系统的网络信息,具体包括:多元异构计算系统的拓扑信息,可以使用IP构成的邻接矩阵或邻接表等邻接信息表示和存储。每条链路的时延、带宽信息。同时,该模块还会从算力信息记录与存储模块中读取训练任务所涉及各算力的计算能力FLOPS,各算力的故障概率、算力名称、内存大小、支持的模型及算子、核数量和内存频率等。基于以上信息,该模块会对分布式训练任务的执行流程进行仿真,并根据用户需求,预测分布式训练任务执行若干个step所需的耗时,最终获得的耗时结果会被返回给用户。
算力信息记录与存储模块从多元异构计算系统记录的信息包括:算力的计算能力FLOPS:该数据可以根据每个异构算力采购时声明的算力进行记录,也可以通过一些基准进行测量并记录。算力的故障率:该故障概率指的是一个异构算力执行一个算子的计算任务后,发生故障并执行重算的概率值。该数据可以根据网上查询到的各算力的故障概率进行初始化,得到初始故障率,随后根据多元异构平台中各算力实际的故障发生情况,得到实际故障率,然后将二者进行加权。例如算力A的故障概率可以为:网上获取A故障概率×0.5+多元异构平台中A发生故障的概率×0.5。
网络信息收集模块:收集并记录的信息包括:多元异构计算系统的拓扑信息,可以使用ip构成的邻接矩阵或邻接表表示和存储。每条链路的时延、带宽信息等通信特性,可以编写网络测试程序进行测试,也可以使用每条链路标称的理想值。
分布式训练任务的仿真与耗时预测方法的目的是:根据已知的输入,包括建模后产生的有向图、从算力信息记录与存储模块所收集到的信息、从网络信息收集模块所搜集到的信息,对多元异构计算系统中分布式训练任务进行仿真,并根据客户要求,预测出多个step的训练耗时。
具体流程如下:
步骤1:记step=0,n个step的总训练时间(即模型训练任务的训练耗时)为Tn。
步骤2:根据多元异构计算系统的拓扑信息,每条链路的时延、带宽信息,构建网络仿真模型。该网络仿真可以采用NS3、simgrid等成熟网路仿真器,具体根据使用者对仿真粒度、仿真真实性的要求进行选取。如果需要解读数据内容则用NS3进行细粒度仿真,如果需要评估集群性则用simgrid进行粗粒度仿真。
步骤3:记当前正在运行的图节点的预测耗时为列表arr running ,以Allreduce并行方式为例,arr running =[TGPU1,FP1,TGPU2,FP1],其中TGPUi,FPi为GPUi计算算子FPi所需的期望耗时,获取方式为:TGPUi,FPi=FLOPSFPi/FLOPSGPUi×(Perror,GPUi+1),其中Perror,GPUi为GPUi的故障概率,FLOPSFPi和FLOPSGPUi分别为算子FPi的计算复杂度和GPUi的计算能力。
TGPUi,BP1的计算方式同理:TGPUi,BPi=FLOPSBPi/FLOPSGPUi×(Perror,GPUi+1)。
步骤4:选取下一个完成的图节点为min(arr running )所对应的图节点,令Tn=Tn+min(arr running ),并将arr running 中的所有值减少min(arr running ),如果减少后其中有值为0,则认为该图节点对应的任务已经完成,将该值移出arr running ,并记录本次完成的图节点。
步骤5:从本次完成的图节点中,遍历他们所指向的图节点,判断是否所有依赖已经满足(即指向它的图节点都已经完成)。如果依赖已经满足(当step=0时,计算图节点FP不用考虑其依赖的通信图节点),则将该图节点启动执行,并估计该图节点的耗时。若该图节点是计算图节点,则使用步骤3中相同的公式进行估计。如果该图节点是通信图节点,则将该通信任务输入到网络仿真模型中,通过网络仿真获取通信图节点的耗时。随后,将该图节点的耗时放入arr running 中。
步骤6:判断更新后的arr running ,查看步骤5中启动的图节点是否包含初始图节点。如果包含,且其中所有初始图节点的预测耗时在列表中出现次数>=step+2,则step=step+1。若step=n,则输出为耗时预测结果。否则返回步骤4。
在一种示例中,如果训练大模型bert,选用H100、H200、MLU370三个异构算力执行PS方式的分布式训练,想要预测10个step的计算耗时。根据多元异构计算系统的统计,H100、H200、MLU370的故障概率分别为0.1,0.2,0.3。在该条件下,本发明可以准确地预测出10个step的计算耗时并输出。
本实施例提出了一种考虑故障重算的异构算力分布式训练耗时预测框架,可用于对多元异构计算系统中分布式训练任务进行耗时预测,并同时考虑计算性能、通信特性、设备故障重算问题,解决了以往预测分布式训练时无法考虑异构设备的故障概率而导致的预测不准问题。还提出了考虑故障重算的异构算力分布式训练耗时预测方法,该方法包括对异构算力分布式训练任务的建模描述以及仿真预测算法,可以准确预测多元异构计算系统中分布式训练任务的多个step训练耗时,从而帮助使用者在花费昂贵算力实际执行训练任务之前,评估分布式训练任务的执行时间。基于该方法,不仅可以用低成本辅助研究者对多元异构计算系统进行建设或配置,而且可以指导研究者对多元异构计算系统中的分布式训练任务进行任务切分、优化部署等工作。
下面对本发明实施例提供的一种异构算力的耗时预测仿真装置进行介绍,下文描述的一种异构算力的耗时预测仿真装置与本文描述的其他实施例可以相互参照。
参见图8所示,本发明实施例公开了一种异构算力的耗时预测仿真装置,包括:
确定模块,用于确定模型训练任务、运行模型训练任务中的各算子的多个异构算力设备以及多个异构算力设备的网络拓扑信息;
构建模块,用于按照预设的训练并行模式确定多个通信图节点,基于多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,通信图节点表示数据传输逻辑;按照训练并行模式和模型训练任务中的各算子间的关系建立多个通信图节点之间、多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;
预测模块,用于根据网络拓扑信息仿真得到的仿真网络预测多个通信图节点的通信耗时,根据有向图预测多个计算图节点的计算耗时,累计通信耗时和计算耗时得到模型训练任务的训练耗时。
在一种示例中,确定模块具体用于:获取目标模型;确定目标模型中各算子的参数数据量及目标模型中各算子的计算复杂度;设定总迭代次数;构建包括总迭代次数、目标模型中的各算子、参数数据量及计算复杂度的模型训练任务。
在一种示例中,确定模块具体用于:在多元异构计算系统中选择与模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为多个异构算力设备确定设备标识信息。
在一种示例中,构建模块具体用于:按照预设的训练并行模式确定通信布局;按照通信布局设定多个通信图节点;为多个通信图节点配置相应的通信属性;通信属性包括:通信数据量大小和通信范围。
在一种示例中,构建模块还用于:基于多个异构算力设备及其运行的相应算子确定多个计算图节点之后,根据网络拓扑信息确定多个异构算力设备的位置标识信息;确定多个异构算力设备运行的相应算子的计算复杂度;将位置标识信息和计算复杂度标注于相应计算图节点。
在一种示例中,还包括:
网络构建模块,用于采集多个异构算力设备的计算特性和故障概率;采集多个异构算力设备之间的通信链路的通信特性;确定多个异构算力设备的邻接信息;根据计算特性、故障概率、通信特性和邻接信息得到网络拓扑信息。
在一种示例中,网络构建模块具体用于:读取多个异构算力设备中的特性寄存器,获得计算特性。
在一种示例中,网络构建模块具体用于:确定多个异构算力设备的初始故障率;采集多个异构算力设备的实际故障率;综合初始故障率和实际故障率,得到多个异构算力设备的故障概率。
在一种示例中,网络构建模块具体用于:按照第一公式计算多个异构算力设备的故障概率;第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
在一种示例中,网络构建模块具体用于:采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合实际时延信息和理想时延信息,得到综合时延信息;综合实际带宽信息和理想带宽信息,得到综合带宽信息;将综合时延信息和综合带宽信息作为通信特性。
在一种示例中,网络构建模块具体用于:基于多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;将邻接矩阵或邻接表作为邻接信息。
在一种示例中,预测模块具体用于:将有向图中的至少一个起始计算图节点作为正在运行节点;将正在运行节点添加至目标列表;计算正在运行节点的运行耗时;选择最小运行耗时;计当前训练耗时为最小运行耗时;用正在运行节点的运行耗时减去最小运行耗时,得到多个差值;将为零的差值对应的正在运行节点从目标列表中删除,得到更新后的目标列表;判断更新后的目标列表中是否存在起始计算图节点;若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;目标值比当前迭代次数大2;若是,则使当前迭代次数递增一;若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为模型训练任务的训练耗时。
在一种示例中,预测模块还用于:将最小运行耗时对应的正在运行节点标记为完成节点;确定完成节点指向的下一节点;若下一节点为计算图节点且满足运行条件,则将下一节点作为正在运行节点后,执行计算正在运行节点的运行耗时的步骤及后续步骤。
在一种示例中,预测模块还用于:若下一节点为计算图节点且不满足运行条件,则等待预设时长后,判断下一节点是否满足运行条件。
在一种示例中,预测模块还用于:若下一节点为通信图节点,则将下一节点作为正在运行节点后,通过网络仿真确定下一节点的运行耗时。
在一种示例中,预测模块还用于:若递增一后的迭代次数未超过总迭代次数,则执行选择最小运行耗时的步骤及后续步骤。
在一种示例中,预测模块还用于:按照第二公式计算正在运行节点的运行耗时;第二公式为:TGPUi,Xi=FXi/SGPUi×(Perror,GPUi+1);TGPUi,Xi为正在运行节点GPUi的运行耗时;FXi为算子Xi的计算复杂度;SGPUi为正在运行节点GPUi的计算特性;Perror,GPUi为正在运行节点GPUi的故障概率。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种异构算力的耗时预测仿真装置,能够在多元异构计算系统中进行神经网络模型的训练耗时预测。
下面对本发明实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。
参见图9所示,本发明实施例公开了一种电子设备,包括:
存储器901,用于保存计算机程序;
处理器902,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:获取目标模型;确定目标模型中各算子的参数数据量及目标模型中各算子的计算复杂度;设定总迭代次数;构建包括总迭代次数、目标模型中的各算子、参数数据量及计算复杂度的模型训练任务。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:在多元异构计算系统中选择与模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为多个异构算力设备确定设备标识信息。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:按照预设的训练并行模式确定通信布局;按照通信布局设定多个通信图节点;为多个通信图节点配置相应的通信属性;通信属性包括:通信数据量大小和通信范围。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:根据网络拓扑信息确定多个异构算力设备的位置标识信息;确定多个异构算力设备运行的相应算子的计算复杂度;将位置标识信息和计算复杂度标注于相应计算图节点。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:采集多个异构算力设备的计算特性和故障概率;采集多个异构算力设备之间的通信链路的通信特性;确定多个异构算力设备的邻接信息;根据计算特性、故障概率、通信特性和邻接信息得到网络拓扑信息。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:确定多个异构算力设备的初始故障率;采集多个异构算力设备的实际故障率;综合初始故障率和实际故障率,得到多个异构算力设备的故障概率。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:按照第一公式计算多个异构算力设备的故障概率;第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合实际时延信息和理想时延信息,得到综合时延信息;综合实际带宽信息和理想带宽信息,得到综合带宽信息;将综合时延信息和综合带宽信息作为通信特性。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:基于多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;将邻接矩阵或邻接表作为邻接信息。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:将有向图中的至少一个起始计算图节点作为正在运行节点;将正在运行节点添加至目标列表;计算正在运行节点的运行耗时;选择最小运行耗时;计当前训练耗时为最小运行耗时;用正在运行节点的运行耗时减去最小运行耗时,得到多个差值;将为零的差值对应的正在运行节点从目标列表中删除,得到更新后的目标列表;判断更新后的目标列表中是否存在起始计算图节点;若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;目标值比当前迭代次数大2;若是,则使当前迭代次数递增一;若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为模型训练任务的训练耗时。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:将最小运行耗时对应的正在运行节点标记为完成节点;确定完成节点指向的下一节点;若下一节点为计算图节点且满足运行条件,则将下一节点作为正在运行节点后,执行计算正在运行节点的运行耗时的步骤及后续步骤。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:若下一节点为计算图节点且不满足运行条件,则等待预设时长后,判断下一节点是否满足运行条件。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:若下一节点为通信图节点,则将下一节点作为正在运行节点后,通过网络仿真确定下一节点的运行耗时。
在本实施例中,处理器执行存储器中保存的计算机程序时,可以具体实现以下步骤:若递增一后的迭代次数未超过总迭代次数,则执行选择最小运行耗时的步骤及后续步骤。
进一步的,本发明实施例还提供了一种电子设备。其中,上述电子设备既可以是如图10所示的服务器,也可以是如图11所示的终端。图10和图11均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本发明的使用范围的任何限制。
图10为本发明实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的异构算力的耗时预测仿真中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的异构算力的耗时预测仿真方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图11为本发明实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的异构算力的耗时预测仿真方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图11中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的异构算力的耗时预测仿真方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:获取目标模型;确定目标模型中各算子的参数数据量及目标模型中各算子的计算复杂度;设定总迭代次数;构建包括总迭代次数、目标模型中的各算子、参数数据量及计算复杂度的模型训练任务。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:在多元异构计算系统中选择与模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为多个异构算力设备确定设备标识信息。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:按照预设的训练并行模式确定通信布局;按照通信布局设定多个通信图节点;为多个通信图节点配置相应的通信属性;通信属性包括:通信数据量大小和通信范围。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:根据网络拓扑信息确定多个异构算力设备的位置标识信息;确定多个异构算力设备运行的相应算子的计算复杂度;将位置标识信息和计算复杂度标注于相应计算图节点。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:采集多个异构算力设备的计算特性和故障概率;采集多个异构算力设备之间的通信链路的通信特性;确定多个异构算力设备的邻接信息;根据计算特性、故障概率、通信特性和邻接信息得到网络拓扑信息。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:确定多个异构算力设备的初始故障率;采集多个异构算力设备的实际故障率;综合初始故障率和实际故障率,得到多个异构算力设备的故障概率。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:按照第一公式计算多个异构算力设备的故障概率;第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到通信特性;或采集多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合实际时延信息和理想时延信息,得到综合时延信息;综合实际带宽信息和理想带宽信息,得到综合带宽信息;将综合时延信息和综合带宽信息作为通信特性。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:基于多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;将邻接矩阵或邻接表作为邻接信息。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:将有向图中的至少一个起始计算图节点作为正在运行节点;将正在运行节点添加至目标列表;计算正在运行节点的运行耗时;选择最小运行耗时;计当前训练耗时为最小运行耗时;用正在运行节点的运行耗时减去最小运行耗时,得到多个差值;将为零的差值对应的正在运行节点从目标列表中删除,得到更新后的目标列表;判断更新后的目标列表中是否存在起始计算图节点;若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;目标值比当前迭代次数大2;若是,则使当前迭代次数递增一;若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为模型训练任务的训练耗时。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:将最小运行耗时对应的正在运行节点标记为完成节点;确定完成节点指向的下一节点;若下一节点为计算图节点且满足运行条件,则将下一节点作为正在运行节点后,执行计算正在运行节点的运行耗时的步骤及后续步骤。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若下一节点为计算图节点且不满足运行条件,则等待预设时长后,判断下一节点是否满足运行条件。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若下一节点为通信图节点,则将下一节点作为正在运行节点后,通过网络仿真确定下一节点的运行耗时。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若递增一后的迭代次数未超过总迭代次数,则执行选择最小运行耗时的步骤及后续步骤。
下面对本发明实施例提供的一种异构算力的耗时预测仿真系统进行介绍,下文描述的一种异构算力的耗时预测仿真系统与本文描述的其他实施例可以相互参照。
本发明实施例提供了一种异构算力的耗时预测仿真系统,包括:任务建模模块,用于进行模型训练任务的建模;算力信息记录模块,用于记录运行所述模型训练任务中的各算子的多个异构算力设备;网络信息收集模块,用于收集所述多个异构算力设备的网络信息;耗时预测模块,用于实现前述任意实施例所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种异构算力的耗时预测仿真方法,其特征在于,包括:
确定模型训练任务、运行所述模型训练任务中的各算子的多个异构算力设备以及所述多个异构算力设备的网络拓扑信息;
按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,所述通信图节点表示数据传输逻辑;按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立所述多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;
根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时。
2.根据权利要求1所述的方法,其特征在于,确定模型训练任务,包括:
获取目标模型;
确定所述目标模型中各算子的参数数据量及所述目标模型中各算子的计算复杂度;
设定总迭代次数;
构建包括所述总迭代次数、所述目标模型中的各算子、所述参数数据量及所述计算复杂度的所述模型训练任务。
3.根据权利要求1所述的方法,其特征在于,确定运行所述模型训练任务中的各算子的多个异构算力设备,包括:
在多元异构计算系统中选择与所述模型训练任务中的各算子的运算功能对应的多个异构算力设备,并为所述多个异构算力设备确定设备标识信息。
4.根据权利要求1所述的方法,其特征在于,所述按照预设的训练并行模式确定多个通信图节点,包括:
按照预设的训练并行模式确定通信布局;
按照所述通信布局设定所述多个通信图节点;
为所述多个通信图节点配置相应的通信属性;所述通信属性包括:通信数据量大小和通信范围。
5.根据权利要求1所述的方法,其特征在于,所述基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点之后,还包括:
根据所述网络拓扑信息确定所述多个异构算力设备的位置标识信息;
确定所述多个异构算力设备运行的相应算子的计算复杂度;
将所述位置标识信息和所述计算复杂度标注于相应计算图节点。
6.根据权利要求1所述的方法,其特征在于,还包括:
采集所述多个异构算力设备的计算特性和故障概率;
采集所述多个异构算力设备之间的通信链路的通信特性;
确定所述多个异构算力设备的邻接信息;
根据所述计算特性、所述故障概率、所述通信特性和所述邻接信息得到所述网络拓扑信息。
7.根据权利要求6所述的方法,其特征在于,所述采集所述多个异构算力设备的计算特性,包括:
读取所述多个异构算力设备中的寄存器,获得多个设备型号;
按照所述多个设备型号查询得到所述多个异构算力设备的计算特性。
8.根据权利要求6所述的方法,其特征在于,采集所述多个异构算力设备的故障概率,包括:
确定所述多个异构算力设备的初始故障率;
采集所述多个异构算力设备的实际故障率;
综合所述初始故障率和所述实际故障率,得到所述多个异构算力设备的故障概率。
9.根据权利要求8所述的方法,其特征在于,所述综合所述初始故障率和所述实际故障率,得到所述多个异构算力设备的故障概率,包括:
按照第一公式计算所述多个异构算力设备的故障概率;所述第一公式为:Si=a×Ai+b×Bi;Si为异构算力设备i的故障概率;Ai为异构算力设备i的初始故障率;a为Ai对应的权重系数;Bi为异构算力设备i的实际故障率;b为Bi对应的权重系数。
10.根据权利要求6所述的方法,其特征在于,所述采集所述多个异构算力设备之间的通信链路的通信特性,包括:
采集所述多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息,得到所述通信特性;或,采集所述多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息,得到所述通信特性;或,采集所述多个异构算力设备之间的通信链路的实际时延信息和实际带宽信息;采集所述多个异构算力设备之间的通信链路的理想时延信息和理想带宽信息;综合所述实际时延信息和所述理想时延信息,得到综合时延信息;综合所述实际带宽信息和所述理想带宽信息,得到综合带宽信息;将所述综合时延信息和所述综合带宽信息作为所述通信特性。
11.根据权利要求6所述的方法,其特征在于,所述确定所述多个异构算力设备的邻接信息,包括:
基于所述多个异构算力设备的设备标识信息构建邻接矩阵或邻接表;
将所述邻接矩阵或邻接表作为所述邻接信息。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时,包括:
将所述有向图中的至少一个起始计算图节点作为正在运行节点;
将所述正在运行节点添加至目标列表;
计算所述正在运行节点的运行耗时;
选择最小运行耗时;
计当前训练耗时为所述最小运行耗时;
用所述正在运行节点的运行耗时减去所述最小运行耗时,得到多个差值;
将为零的差值对应的正在运行节点从所述目标列表中删除,得到更新后的目标列表;
判断更新后的目标列表中是否存在起始计算图节点;
若存在,则判断更新后的目标列表中的各个起始计算图节点的添加次数是否均不小于目标值;所述目标值比当前迭代次数大2;
若是,则使当前迭代次数递增一;
若递增一后的迭代次数超过总迭代次数,则将当前训练耗时确定为所述模型训练任务的训练耗时。
13.根据权利要求12所述的方法,其特征在于,还包括:
将所述最小运行耗时对应的正在运行节点标记为完成节点;
确定所述完成节点指向的下一节点;
若所述下一节点为计算图节点且满足运行条件,则将所述下一节点作为所述正在运行节点后,执行所述计算所述正在运行节点的运行耗时的步骤及后续步骤。
14.根据权利要求13所述的方法,其特征在于,还包括:
若所述下一节点为计算图节点且不满足运行条件,则等待预设时长后,判断所述下一节点是否满足运行条件。
15.根据权利要求13所述的方法,其特征在于,还包括:
若所述下一节点为通信图节点,则将所述下一节点作为所述正在运行节点后,通过网络仿真确定所述下一节点的运行耗时。
16.根据权利要求12所述的方法,其特征在于,还包括:
若递增一后的迭代次数未超过总迭代次数,则执行所述选择最小运行耗时的步骤及后续步骤。
17.根据权利要求12所述的方法,其特征在于,所述计算所述正在运行节点的运行耗时,包括:
按照第二公式计算所述正在运行节点的运行耗时;所述第二公式为:TGPUi,Xi=FXi/SGPUi×(Perror,GPUi+1);TGPUi,Xi为正在运行节点GPUi的运行耗时;FXi为算子Xi的计算复杂度;SGPUi为正在运行节点GPUi的计算特性;Perror,GPUi为正在运行节点GPUi的故障概率。
18.根据权利要求1至11任一项所述的方法,其特征在于,若所述训练并行模式为参数服务器,则通信图节点表示数据从任意计算图节点传输到参数服务器的逻辑或数据从参数服务器传输到任意计算图节点的逻辑。
19.一种异构算力的耗时预测仿真装置,其特征在于,包括:
确定模块,用于确定模型训练任务、运行所述模型训练任务中的各算子的多个异构算力设备以及所述多个异构算力设备的网络拓扑信息;
构建模块,用于按照预设的训练并行模式确定多个通信图节点,基于所述多个异构算力设备及其运行的相应算子确定多个计算图节点;其中,所述通信图节点表示数据传输逻辑;按照所述训练并行模式和所述模型训练任务中的各算子间的关系建立所述多个通信图节点之间、所述多个计算图节点之间、任意通信图节点和任意计算图节点之间的有向边,得到有向图;
预测模块,用于根据所述网络拓扑信息仿真得到的仿真网络预测所述多个通信图节点的通信耗时,根据所述有向图预测所述多个计算图节点的计算耗时,累计所述通信耗时和所述计算耗时得到所述模型训练任务的训练耗时。
20.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至18任一项所述的方法。
21.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至18任一项所述的方法。
22.一种异构算力的耗时预测仿真系统,其特征在于,包括:
任务建模模块,用于进行模型训练任务的建模;
算力信息记录模块,用于记录运行所述模型训练任务中的各算子的多个异构算力设备;
网络信息收集模块,用于收集所述多个异构算力设备的网络信息;
耗时预测模块,用于实现如权利要求1至18任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410230017.XA CN117827619A (zh) | 2024-02-29 | 2024-02-29 | 异构算力的耗时预测仿真方法、装置、设备、介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410230017.XA CN117827619A (zh) | 2024-02-29 | 2024-02-29 | 异构算力的耗时预测仿真方法、装置、设备、介质及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827619A true CN117827619A (zh) | 2024-04-05 |
Family
ID=90513781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410230017.XA Pending CN117827619A (zh) | 2024-02-29 | 2024-02-29 | 异构算力的耗时预测仿真方法、装置、设备、介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827619A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103619033A (zh) * | 2013-12-04 | 2014-03-05 | 安徽理工大学 | 基于贪心路径的移动sink节点数据收集方法 |
US20140359563A1 (en) * | 2013-06-04 | 2014-12-04 | Qualcomm Incorporated | Efficient execution of graph-based programs |
US20200342286A1 (en) * | 2019-04-25 | 2020-10-29 | Alibaba Group Holding Limited | Computation graph mapping in heterogeneous computer system |
US20210136595A1 (en) * | 2017-05-31 | 2021-05-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Planning deployment of a node in a communications network with a drone |
CN113316118A (zh) * | 2021-05-31 | 2021-08-27 | 中国人民解放军国防科技大学 | 基于任务认知的无人机集群网络自组织系统及方法 |
CN113535393A (zh) * | 2021-07-12 | 2021-10-22 | 湖南工学院 | 异构边缘计算中卸载dag任务的计算资源分配方法 |
US20210383228A1 (en) * | 2020-06-05 | 2021-12-09 | Deepmind Technologies Limited | Generating prediction outputs using dynamic graphs |
WO2023088288A1 (zh) * | 2021-11-19 | 2023-05-25 | 华为技术有限公司 | 二部图构建方法、显示方法和装置 |
CN116680060A (zh) * | 2023-08-02 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 面向异构计算系统的任务分配方法、装置、设备和介质 |
CN116701043A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 面向异构计算系统的故障节点切换方法、装置和设备 |
CN117290102A (zh) * | 2023-09-27 | 2023-12-26 | 中国科学院软件研究所 | 跨域异构资源的调度方法及装置 |
-
2024
- 2024-02-29 CN CN202410230017.XA patent/CN117827619A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359563A1 (en) * | 2013-06-04 | 2014-12-04 | Qualcomm Incorporated | Efficient execution of graph-based programs |
CN103619033A (zh) * | 2013-12-04 | 2014-03-05 | 安徽理工大学 | 基于贪心路径的移动sink节点数据收集方法 |
US20210136595A1 (en) * | 2017-05-31 | 2021-05-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Planning deployment of a node in a communications network with a drone |
US20200342286A1 (en) * | 2019-04-25 | 2020-10-29 | Alibaba Group Holding Limited | Computation graph mapping in heterogeneous computer system |
US20210383228A1 (en) * | 2020-06-05 | 2021-12-09 | Deepmind Technologies Limited | Generating prediction outputs using dynamic graphs |
CN113316118A (zh) * | 2021-05-31 | 2021-08-27 | 中国人民解放军国防科技大学 | 基于任务认知的无人机集群网络自组织系统及方法 |
CN113535393A (zh) * | 2021-07-12 | 2021-10-22 | 湖南工学院 | 异构边缘计算中卸载dag任务的计算资源分配方法 |
WO2023088288A1 (zh) * | 2021-11-19 | 2023-05-25 | 华为技术有限公司 | 二部图构建方法、显示方法和装置 |
CN116680060A (zh) * | 2023-08-02 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 面向异构计算系统的任务分配方法、装置、设备和介质 |
CN116701043A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 面向异构计算系统的故障节点切换方法、装置和设备 |
CN117290102A (zh) * | 2023-09-27 | 2023-12-26 | 中国科学院软件研究所 | 跨域异构资源的调度方法及装置 |
Non-Patent Citations (3)
Title |
---|
孙智中;陈晓雷;: "温度场模拟的并行计算及负载均衡策略研究", 工业控制计算机, no. 04, 25 April 2013 (2013-04-25) * |
徐力;车念;: "网络节点均衡性优化控制模型仿真研究", 计算机仿真, no. 04, 15 April 2017 (2017-04-15) * |
邹翠;林德丽;杨军;: "Ad hoc通信网络的局部路由修复仿真", 计算机仿真, no. 01, 15 January 2020 (2020-01-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042675B2 (en) | Systems and methods for automatically realizing models for co-simulation | |
CN114862656B (zh) | 基于多gpu的分布式深度学习模型训练代价的获取方法 | |
US20230035451A1 (en) | Resource usage prediction for deep learning model | |
CN115169570B (zh) | 量子网络协议仿真方法、装置及电子设备 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
EP4198771A1 (en) | Data processing method and apparatus, computer readable medium, and electronic device | |
WO2022048557A1 (zh) | Ai模型的训练方法、装置、计算设备和存储介质 | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN116127899B (zh) | 芯片设计系统、方法、电子设备和存储介质 | |
CN112527281B (zh) | 基于人工智能的算子升级方法、装置、电子设备及介质 | |
CN115292046A (zh) | 算力分配方法、装置、存储介质及电子设备 | |
CN116047934A (zh) | 一种无人机集群的实时仿真方法、系统以及电子设备 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN114911492A (zh) | 推理服务部署方法、装置、设备以及存储介质 | |
CN117032938B (zh) | 一种算子的并行调度方法、装置、电子设备及存储介质 | |
CN111062521A (zh) | 一种在线预测方法、系统及服务器 | |
CN112463532B (zh) | 构建snn工作负载自动映射器的方法及自动映射器 | |
CN116167445B (zh) | 量子测量模式的处理方法、装置及电子设备 | |
CN117827619A (zh) | 异构算力的耗时预测仿真方法、装置、设备、介质及系统 | |
CN112948114A (zh) | 边缘计算方法和边缘计算平台 | |
CN110377769A (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
CN115759260B (zh) | 深度学习模型的推理方法、装置、电子设备和存储介质 | |
CN114615144B (zh) | 网络优化方法及系统 | |
Ong et al. | Interactive codesign for real-time embedded control systems: task graph generation from SA/VHDL models | |
CN115858921A (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 |