当前位置: 首页 > 专利查询>之江实验室专利>正文

一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法技术方案

技术编号:34330351 阅读:78 留言:0更新日期:2022-07-31 01:57
本发明专利技术属于人工智能下的深度学习领域,公开了一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法,所述系统包括GPU Profile模块、任务信息采集模块、GPU选择模块和深度学习训练模块;本发明专利技术的一种用于分布式环境下多深度学习任务的异构GPU分配方法可以通过将不同计算能力的GPU分配给对应需求的任务,将模型层次复杂且批次数据量大的任务适配到性能最佳的GPU且显存足够存储的节点上运行,加快需要更长时间做深度学习训练的任务,从而明显提高异构环境下的多任务执行效率;而且当多深度学习任务并发执行,多深度学习能够整体更快地完成,可以节约程序员或用户等待结果的时间。果的时间。果的时间。

A heterogeneous GPU allocation system and method for multi depth learning tasks in distributed environment

【技术实现步骤摘要】
一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法


[0001]本专利技术属于人工智能下的深度学习领域,尤其涉及一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法。

技术介绍

[0002]如今,深度神经网络借助大规模数据的训练取得很精确的模型,从而促使深度神经网络在图像分类、语音识别、无人驾驶等领域不断应用。这些趋势导致深度神经网络模型变得越来越复杂,也促使加速深度神经网络训练的设备不断出现,如GPU、FPGA、TPU等。因此如何更高效利用分布式环境中的异构加速设备逐渐成为重要的热点问题。
[0003]多任务在分布式异构GPU环境下并发做深度学习训练逐渐成为普遍现象,其中一种场景是分布式环境下的多深度学习任务进行协同训练,且每个任务需要完成一项训练指标,面对这种场景,如何设计高效的GPU分配方案来提高多深度学习训练任务的整体执行效率成为重要研究领域。
[0004]目前深度学习训练框架传统的GPU分配方法一般是在分布式环境启动多任务时候,静态指定GPU参数,由深度学习训练框架提供的GPU选择参数,来调度不同需求的任务到对应的GPU上做深度学习训练;深度学习训练框架还提供使用所有可用的GPU分配方法,这使得每个任务的批次数据分摊到所有GPU做深度学习训练,由于计算能力强的GPU很快训练完均摊的小批次数据,这种GPU分配方案造成计算能力强的GPU会处于较长时间的空闲,所带来的影响是计算能力强的GPU利用率不高。
[0005]由于分布式环境下传统的多深度学习任务的GPU分配方案没有考虑任务的特征和需求,并没有充分利用异构的GPU性能,来满足不同的深度学习训练任务的并发运行,使得多深度学习任务整体执行效率不高。
[0006]针对上面的传统方案的不足,面向分布式环境下多深度学习任务的场景需要一种有效的GPU分配的方法,这种场景的问题亟待有效的解决方案。

技术实现思路

[0007]本专利技术目的在于提供一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法,以解决上述的技术问题。
[0008]为解决上述技术问题,本专利技术的一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法的具体技术方案如下:一种用于分布式环境下多深度学习任务的异构GPU分配系统,包括GPU Profile模块、任务信息采集模块、GPU选择模块和深度学习训练模块;所述GPU Profile模块:负责检测异构环境下的机器是否含有GPU、GPU性能强弱、GPU显存大小;所述任务信息采集模块:负责采集每个任务的训练模型、数据批次大小以及每个
任务的批次数据的训练时间;所述GPU选择模块:负责目标GPU选择,以及任务批次数据从内存缓存空间分发到GPU上;所述深度学习训练模块:负责将GPU选择模块所下发的决策GPU信息运用到该模块,并获取任务模型信息和数据批次大小信息,从而在该GPU执行对应的网络层次深度学习训练计算。
[0009]本专利技术还公开了一种用于分布式环境下多深度学习任务的异构GPU分配方法,包括如下步骤:S1,多深度学习训练任务初始化;S2,多深度学习训练任务冷启动;S3,多深度学习训练任务GPU方案动态调整;S4,多深度学习训练任务循环迭代。
[0010]进一步地,所述S1在每个深度学习训练任务初始化时,GPU Profile模块采集异构环境下各个GPU特征信息,并记录任务启动自带参数信息,这些信息是GPU选择模块的参考因素。
[0011]进一步地,所述S2在多任务的深度学习训练第一个Epoch启动时,GPU选择模块给出一个多任务深度学习训练冷启动的GPU分配方案。
[0012]进一步地,所述S2包括如下具体步骤:S21,根据任务的模型类型作为第一优先级排序因素,对所有任务按任务的深度学习训练网络层次大小进行排序;S22,根据任务的批次数据大小作为第二优先级排序因素,对所有任务按任务深度学习训练的数据批次大小再进行排序;S23,根据GPU的计算能力作为第一优先级排序因素,对所有GPU按GPU计算能力强弱进行排序;S24,根据GPU的显存大小作为第二优先级排序因素,对所有GPU按GPU显存大小再进行排序;S25,然后根据S22,S24步骤排好的顺序,从第一个到最后一个GPU依次按照该顺序分配给排好序第一个到最后一个任务,一一映射的信息记录在全局GPU分配表中,作为冷启动的分配方案。
[0013]进一步地,所述S3根据冷启动方案,启动多深度学习任务的第一个Epoch训练,任务性能计算模块会计算出每个任务的批次数据在对应的GPU上的训练时间,记录在全局运行时间列表中,传递给GPU 选择模块的分配算法,来动态调整当前的GPU分配,优化当前的GPU分配直到最佳方案。
[0014]进一步地,所述S3包括如下具体步骤:S31,当前各个任务都已经执行一次min

batch的批次数据训练,通过日志记录的每个任务当前批次数据的训练运行时间,并根据多任务的批次数据时间,求得其中时间值最大的,即得到当前GPU分配方案的最长运行时间,记录为T
cur
;S32,当前的GPU分配方案里的多任务启动深度学习训练,各个任务的第一个batch批次数据训练结束时,计算得到每个任务的批次数据训练运行时间,即全局运行时间列表
中的信息,将全局运行时间列表中记录的任务运行时间最长的和运行时间最短的任务的GPU重新做分配,让计算能力更强的GPU去执行当前运行时间最长的任务,计算能力相对较弱的GPU来执行任务运行时间最短的任务,即得到新的GPU分配方案,并在每个任务的下一个batch深度学习训练的运行时间,再求得新的GPU分配方案的最长运行时间,记录为T
next
,若新的方案执行效率优于前一个方案,将整体最优性能记录为T
best ,并将新的GPU分配方案修改在全局GPU分配表中;S33,当前多任务的每个任务的批次数据都已完成运行,并把运行时间记录在全局运行时间列表,这个时刻GPU分配算法会更新GPU的分配方案,修改在全局GPU分配表中,分配方案会在各个任务未启动做下一批次数据的深度学习训练时候,将自动设定参数指定任务在对应GPU做深度学习训练;S34,在各个任务的第一个Epoch阶段,GPU选择模块里的分配算法通过不断取各个任务的batch数据进行训练迭代,来调整方案到执行效率达到最优,当前每个任务的深度学习训练的第一个Epoch训练完,选择出一个多任务执行效率最优的方案,作为各个任务接下来多轮深度学习训练的最终方案。
[0015]进一步地,所述S4当多深度学习任务的第一个Epoch训练完成,多任务的接下来每个Epoch的深度学习训练会按照第一个Epoch生成的GPU最佳分配方案,进行各个任务批次数据分发到对应的GPU做深度学习训练,若所有任务的训练轮数都已完成,则深度学习训练任务结束。
[0016]本专利技术的一种用于分布式环境下多深度学习任务的异构GPU分配系统和方法具有以下优点:本专利技术提出一种用于分布式环境下多深度学本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于分布式环境下多深度学习任务的异构GPU分配系统,其特征在于,包括GPU Profile模块、任务信息采集模块、GPU选择模块和深度学习训练模块;所述GPU Profile模块:负责检测异构环境下的机器是否含有GPU、GPU性能强弱、GPU显存大小;所述任务信息采集模块:负责采集每个任务的训练模型、数据批次大小以及每个任务的批次数据的训练时间;所述GPU选择模块:负责目标GPU选择,以及任务批次数据从内存缓存空间分发到GPU上;所述深度学习训练模块:负责将GPU选择模块所下发的决策GPU信息运用到该模块,并获取任务模型信息和数据批次大小信息,从而在该GPU执行对应的网络层次深度学习训练计算。2.一种利用如权利要求1所述的用于分布式环境下多深度学习任务的异构GPU分配系统进行异构GPU分配的方法,其特征在于,包括如下步骤:S1,多深度学习训练任务初始化;S2,多深度学习训练任务冷启动;S3,多深度学习训练任务GPU方案动态调整;S4,多深度学习训练任务循环迭代。3.根据权利要求2所述的用于分布式环境下多深度学习任务的异构GPU分配方法,其特征在于,所述S1在每个深度学习训练任务初始化时,GPU Profile模块采集异构环境下各个GPU特征信息,并记录任务启动自带参数信息,这些信息是GPU选择模块的参考因素。4.根据权利要求2所述的用于分布式环境下多深度学习任务的异构GPU分配方法,其特征在于,所述S2在多任务的深度学习训练第一个Epoch启动时,GPU选择模块给出一个多任务深度学习训练冷启动的GPU分配方案。5.根据权利要求4所述的用于分布式环境下多深度学习任务的异构GPU分配方法,其特征在于,所述S2包括如下具体步骤:S21,根据任务的模型类型作为第一优先级排序因素,对所有任务按任务的深度学习训练网络层次大小进行排序;S22,根据任务的批次数据大小作为第二优先级排序因素,对所有任务按任务深度学习训练的数据批次大小再进行排序;S23,根据GPU的计算能力作为第一优先级排序因素,对所有GPU按GPU计算能力强弱进行排序;S24,根据GPU的显存大小作为第二优先级排序因素,对所有GPU按GPU显存大小再进行排序;S25,然后根据S22,S24步骤排好的顺序,从第一个到最后一个GPU依次按照该顺序分配给排好序第一个到最后一个任务,一一映射的信息记录在全局GPU分配表中,作为冷启动的分配方案。6.根据权利要求2所述的用于分布式环境下多深度学习任务的异构GPU分配方法,其特征在于,所述S3根据冷启动方案,启动多深度学习任务的第一个Epoc...

【专利技术属性】
技术研发人员:周方何水兵秦亦朱春节方启明曾令仿
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1