【技术实现步骤摘要】
面向智能计算的分布式训练任务调度方法、系统和装置
[0001]本专利技术涉及一种智能计算领域,尤其涉及一种面向智能计算的分布式训练任务调度方法、系统和装置。
技术介绍
[0002]深度学习的出现给自然语言处理、音视频处理、融媒体等领域带来了巨大的更新,但是随着深度学习模型越来越大,有些大模型的参数量甚至超过了几百亿,如此大规模的模型往往通过构建分布式机器学习系统来完成模型训练。同时,因为单张GPU算力有限,在模型训练的时候通过在多台机器和多张GPU卡上构建分布式训练方法来加快模型训练,已经成为一种非常普遍的方法。
[0003]分布式训练中,一个计算任务会分被分成多个子任务,并且被分配到不同GPU上执行,并且不同的分布式训练方法的通信效率和计算效率不同,当多个模型同时在计算集群中训练时,简单的调度方法显然无法发挥智能计算集群的最佳性能。当分布式训练的模型同时在智能计算集群训练时,如果仅依赖本地资源调度器,可能出现训练任务相互之间出现等待、GPU空闲、通信拥塞等问题。
技术实现思路
[0004]本专利技术的目的在于提供一种面向智能计算的分布式训练任务调度方法、系统和装置,解决了现有技术中单卡单任务调度无法充分利用分布式训练方法的协调调度特征,且无法充分挖掘分布式训练在智能计算集群的性能潜力问题。
[0005]本专利技术采用的技术方案如下:本专利技术实施例提供一种面向智能计算的分布式训练任务调度系统,计算集群包括多个计算节点,多个计算节点之间能够相互通信,各计算节点包括至少一CPU和至少一个 ...
【技术保护点】
【技术特征摘要】
1.一种面向智能计算的分布式训练任务调度系统,其特征在于,计算集群包括多个计算节点,多个计算节点之间能够相互通信,各计算节点包括至少一CPU和至少一个GPU,所述系统包括:模型性能预测和分解模块:用于根据用户输入的待训练模型、目标完成时间和目标投入资源,确定所述待训练模型对应的分布式训练方式,并将所述待训练模型划分成多个子任务,以及确定各子任务的资源消耗信息,所述分布式训练方式包括数据并行、流水并行和混合并行中的一种,所述混合并行包括数据并行和流水并行,所述资源消耗信息包括计算消耗和内存消耗;全局GPU资源调度器:用于在接收到所述模型性能预测和分解模块发送的子任务请求后,根据各子任务的资源消耗信息及多个所述计算节点的GPU运行情况,将各子任务分配到匹配的计算节点的GPU进行训练,并构建各子任务之间的通信拓扑,并在各计算节点的GPU训练对应子任务的过程中,监控各计算节点的GPU的计算资源运行情况,以及根据所有计算节点的GPU的计算资源运行情况,控制子任务的调度,其中,所述子任务请求携带有所述待训练模型对应的分布式训练方式、多个所述子任务及各子任务的资源消耗信息;和各计算节点均配置的本地GPU资源调度器:用于根据所述分布式训练方式,对分配到该计算节点的子任务进行本地调度。2.根据权利要求1所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述计算资源运行情况包括子任务的等待时间和GPU利用率;所述全局GPU资源调度器在根据所有计算节点的GPU的计算资源运行情况,控制子任务的调度时,具体用于:对等待时长大于或等于预设时长阈值的子任务增加备份节点,所述备份节点是多个所述计算节点中除所述等待时长大于或等于预设时长阈值的子任务对应的当前计算节点外的其他计算节点,且所述备份节点的GPU利用率小于或等于预设利用率阈值;将所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数拷贝到所述备份节点,以将所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数以数据并行方式加入到所述备份节点在下一轮的迭代中参与该任务的训练中。3.根据权利要求2所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述全局GPU资源调度器在将所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数拷贝到所述备份节点,以将所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数以数据并行方式加入到所述备份节点在下一轮的迭代中参与该任务的训练中时,具体用于:向所述备份节点的本地GPU资源调度器发送第一调度信息,所述第一调度信息携带所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数;所述备份节点的本地GPU资源调度器在接收到所述第一调度信息后,将所述等待时长大于或等于预设时长阈值的子任务对应的最新模型参数以数据并行方式加入到所述备份节点在下一轮的迭代中参与该任务的训练中。4.根据权利要求1所述的面向智能计算的分布式训练任务调度系统,其特征在于,当所述子任务对应的分布式训练方式为数据并行时,所述子任务的训练过程包括梯度计算阶段和梯度同步阶段,所述全局GPU资源调度器在根据所有计算节点的GPU的计算资源运行情况,控制子任务的调度时,具体用于:
根据所有数据并行的子任务所在的计算节点的GPU的计算资源运行情况,控制对应子任务的模型参数和中间变量的预取。5.根据权利要求4所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述全局GPU资源调度器在根据所有数据并行的子任务所在的计算节点的GPU的计算资源运行情况,控制对应子任务的模型参数和中间变量的预取时,具体用于:在接收到参数服务器开始计算所有数据并行的子任务的全局梯度信息后,发送第二调度信息给数据并行的子任务对应的计算节点,以通过所述第二调度信息提示所述计算节点优先执行相应的数据并行的子任务,并从所述计算节点的GPU主存中将所述相应的数据并行的子任务对应的最新模型参数和中间变量拷贝回所述计算节点的GPU显存中;所述相应的数据并行的子任务对应的最新模型参数和中间变量是在所述相应的数据并行的子任务等待其他依赖子任务的计算结果期间,且预计的等待时长超过所述计算节点的CPU
‑
GPU内存拷贝时间时,所述计算节点将所述相应的数据并行的子任务对应的模型参数和中间变量由所述计算节点的GPU显存中暂时迁移至所述计算节点的CPU主存中。6.根据权利要求1至5任一项所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述全局GPU资源调度器在监控各计算节点的GPU的计算资源运行情况时,具体用于:周期性获取各计算节点的GPU的计算资源运行情况。7.根据权利要求6所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述全局GPU资源调度器具体用于:周期性接收各计算节点向所述全局GPU资源调度器反馈的该计算节点的GPU的计算资源运行情况。8.根据权利要求1所述的面向智能计算的分布式训练任务调度系统,其特征在于,所述全局GPU资源调度器还用于:在所述待训练模型训练完成后,根据所述待训练模型的各子任务的历史分配信息,确定各子任务所在的计算节点;控制各子任务所在的计算节点回收该计算节点上训练对应的子任务时使用的本地资源;在确定所有计算节点资源回收结束后,释放全局GPU资源调度器上训练所述待训练模型时使用的资源。9.根据权利要求6所述的面向智能计算的分布式训练任务调度系统,其特征在于, 各计算节点均配置的本地GPU资源调度器在根据所述分布式训练方式,对分配到该计算节点的子任务进行本地调度时,具体用于:当根据所述分布式训练方式,确定分配到本地的子任务的训练类型,所述训练类型包括数据并行任务和流水并行任务;根据所述分配到本地的子任务的训练类型,确定所述分配到本地的子任务的本地调度策略;根据所述本地调度策略,对所述分配到本地的子任务进行本地调度;当所述训练类型为数据并行任务时,所述子任务的本地调度策略为第一调度策略;当所述训练类型为流水并行任务时,所述子任务的本地调度策略为第二调度策略。10.根据权利要求9所述的面向智能计算的分布式训练任务调度系统,其特征在于,当所述训练类型为数据并行任务时,所述子任务的训练过程包括梯度计算阶段和梯度同步阶
段;所述第一调度策略包括:获取当前子任务在所述梯度计算阶段的第一计算需求以及当前计算节点中其...
【专利技术属性】
技术研发人员:朱世强,李勇,程稳,陈光,曾令仿,
申请(专利权)人:之江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。