CN117687802B - 一种基于云平台的深度学习并行调度方法、装置和云平台 - Google Patents
一种基于云平台的深度学习并行调度方法、装置和云平台 Download PDFInfo
- Publication number
- CN117687802B CN117687802B CN202410151226.5A CN202410151226A CN117687802B CN 117687802 B CN117687802 B CN 117687802B CN 202410151226 A CN202410151226 A CN 202410151226A CN 117687802 B CN117687802 B CN 117687802B
- Authority
- CN
- China
- Prior art keywords
- gpu
- model
- array
- combination
- capacity
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013135 deep learning Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims description 157
- 238000012549 training Methods 0.000 claims description 78
- 238000004364 calculation method Methods 0.000 claims description 69
- 238000013136 deep learning model Methods 0.000 claims description 35
- 238000007667 floating Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 8
- 238000005520 cutting process Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 description 21
- 238000004590 computer program Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005215 recombination Methods 0.000 description 4
- 230000006798 recombination Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明提供了一种基于云平台的深度学习并行调度方法、装置和云平台,本发明的方法通过对显存不满足模型内存要求的GPU进行重新组合,能够有效合理调度显存大小不同和计算性能不同的云服务器,充分调度云平台中服务器的计算能力,有效提高了云平台中服务器的计算能力利用率。
Description
技术领域
本发明涉及云计算调度技术领域,具体来说,涉及一种基于云平台的深度学习并行调度方法、装置和云平台。
背景技术
大规模深度学习训练是指利用多个计算设备(如GPU或CPU)来加速深度学习模型训练的技术。大规模深度学习训练可以应用于各种复杂的深度学习任务,如自然语言处理、计算机视觉、推荐系统等。大规模深度学习训练的目标是提高训练速度,减少训练时间,同时保证模型的性能和效果。大规模深度学习训练的作用、用途和重要性包括提升模型精度、降低数据标注成本、提高开发效率。大规模深度学习训练需要将大模型进行切割分配到多个GPU中,需要将训练数据分配到多个GPU中,达到加速的目的。
大规模深度学习训练是目前算力需求最大的应用之一,因此通过在云平台上来提升大规模深度训练的计算速度是有必要的,但是云平台中是由各种不同类型的服务器组成,即云平台中不同种类的云服务器对大规模深度学习的训练能力是完全不同的,通常与云服务器中配备的GPU型号相关,不同型号的GPU在显存大小和计算能力上都有很大的差异。显存较小的可能不能完全容纳模型,需要多个GPU进行共同存储模型,完成训练。而计算能力的强弱直接影响训练的速度。
大规模深度学习训练的并行分为模型并行和数据并行,通常训练在同型号的GPU上进行计算。在进行大规模分布式训练时,可以将数据或者模型平均分配到每个GPU上,达到并行加速的目的。但是云平台由大量不同种类的云服务器组成,而传统的并行任务分配方法无法合理调度显存大小不同和计算性能不同的云服务器,不能充分调度云平台中服务器的计算能力。
因此如何合理调度多型号的云服务器来进行大规模深度学习训练计算,提高计算资源利用率是亟待解决的难题。
本文提供的背景描述用于总体上呈现本公开的上下文的目的。除非本文另外指示,在该章节中描述的资料不是该申请的权利要求的现有技术并且不要通过包括在该章节内来承认其成为现有技术。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于云平台的深度学习并行调度方法,包括如下步骤:
S1、获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
S2、根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
S3、根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
S4、根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
S5、根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
S6、根据分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练。
具体的,所述步骤S2具体为:
获取当前云平台参与深度学习训练的GPU型号数组并排序,并将GPU型号数组按照GPU显存大小与待训练的模型参数内存的大小关系划分为第一型号数组GPU_class_id1[]和第二型号数组GPU_class_id2[],其中第一型号数组GPU_class_id1[]存放GPU显存大小小于待训练模型的参数内存大小的GPU,第二型号数组GPU_class_id2[]存放GPU显存大小大于或等于待训练模型的参数内存大小的GPU。
具体的,所述步骤S3具体为:将第一型号数组GPU_class_id1[]中GPU显存通过大小结合的原则重新组合后与训练模型的内存大小比较进行分组,得到GPU组合数组GPU_grp_class_id[];根据GPU组合数组GPU_grp_class_id[]中每个GPU组合中GPU显存大小对所述训练模型进行切割分配。
具体的,所述步骤S3具体包括以下步骤:
S31、通过先逆序后正序的方式遍历第一型号数组GPU_class_id1[]对其中的GPU进行分组并达到预设条件后存入GPU组合数组GPU_grp_class_id[],并建立GPU组合索引数组GPU_grp_id[],所述预设条件为每个GPU组合的显存之和大于或等于所述训练模型的内存大小;
S32、分别计算GPU组合数组GPU_grp_class_id[]中每个GPU组合的显存之和,然后根据每个GPU组合中单个GPU的显存在所述每个GPU组合的显存之和中的占比对所述训练模型进行切割分配。
具体的,步骤S4具体包括以下步骤:
S41、遍历第二型号数组GPU_class_id2[]计算其中每个GPU对于所述模型的计算能力并存入第二能力数组GPU_capacity2[];
S42、遍历GPU组合数组GPU_grp_class_id[]计算其中每个GPU对于所述模型的计算能力并存入第一能力数组GPU_capacity1[],并根据第一能力数组GPU_capacity1[]计算数组GPU组合数组GPU_grp_class_id[]中每个GPU组合的计算能力并存入组合能力数组GPU_grp_cpt[]。
具体的,所述步骤S5还包括:
S51、计算组合能力数组GPU_grp_cpt[]和第二能力数组GPU_capacity2[]中所有GPU计算能力之和得到总权重weight_sum;
S52、根据组合能力数组GPU_grp_cpt[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到GPU组数据量数组GPU_grp_data[i];
S53、根据第二能力数组GPU_capacity2[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到第二数据量数组GPU2_data[i]。
具体的,所述步骤S4中GPU计算能力的计算公式为:
;
其中,GPU_capacity为GPU计算能力;训练过程中的计算主要由单精度FP32、半精度FP16及整型INT32构成,a为单精度FP32计算占比;b为半精度FP16计算占比;c为整型INT32计算占比;x为GPU单精度FP32的理论浮点性能;y为GPU半精度FP16的理论浮点性能;z为GPU整型INT32的理论浮点性能。
第二方面,本发明的另一个实施例公开了一种基于云平台的深度学习并行调度装置,包括如下单元:
待训练数据获取单元、用于获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
资源比较单元、用于根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
资源组合单元、用于根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
计算能力获取单元、用于根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
训练数据分配单元、用于根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
训练分配单元、用于根据分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练。
第三方面,本发明的另一个实施例公开了一种云平台,所述云平台包括N种不同GPU类型的服务器,所述云平台所述服务器用于实现上述基于云平台的深度学习并行调度方法。
本实施例的方法首先通过对GPU资源中的显存进行筛选,将GPU显存不满足模型内存要求进行重新组合以使得其满足模型内存要求,进而分别标定GPU的计算能力,并根据GPU计算能力划分待训练数据。本实施例的方法通过对显存不满足模型内存要求的GPU进行重新组合,能够有效合理调度显存大小不同和计算性能不同的云服务器,充分调度云平台中服务器的计算能力,有效提高了云平台中服务器的计算能力利用率。
进一步的,本实施例通过标定GPU在训练中的计算能力,能够在不同的计算性能的GPU上实现计算的负载均衡,不会造成不同GPU之间的计算等待问题。
进一步的,本实施例的大规模深度学习并行训练基于消息传递接口实现多进程之间的数据传输,设计的调度模式能够充分利用云平台资源,显著提升了深度学习的计算速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于云平台的深度学习并行调度方法的流程图;
图2是本发明实施例提供的一种基于云平台的深度学习并行调度装置示意图;
图3是本发明实施例提供的一种基于云平台的深度学习并行调度设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参考图1,本实施例公开了一种基于云平台的深度学习并行调度方法,其包括如下步骤:
S1、获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
GPU资源包括的这部分数据在GPU发布时都会公布。
本实施例可以将待训练的深度学习模型上传到云平台,其中在将待训练的深度学习模型上传到云平台时,同时指定所述待训练的深度学习模型的模型参数所需的内存大小。
所述云计算平台可用的GPU资源包括总共可参与训练的M个GPU,所述M个GPU型号为N种,每一种型号GPU有对应的显存大小和FP32/FP16/INT32的浮点计算能力;参考表1,第1种GPU型号为“1080Ti”,其显存为11GB,FP32计算能力为11.34Tflops,FP16计算能力为177.2Gflops,INT32计算能力为11.34Tflops。
在上传待训练的深度学习模型时,可以指定待训练的模型参数内存大小为Mmodel_size(GB)。
S2、根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
本实施根据待训练的模型参数内存大小Mmodel_size(GB),分别与云平台中M个GPU一一比较以获取对应的GPU的显存与待训练的模型参数内存大小Mmodel_size(GB)的大小关系,并获取显存大于等于M model_size(GB)的所用GPU构成第一GPU资源以及显存小于Mmodel_size(GB)的所用GPU构成第二GPU资源。
具体的,本实施例的步骤S2具体为:
S21、获取当前云平台参与深度学习训练的GPU型号数组并排序,并将GPU型号数组按照GPU显存大小与待训练的模型参数内存的大小关系划分为第一型号数组GPU_class_id1[]和第二型号数组GPU_class_id2[],其中第一型号数组GPU_class_id1[]存放GPU显存大小小于待训练模型的参数内存大小的GPU,第二型号数组GPU_class_id2[]存放GPU显存大小大于或等于待训练模型的参数内存大小的GPU;
云平台内包含众多不同种类不同数量的云服务器,包含不同型号GPU,并部署了管理和调度系统,管理和调度系统为任务分配计算资源,并查询任务的运行状况。
具体的,步骤S21中将GPU型号数组按照GPU显存大小划分为第一型号数组GPU_class_id1[]和第二型号数组GPU_class_id2[]具体为:
将GPU型号数组中各GPU显存大小与训练模型的内存大小进行比较,其中GPU显存大小小于训练模型的内存大小的GPU放入第一型号数组GPU_class_id1[],GPU显存大小大于训练模型的内存大小的GPU放入第二型号数组GPU_class_id2[]。
根据云平台中参与大规模深度学习训练的服务器进行显存分析,根据训练模型大小判断显存能否完全容纳,并进行分类;具体如下:
步骤A1,选定云平台中参与大规模深度学习训练的服务器;
步骤A2,设总共参与训练计算的GPU数为M,GPU型号为N种;
步骤A3,对N种GPU进行型号编号,初始化GPU型号编号数组GPU_class,N种GPU类型对应0到N-1号,且按照显存大小从小到达排列。初始化M个GPU的型号数组GPU_class_id,记录每个GPU的型号索引。
例如0号GPU为“A6000”,那么GPU_class_id[0]=2;且将GPU_class_id数组的值从小到大排列,如表2所示:
步骤A4,假定需要训练的模型参数内存大小为Mmodel_size(GB);
步骤A5,对于N种不同型号的GPU;初始化显存大小数组MEM_size,长度为N;初始化显存比较数组MEM_compare,长度为N;
步骤A6,初始化i=0,其中i表示GPU型号编号;
步骤A7,获取GPU_class[i]的GPU型号的显存容量Yi(GB),并存入MEM_size数组,有MEM_size[i]=Yi(GB);
具体的,本发明对通过GPU型号获取其显存信息的具体方式不做限定,本领域技术人员应当明白,通过GPU型号获取其显存信息的方式可以有多种,为现有成熟技术,此处不再赘述。
步骤A8,对GPU的显存容量和模型参数大小进行判断;如果Yi大于Mmodel_size则标记MEM_compare[i]=1,如果Yi小于等于Mmodel_size则标记MEM_compare[i]=0。
步骤A9,i=i+1;
步骤A10, 判断i是否小于N,若是,则返回步骤A7,若否,则跳转步骤A11。
步骤A11,新建第一型号数组GPU_class_id1用于存放显存小于等于模型参数内存的GPU编号;新建第二型号数组GPU_class_id2用于存放显存大于模型参数内存的GPU编号;
步骤A12,初始化i=0,j=0,k=0,其中i表示参与训练的GPU编号;
步骤A13,如果MEM_compare[GPU_class_id[i]]等于0,即显存小于等于模型参数内存,GPU_class_id1[j]=GPU_class_id[i],j=j+1;
如果MEM_compare[GPU_class_id[i]]等于1,即显存大于模型参数内存,GPU_class_id2[k]=GPU_class_id[i],k=k+1;
步骤A14,i=i+1;
步骤A15, 判断i是否小于M,若是,则返回步骤A13,若否,则跳转步骤A16。
步骤A16,M1=j, M2=k;且必有M1+M2=M;
数组GPU_class_id的长度为M1,数组GPU_class_id2的长度为M2。对应的显存可以通过MEM_size[GPU_class_id1[]]和MEM_size[GPU_class_id2[]]进行查询。且GPU_class_id1和GPU_class_id2数组的值都是从小到大排列。
S3、根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
具体步骤S3具体为:将第一型号数组GPU_class_id1[]中GPU显存通过大小结合的原则重新组合后与训练模型的内存大小比较进行分组,得到GPU组合数组GPU_grp_class_id[];根据GPU组合数组GPU_grp_class_id[]中每个GPU组合中GPU显存大小对所述训练模型进行切割分配;
对于显存不能完全容纳整个模型的显卡进行重新组合,并将模型进行切割后放入显卡中;
具体的,步骤S3具体包括以下步骤:
S31、通过先逆序后正序的方式遍历第一型号数组GPU_class_id1[]对其中的GPU进行分组并达到预设条件后存入GPU组合数组GPU_grp_class_id[],并建立GPU组合索引数组GPU_grp_id[],所述预设条件为每个GPU组合的显存之和大于或等于所述训练模型的内存大小;
具体如下:
步骤B1,对于GPU_class_id1[]中的M1个GPU,进行重新组合;
步骤B2,采用大小结合的原则进行重新组合;GPU_class_id1数组已经是从小到大进行排列的。新建GPU组合索引数组GPU_grp_id[],维度为Grp_num,需要计算得到;用于记录重新组合后每个GPU组的索引位置。新建GPU组合数组GPU_grp_class_id[],维度为M_grp,需要计算得到,用于记录重新组合后的GPU排序。
步骤B3,GPU_grp_id[0]=0;n=0;i=0;j=1;
步骤B4,如果i大于等于M1-j,跳转步骤B10,否则跳转步骤B5;
步骤B5,MEM_sum用于记录每个组的临时显存总和;
MEM_sum=MEM_size[GPU_class_id1[M1-j]];
GPU_grp_id[j]=GPU_grp_id[j-1]+1;
GPU_grp_class_id[n]=GPU_class_id1[M1-j];
n=n+1;
步骤B6,如果i大于等于M1-j,跳转步骤B9,否则跳转步骤B7;
步骤B7,
MEM_sum=MEM_sum+MEM_size[GPU_class_id1[i]];
GPU_grp_id[j]=GPU_grp_id[j]+1;
GPU_grp_class_id[n]=GPU_class_id1[i];
n=n+1;
步骤B8,如果MEM_sum小于等于Mmodel_size;i=i+1;并跳转步骤B6;
如果MEM_sum大于Mmodel_size;i=i+1;j=j+1;并跳转步骤B4;
步骤B9,Grp_num=j;M_grp=GPU_grp_id[Grp_num];跳转步骤B11;
步骤B10,Grp_num=j-1;M_grp=GPU_grp_id[Grp_num];
GPU_grp_id[]和GPU_grp_class_id[]的关系如下:
例如,GPU_grp_id数组中有Grp_num个值,其索引id是0,1,2,...,Grp_num-1,对应的值分别是0,2,6,...,M1;
GPU_grp_class_id数组中有M1个值,其索引id是0,1,2,3,4,5...,M1-1,对应的值分别是n,0,n-1,0,0,1,...,1;
GPU_grp_id[0]=0,GPU_grp_id[1]=2,表示GPU_grp_class_id中的0-1是第1组GPU组合,对应的GPU型号是n和0; GPU_grp_id[1]=2,GPU_grp_id[2]=6,表示GPU_grp_class_id中的2-5是第2组GPU组合,对应的GPU型号是n-1、0、0和1;
步骤B11,对最后一组GPU分组对应的显存进行求和(按照上述计算规则,最后一组GPU有可能出现显存之和小于等于Mmodel_size的情况);
步骤B12,i=GPU_grp_id[Grp_num-1];sum=0;
步骤B13,sum=sum+Mem_size[GPU_grp_class_id[i]];
步骤B14,如果i小于GPU_grp_id[Grp_num],i=i+1,跳转步骤B13;否则跳转步骤B15;
步骤B15,如果sum小于等于Mmodel_size,跳转步骤B16;否则跳转步骤B17;
步骤B16,删除最后一组,即Grp_num=Grp_num-1;
M_grp=GPU_grp_id[Grp_num];
具体的,如果最后一组的显存之和小于等于Mmodel_size,则这部分GPU资源释放回资源池,不参与计算。
S32、分别计算GPU组合数组GPU_grp_class_id[]中每个GPU组合的显存之和,然后根据每个GPU组合中单个GPU的显存在所述每个GPU组合的显存之和中的占比对所述训练模型进行切割分配。
步骤B17,同一组内的多个GPU共同存储模型,将模型参数根据GPU显存大小进行切割分配;
步骤B18,i=0;GPU分配到的模型参数大小用数组GPU_grp_Model表示,数组维度为M_grp;
步骤B19,对第i组的所有GPU显存求和;
Mem_sum=0;j=GPU_grp_id[i];
步骤B20,Mem_sum=Mem_sum+Mem_size[GPU_grp_class_id[j]];
步骤B21,如果j小于GPU_grp_id[i+1],j=j+1,跳转步骤B20;否则跳转步骤B22。
步骤B22,对第i组的每个GPU计算分配模型的大小;
j=GPU_grp_id[i];
步骤B23,
GPU_grp_Model[j]=Mem_size[GPU_grp_class_id[j]]/Mem_sum;
步骤B24.如果j小于GPU_grp_id[i+1],j=j+1,跳转步骤B23;否则跳转步骤B25;
步骤B25,i=i+1;
步骤B26,如果i小于Grp_num;跳转步骤B19,否则跳转步骤B27;
步骤B27,结束。
S4、根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
所述计算类型包括:单精度FP32、半精度FP16、整型INT32。计算类型组成为所述计算类型中单精度FP32、半精度FP16、整型INT32组成的占比。
具体步骤S4具体为:
根据GPU的理论浮点性能和模型的计算类型组成计算第二型号数组GPU_class_id2[]和GPU组合数组GPU_grp_class_id[]中各GPU计算能力,分别存入第二能力数组GPU_capacity2[]和组合能力数组GPU_grp_cpt[];
具体的,步骤S4中GPU计算能力的计算公式为:
;
其中,GPU_capacity为GPU计算能力;训练过程中的计算主要由单精度FP32、半精度FP16及整型INT32构成,a为单精度FP32计算占比;b为半精度FP16计算占比;c为整型INT32计算占比;x为GPU单精度FP32的理论浮点性能;y为GPU半精度FP16的理论浮点性能;z为GPU整型INT32的理论浮点性能。
GPU的理论浮点性能代表显卡的浮点计算能力,越高算力越强,深度学习、科学计算用途较多;
具体的,步骤S4具体包括以下步骤:
S41、遍历第二型号数组GPU_class_id2[]计算其中每个GPU对于所述模型的计算能力并存入第二能力数组GPU_capacity2[];
根据GPU的各项理论计算性能和模型计算类型标定GPU_class_id2[]中的GPU在训练中的计算能力;
具体如下:
步骤C1,估算模型中的计算组成,训练过程中的计算主要由单精度FP32/半精度FP16/整型INT32构成,设三种计算占比例分别为a:b:c;
本实施例中通过thop 工具对模型进行统计,从而估算模型中的计算组成。
步骤C2,计算GPU_class_id2[]中的GPU对于该模型的综合计算能力;用数组GPU_capacity2记录,长度为M2;
步骤C3,i=0;
步骤C4,根据GPU_class[GPU_class_id2[i]],获取GPU的FP32/FP16/INT32的理论浮点性能,这部分数据会提前存在分别为x(Gflops)、y(Gflops)、z(Gflops);
具体的,GPU的FP32/FP16/INT32的理论浮点性能可从GPU资源中获取,参考表1。
步骤C5,根据GPU的理论浮点性能和模型参数计算占比标定计算能力,计算能力标定公式为:GPU_capacity2[i]=1/(a/x+b/y+c/z);
步骤C6,i=i+1;
步骤C7,如果i小于M2,则跳转步骤C4;否则跳转步骤C8;
步骤C8,结束。
S42、遍历GPU组合数组GPU_grp_class_id[]计算其中每个GPU对于所述模型的计算能力并存入第一能力数组GPU_capacity1[],并根据第一能力数组GPU_capacity1[]计算数组GPU组合数组GPU_grp_class_id[]中每个GPU组合的计算能力并存入组合能力数组GPU_grp_cpt[];
根据GPU的各项理论计算性能和模型计算类型标定GPU_grp_class_id中的GPU在训练中的计算能力;
具体如下:
步骤D1, i=0;
步骤D2, 估算GPU_grp_Model[i]中的单精度FP32/半精度FP16/整型INT32构成,设比例为a:b:c;
步骤D3,计算GPU_grp_class_id[i]中的GPU对于该模型的综合计算能力;用数组GPU_capacity1记录,长度为M1;
步骤D4,根据GPU_class[GPU_grp_class_id[i]],获取GPU的FP32/FP16/INT32的理论浮点性能,分别为x(Gflops)、y(Gflops)、z(Gflops);
步骤D5,根据GPU的理论浮点性能和模型参数计算占比标定计算能力,计算能力标定公式为:GPU_capacity1[i]=1/(a/x+b/y+c/z);
步骤D6,i=i+1;
步骤D7,如果i小于M1,则跳转步骤D4;否则跳转步骤D8;
步骤D8,标定每个小组的计算能力,在每个组中多个GPU共同对1个模型计算,需要标定每个组的计算能力;每个组的计算能力用数组GPU_grp_cpt记录,维度为Grp_num;
步骤D9,i=0;
步骤D10,GPU_grp_cpt[i]=0;j=GPU_grp_id[i];
步骤D11,GPU_grp_cpt[i]=GPU_grp_cpt[i]+GPU_capacity1[j];
步骤D12,如果j小于GPU_grp_id[i+1],j=j+1,并跳转到步骤D11;否则跳转到步骤D13;
步骤D13,如果i小于Grp_num,i=i+1,跳转10;否则跳转步骤D14;
步骤D14,结束;
至此GPU_grp_cpt中存放了Grp_num个组的标定计算能力;
S5、根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
具体步骤S5为根据第二能力数组GPU_capacity2[]和组合能力数组GPU_grp_cpt[]中各GPU计算能力对分配到的训练数据进行分配;
根据标定的GPU计算能力对训练数据进行分配;
具体的,步骤S5具体包括以下步骤:
S51、计算组合能力数组GPU_grp_cpt[]和第二能力数组GPU_capacity2[]中所有GPU计算能力之和得到总权重weight_sum;
具体如下:
步骤E1,设总数据量为data_num;
步骤E2,计算总权重weight_sum;由两部分构成GPU_grp_cpt[]和GPU_capacity2[];
步骤E3,i=0;weight_sum=0;
步骤E4,weight_sum=weight_sum+GPU_grp_cpt[i];
步骤E5,如果i小于Grp_num,i=i+1,跳转步骤E4;否则跳转步骤E6;
步骤E6,i=0;
步骤E7,weight_sum=weight_sum+GPU_capacity2[i];
步骤E8,如果i小于M2,i=i+1,跳转步骤E7;否则跳转步骤E9;
S52、根据组合能力数组GPU_grp_cpt[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到GPU组数据量数组GPU_grp_data[i];
具体如下:
步骤E9,计算每个GPU组的data数据量,用数组GPU_grp_data记录,数组维度为Grp_num;
步骤E10,i=0;
步骤E11,
GPU_grp_data[i]=GPU_capacity2[i]/weight_sum*data_num;
步骤E12,如果i小于Grp_num,i=i+1,跳转步骤E11;否则跳转步骤E13;
S53、根据第二能力数组GPU_capacity2[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到第二数据量数组GPU2_data[i]。
具体如下:
步骤E13,计算每个GPU_capacity2对应的data数据量,用数组GPU2_data记录,数组维度为M2;
步骤E14,i=0;
步骤E15,
GPU2_data[i]=GPU_capacity2[i]/weight_sum*data_num;
步骤E16,如果i小于M2,i=i+1,跳转步骤E15;否则跳转步骤E17;
步骤E17,结束。
S6、分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练。
本实施例的步骤S6,根据第二型号数组GPU_class_id2[]和GPU组合数组GPU_grp_class_id[]中GPU分别根据分配到的训练数据进行训练计算。
具体的,步骤S6具体包括:每次训练计算迭代中,第二型号数组GPU_class_id2[]中的所有GPU并行地将第二数据量数组GPU2_data[i]中数据进行正向计算和反向优化;
组合数组GPU_grp_class_id[]中所有的GPU组合并行地对将GPU组数据量数组GPU_grp_data[i]中数据进行正向计算和反向优化。
具体如下:
步骤F1,根据分配好的数据进行训练计算;
步骤F2,每次迭代中,在GPU_class_id2[]中的所有GPU,并行地将分配的数据进行正向计算和反向优化;
步骤F3,在Grp_num个GPU组中,所有的组并行地对将分配的数据进行正向计算和反向优化;
步骤F4,在第i组GPU组中,j=GPU_grp_id[i];
步骤F5,划分好的数据首先进入GPU_grp_class_id[j]的GPU中进行正向计算;
步骤F6,j=j+1;
步骤F7,将GPU_grp_class_id[j-1]的正向计算结果传输至GPU_grp_class_id[j]中;在GPU_grp_class_id[j]中进行正向计算;
步骤F8,j=j+1;
步骤F9,如果j小于GPU_grp_id[i+1],跳转步骤F7;否则跳转步骤F10;
步骤F10,j=GPU_grp_id[i+1]-1;
步骤F11,在GPU_grp_class_id[j]的GPU中进行反向优化;
步骤F12,j=j-1;
步骤F13,将GPU_grp_class_id[j+1]的反向优化结果传输至GPU_grp_class_id[j]中;在GPU_grp_class_id[j]中进行反向优化计算;
步骤F14,j=j-1;
步骤F15,如果j大于等于GPU_grp_id[i],跳转步骤F13;否则跳转步骤F16;
步骤F16,数据完成在第i组中的一次迭代;
具体的,步骤S5还包括:每次训练计算迭代完成后,通过消息传递接口进行同步。
具体如下:
步骤F17,分配好的数据在GPU_class_id2[]中的GPU和Grp_num个GPU组完成一次迭代时,通过消息传递接口进行同步;
步骤F18,通过消息传递接口将梯度信息进行收集和广播;
步骤F19,所有参与计算的GPU根据梯度信息进行模型参数优化;并保持了模型的一致性。
步骤F20,完成所有迭代,完成模型训练。
本实施例的方法首先通过对GPU资源中的显存进行筛选,将GPU显存不满足模型内存要求进行重新组合以使得其满足模型内存要求,进而分别标定GPU的计算能力,并根据GPU计算能力划分待训练数据。本实施例的方法通过对显存不满足模型内存要求的GPU进行重新组合,能够有效合理调度显存大小不同和计算性能不同的云服务器,充分调度云平台中服务器的计算能力,有效提高了云平台中服务器的计算能力利用率。
进一步的,本实施例通过标定GPU在训练中的计算能力,能够在不同的计算性能的GPU上实现计算的负载均衡,不会造成不同GPU之间的计算等待问题。
进一步的,本实施例的大规模深度学习并行训练基于消息传递接口实现多进程之间的数据传输,设计的调度模式能够充分利用云平台资源,显著提升了深度学习的计算速度。
实施例二
参考图2,本实施例公开了一种基于云平台的深度学习并行调度装置,包括如下单元:
待训练数据获取单元、用于获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
资源比较单元、用于根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
资源组合单元、用于根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
计算能力获取单元、用于根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
训练数据分配单元、用于根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
训练分配单元、用于根据分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练。
本发明实施例所提供的一种基于云平台的深度学习并行调度装置可执行本发明任意实施例所提供的一种基于云平台的深度学习并行调度方法,具备执行方法相应的功能模块和有益效果。值得注意的是,上述基于云平台的深度学习并行调度装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例三
参考图3,图3是本实施例的一种一种基于云平台的深度学习并行调度设备的结构示意图。该实施例的一种基于云平台的深度学习并行调度设备20包括处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序。所述处理器21执行所述计算机程序时实现上述方法实施例中的步骤。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述一种基于云平台的深度学习并行调度设备20中的执行过程。例如,所述计算机程序可以被分割成实施例二中的各个模块,各模块具体功能请参考上述实施例所述的装置的工作过程,在此不再赘述。
所述一种基于云平台的深度学习并行调度设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是一种基于云平台的深度学习并行调度设备20的示例,并不构成对一种基于云平台的深度学习并行调度设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于云平台的深度学习并行调度设备20还可以包括输入输出设备、网络接入设备、总线等。
所述处理器21可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述一种基于云平台的深度学习并行调度设备20的控制中心,利用各种接口和线路连接整个一种基于云平台的深度学习并行调度设备20的各个部分。
所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述一种基于云平台的深度学习并行调度设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述一种基于云平台的深度学习并行调度设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于云平台的深度学习并行调度方法,其特征在于,包括如下步骤:
S1、获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
S2、根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
S3、根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
S4、根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
S5、根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
S6、根据分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练;
所述步骤S3具体为:将第一型号数组GPU_class_id1[]中GPU显存通过大小结合的原则重新组合后与训练模型的内存大小比较进行分组,得到GPU组合数组GPU_grp_class_id[];根据GPU组合数组GPU_grp_class_id[]中每个GPU组合中GPU显存大小对所述训练模型进行切割分配;
步骤S4具体包括以下步骤:
S41、遍历第二型号数组GPU_class_id2[]计算其中每个GPU对于所述模型的计算能力并存入第二能力数组GPU_capacity2[];
S42、遍历GPU组合数组GPU_grp_class_id[]计算其中每个GPU对于所述模型的计算能力并存入第一能力数组GPU_capacity1[],并根据第一能力数组GPU_capacity1[]计算数组GPU组合数组GPU_grp_class_id[]中每个GPU组合的计算能力并存入组合能力数组GPU_grp_cpt[]。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2具体为:
获取当前云平台参与深度学习训练的GPU型号数组并排序,并将GPU型号数组按照GPU显存大小与待训练的模型参数内存的大小关系划分为第一型号数组GPU_class_id1[]和第二型号数组GPU_class_id2[],其中第一型号数组GPU_class_id1[]存放GPU显存大小小于待训练模型的参数内存大小的GPU,第二型号数组GPU_class_id2[]存放GPU显存大小大于或等于待训练模型的参数内存大小的GPU。
3.根据权利要求1所述的方法,其特征在于,所述步骤S3具体包括以下步骤:
S31、通过先逆序后正序的方式遍历第一型号数组GPU_class_id1[]对其中的GPU进行分组并达到预设条件后存入GPU组合数组GPU_grp_class_id[],并建立GPU组合索引数组GPU_grp_id[],所述预设条件为每个GPU组合的显存之和大于或等于所述训练模型的内存大小;
S32、分别计算GPU组合数组GPU_grp_class_id[]中每个GPU组合的显存之和,然后根据每个GPU组合中单个GPU的显存在所述每个GPU组合的显存之和中的占比对所述训练模型进行切割分配。
4.根据权利要求1所述的方法,其特征在于,所述步骤S5还包括:
S51、计算组合能力数组GPU_grp_cpt[]和第二能力数组GPU_capacity2[]中所有GPU计算能力之和得到总权重weight_sum;
S52、根据组合能力数组GPU_grp_cpt[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到GPU组数据量数组GPU_grp_data[i];
S53、根据第二能力数组GPU_capacity2[]中每个GPU组合的计算能力与总权重weight_sum的比值乘以总数据量data_num计算得到第二数据量数组GPU2_data[i]。
5.根据权利要求1所述的方法,其特征在于,所述步骤S4中GPU计算能力的计算公式为:
GPU_capacity=1/(a/x+b/y+c/z);
其中,GPU_capacity为GPU计算能力;训练过程中的计算主要由单精度FP32、半精度FP16及整型INT32构成,a为单精度FP32计算占比;b为半精度FP16计算占比;c为整型INT32计算占比;x为GPU单精度FP32的理论浮点性能;y为GPU半精度FP16的理论浮点性能;z为GPU整型INT32的理论浮点性能。
6.一种基于云平台的深度学习并行调度装置,其特征在于,包括如下单元:
待训练数据获取单元、用于获取待训练的深度学习模型和云平台可用的GPU资源,所述可用的GPU资源包括GPU个数,型号,以及对应的显存大小和FP32/FP16/INT32的浮点计算能力;
资源比较单元、用于根据所述待训练深度学习模型的模型参数内存获取所述GPU资源满足所述的待训练深度学习模型的模型参数内存的第一GPU资源,并获取不满足待训练深度学习模型的模型参数内存的第二GPU资源;
资源组合单元、用于根据第二GPU资源中每一个GPU的显存,并采用大小结合的原则将所述第二GPU资源进行重新组合以获取组合后的第三GPU资源,其中所述第三GPU资源中的每一个GPU的显存均满足所述待训练深度学习模型的模型参数内存;
具体为:将第一型号数组GPU_class_id1[]中GPU显存通过大小结合的原则重新组合后与训练模型的内存大小比较进行分组,得到GPU组合数组GPU_grp_class_id[];根据GPU组合数组GPU_grp_class_id[]中每个GPU组合中GPU显存大小对所述训练模型进行切割分配;
计算能力获取单元、用于根据GPU的理论浮点性能和模型的计算类型组成计算所述第一GPU资源和所述第三GPU资源中GPU计算能力,以获取第一GPU资源计算能力和第三GPU资源计算能力;
具体为:S41、遍历第二型号数组GPU_class_id2[]计算其中每个GPU对于所述模型的计算能力并存入第二能力数组GPU_capacity2[];
S42、遍历GPU组合数组GPU_grp_class_id[]计算其中每个GPU对于所述模型的计算能力并存入第一能力数组GPU_capacity1[],并根据第一能力数组GPU_capacity1[]计算数组GPU组合数组GPU_grp_class_id[]中每个GPU组合的计算能力并存入组合能力数组GPU_grp_cpt[];
训练数据分配单元、用于根据所述第一GPU资源计算能力和第三GPU资源计算能力对训练数据进行分配,获取分配到第一GPU资源的数据量和分配到第三GPU资源的数据量;
训练分配单元、用于根据分配到第一GPU资源的数据量和分配到第三GPU资源的数据量在所述云平台中选定GPU进行训练。
7.一种云平台,所述云平台包括N种不同GPU类型的服务器,其特征在于,所述云平台所述服务器用于实现如权利要求1-5中任一项所述基于云平台的深度学习并行调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151226.5A CN117687802B (zh) | 2024-02-02 | 2024-02-02 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151226.5A CN117687802B (zh) | 2024-02-02 | 2024-02-02 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117687802A CN117687802A (zh) | 2024-03-12 |
CN117687802B true CN117687802B (zh) | 2024-04-30 |
Family
ID=90128595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410151226.5A Active CN117687802B (zh) | 2024-02-02 | 2024-02-02 | 一种基于云平台的深度学习并行调度方法、装置和云平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117687802B (zh) |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062692A (zh) * | 2018-07-24 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种人脸识别深度学习训练平台的优化方法及系统 |
CN109919310A (zh) * | 2019-01-15 | 2019-06-21 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的gpu内存优化方法及系统 |
CN109976903A (zh) * | 2019-02-22 | 2019-07-05 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111858025A (zh) * | 2020-06-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于gpu卡显存的混合调度方法、装置、设备和介质 |
CN112035266A (zh) * | 2020-10-16 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置、设备及存储介质 |
CN112052083A (zh) * | 2020-09-15 | 2020-12-08 | 浙江智慧视频安防创新中心有限公司 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
CN112162791A (zh) * | 2020-09-25 | 2021-01-01 | 天津大学 | 一种分布式深度学习任务混部后的性能预测方法 |
CN112463383A (zh) * | 2020-12-04 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种gpu分配方法、系统、存储介质及设备 |
CN113450770A (zh) * | 2021-06-25 | 2021-09-28 | 平安科技(深圳)有限公司 | 基于显卡资源的语音特征提取方法、装置、设备及介质 |
CN113674137A (zh) * | 2021-08-30 | 2021-11-19 | 浩鲸云计算科技股份有限公司 | 基于lru策略最大化提升显存利用率的模型加载方法 |
WO2022088659A1 (zh) * | 2020-10-26 | 2022-05-05 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备、存储介质和程序产品 |
CN115248728A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 面向智能计算的分布式训练任务调度方法、系统和装置 |
CN115373861A (zh) * | 2022-10-26 | 2022-11-22 | 小米汽车科技有限公司 | Gpu资源调度方法、装置、电子设备及存储介质 |
CN115858173A (zh) * | 2022-12-27 | 2023-03-28 | 安徽深图科技有限公司 | 一种大型深度学习模型训练的gpu内存瓶颈改进方法 |
CN116483587A (zh) * | 2023-06-21 | 2023-07-25 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于图像分割的视频超分并行方法、服务器及介质 |
CN116567170A (zh) * | 2023-06-06 | 2023-08-08 | 湖南马栏山视频先进技术研究院有限公司 | 一种云平台的视频超分辨率并行调度方法、装置及云平台 |
CN116611989A (zh) * | 2023-06-01 | 2023-08-18 | 小知深艺(厦门)人工智能研究院有限公司 | 基于模型量化与动态负载均衡的歌唱评价模型部署方法 |
CN116880980A (zh) * | 2023-07-11 | 2023-10-13 | 北京科技大学 | 一种多资源感知的gup共享动态资源调度方法及系统 |
CN116954929A (zh) * | 2023-09-20 | 2023-10-27 | 四川并济科技有限公司 | 一种实时迁移的动态gpu调度方法及系统 |
CN117234710A (zh) * | 2023-09-05 | 2023-12-15 | 杭州电子科技大学 | 一种采用强化学习实现ai模型训练内存优化的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11164079B2 (en) * | 2017-12-15 | 2021-11-02 | International Business Machines Corporation | Multi-GPU deep learning using CPUs |
CN110618870B (zh) * | 2019-09-20 | 2021-11-19 | 广东浪潮大数据研究有限公司 | 一种深度学习训练任务的工作方法及装置 |
-
2024
- 2024-02-02 CN CN202410151226.5A patent/CN117687802B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062692A (zh) * | 2018-07-24 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种人脸识别深度学习训练平台的优化方法及系统 |
CN109919310A (zh) * | 2019-01-15 | 2019-06-21 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的gpu内存优化方法及系统 |
CN109976903A (zh) * | 2019-02-22 | 2019-07-05 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
CN110942138A (zh) * | 2019-11-13 | 2020-03-31 | 华中科技大学 | 一种混合内存环境下深度神经网络的训练方法和系统 |
CN111858025A (zh) * | 2020-06-10 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种基于gpu卡显存的混合调度方法、装置、设备和介质 |
CN112052083A (zh) * | 2020-09-15 | 2020-12-08 | 浙江智慧视频安防创新中心有限公司 | 云端gpu的显存调度方法、装置、电子设备及存储介质 |
CN112162791A (zh) * | 2020-09-25 | 2021-01-01 | 天津大学 | 一种分布式深度学习任务混部后的性能预测方法 |
CN112035266A (zh) * | 2020-10-16 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置、设备及存储介质 |
WO2022088659A1 (zh) * | 2020-10-26 | 2022-05-05 | 北京市商汤科技开发有限公司 | 资源调度方法及装置、电子设备、存储介质和程序产品 |
CN112463383A (zh) * | 2020-12-04 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种gpu分配方法、系统、存储介质及设备 |
CN113450770A (zh) * | 2021-06-25 | 2021-09-28 | 平安科技(深圳)有限公司 | 基于显卡资源的语音特征提取方法、装置、设备及介质 |
CN113674137A (zh) * | 2021-08-30 | 2021-11-19 | 浩鲸云计算科技股份有限公司 | 基于lru策略最大化提升显存利用率的模型加载方法 |
CN115248728A (zh) * | 2022-09-21 | 2022-10-28 | 之江实验室 | 面向智能计算的分布式训练任务调度方法、系统和装置 |
CN115373861A (zh) * | 2022-10-26 | 2022-11-22 | 小米汽车科技有限公司 | Gpu资源调度方法、装置、电子设备及存储介质 |
CN115858173A (zh) * | 2022-12-27 | 2023-03-28 | 安徽深图科技有限公司 | 一种大型深度学习模型训练的gpu内存瓶颈改进方法 |
CN116611989A (zh) * | 2023-06-01 | 2023-08-18 | 小知深艺(厦门)人工智能研究院有限公司 | 基于模型量化与动态负载均衡的歌唱评价模型部署方法 |
CN116567170A (zh) * | 2023-06-06 | 2023-08-08 | 湖南马栏山视频先进技术研究院有限公司 | 一种云平台的视频超分辨率并行调度方法、装置及云平台 |
CN116483587A (zh) * | 2023-06-21 | 2023-07-25 | 湖南马栏山视频先进技术研究院有限公司 | 一种基于图像分割的视频超分并行方法、服务器及介质 |
CN116880980A (zh) * | 2023-07-11 | 2023-10-13 | 北京科技大学 | 一种多资源感知的gup共享动态资源调度方法及系统 |
CN117234710A (zh) * | 2023-09-05 | 2023-12-15 | 杭州电子科技大学 | 一种采用强化学习实现ai模型训练内存优化的方法 |
CN116954929A (zh) * | 2023-09-20 | 2023-10-27 | 四川并济科技有限公司 | 一种实时迁移的动态gpu调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117687802A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084038B (zh) | 神经网络的内存分配方法及装置 | |
CN109298998A (zh) | 工作量评估及模型训练方法、电子设备及存储介质 | |
CN110413412B (zh) | 一种基于gpu集群资源分配的方法和装置 | |
CN110544112B (zh) | 一种考虑可再生能源的区域调频市场出清的方法及装置 | |
CN109450000B (zh) | 一种基于负荷率调整方向的发电计划偏差电量分配方法 | |
CN110866687A (zh) | 任务分配方法及装置 | |
CN113269424B (zh) | 机器人集群任务分配方法、系统、设备及存储介质 | |
CN110874626B (zh) | 一种量化方法及装置 | |
CN111191778B (zh) | 深度学习网络处理方法、装置与编译器 | |
CN102222285A (zh) | 多维度数据联动计算装置和多维度数据联动计算方法 | |
CN117687802B (zh) | 一种基于云平台的深度学习并行调度方法、装置和云平台 | |
CN106371808B (zh) | 一种并行计算的方法及终端 | |
CN110490308A (zh) | 加速库的设计方法、终端设备及存储介质 | |
CN110083446A (zh) | 一种gpu并行与零io模式下遥感影像实时处理方法及系统 | |
CN113723763A (zh) | 一种订单生产效率管理方法、装置、终端设备及存储介质 | |
CN111290850B (zh) | 一种数据存储方法、装置及设备 | |
CN104572134A (zh) | 一种优化方法及装置 | |
CN117880857B (zh) | 基于移动网络资源管理的云计算方法、系统及存储介质 | |
CN108960581B (zh) | 价格数据确定方法、电子设备及介质 | |
CN116432477B (zh) | 一种基于bim的施工模拟方法、系统及存储介质 | |
CN108734495A (zh) | 一种推广信息的资源信息确定方法、主机、服务器及系统 | |
CN117194312A (zh) | 一种电网处理器系统的并行方法、装置、设备及存储介质 | |
CN115269163A (zh) | 算子图的资源分配方法、装置、计算机设备及存储介质 | |
CN116974752A (zh) | 硬件资源的分配方法、设备及存储介质 | |
CN116185606A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |