一种芯片资源算力分配方法、装置、设备及存储介质与流程

文档序号:33526761发布日期:2023-03-22 07:21阅读:94来源:国知局
一种芯片资源算力分配方法、装置、设备及存储介质与流程

1.本技术涉及芯片技术的领域,尤其是涉及一种芯片资源算力分配方法、装置、设备及存储介质。


背景技术:

2.在进行模型训练以及深度学习等领域需要芯片提供算力,如图形处理器(graphics processing unit,gpu)芯片。目前通常将一整块芯片挂载在容器里,使用一块芯片执行一个训练任务,当多人有模型开发需求或需要执行多个训练任务时,通常由用户自行对芯片进行切分,以使得一块芯片为多个训练任务提供算力,但由用户对芯片进行切分的情况会导致每个训练任务得到的算力与实际所需算力不匹配,进而导致算力共享分配效果较差,因此如何将一块芯片的算力进行准确合理的分配成为一个问题。


技术实现要素:

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.综上所述,本技术包括以下至少一种有益技术效果:1. 模型训练任务有设备执行,并且当存在至少两个模型训练任务时才需要将芯片的算力进行分配共享,因此获取至少两个宿主设备的模型训练任务分别对应的相关信息,从而便于根据相关信息得知模型训练任务的具体情况,模型训练任务的具体情况决定所需的算力需求,也即模型训练任务对应的所需芯片分区大小,相关信息不同,对应的算力需求不同,因此对应的所需芯片分区不同,因此基于相关信息能够确定出每个模型训练任务对应的所需芯片分区,根据所需芯片分区对芯片进行分片处理,从而生成每个宿主设备对应的虚拟容器,通过虚拟容器从而实现宿主设备使用芯片的算力执行模型训练任务,控制每个宿主设备运行对应的虚拟容器即可实现执行对应的模型训练任务,由于芯片分区是根据模型训练任务的具体情况确定出的,相较于用户设置更加准确,分配更加合理;2. 方差表征训练速度的稳定情况,时长差值表征提供的算力与所需的算力之间的匹配程度,方差和时长差值均表征任务完成的质量,因此根据方差、时长差值以及各自对应的第二权重计算第二得分,通过第二得分表征任务执行的质量更直观,预设分数区间表征任务完成质量较好对应的分数区间,若第二得分未处在预设分数区间内,则说明任务完成质量较差,对应的所需芯片分区不适合与当前模型训练任务一样或相似度较高的新的模型训练任务的芯片分区,从芯片中除该芯片分区之外的芯片分区,也即待选芯片分区中重新确定新的模型训练任务的芯片分区,从而降低新的模型训练任务的任务完成质量较差的可能性。
附图说明
28.图1是本技术实施例的一种芯片资源算力分配方法的流程示意图。
29.图2是步骤s103中搭建模型训练任务环境的示例图。
30.图3是本技术实施例的一种芯片资源算力分配装置的结构示意图。
31.图4是本技术实施例的一种电子设备的结构示意图。
具体实施方式
32.以下结合附图对本技术作进一步详细说明。
33.本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本技术的权利要求范围内都受到专利法的保护。
34.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
36.下面结合说明书附图对本技术实施例作进一步详细描述。
37.本技术实施例提供了一种芯片资源算力分配方法,可适用于各种需要对芯片进行资源算力分配共享的场景,例如,深度学习的场景,具体的可以是,当需要对至少两个模型进行训练且只有一个gpu芯片时,将一个gpu芯片分成至少两个分区以供至少两个宿主设备共用一个gpu芯片。在下述实施例中也以在执行至少两个模型训练任务时对gpu芯片进行资源算力共享为例进行说明,但是并不限于上述场景,具体详见下述实施例。
38.本技术实施例提供了一种芯片资源算力分配方法,由电子设备执行,该电子设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此,该终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例在此不做限制,如图1所示,该方法包括步骤s101、步骤s102、步骤s103以及步骤s104,其中,s101,获取至少两个宿主设备的模型训练任务分别对应的相关信息。
39.对于本技术实施例,模型训练任务的相关信息可以是用户通过鼠标、键盘以及触控屏等输入设备输入至宿主设备中的,也可以是用户通过移动存储介质,如u盘等将模型训练任务输入至宿主设备中的,宿主设备读取到模型训练任务后即可得知对应的相关信息。宿主设备为挂载gpu芯片分区的电子设备,宿主设备可以是电脑、服务器以及手机等电子设备。
40.s102,基于相关信息确定每个模型训练任务对应的所需芯片分区。
41.对于本技术实施例,相关信息表征模型训练任务的具体情况,因此通过相关信息从而能够确定出模型训练任务的算力需求,算力需求也即模型训练任务对应的所需芯片分区大小,也即需要从一个gpu芯片上拆分出一个芯片分区的大小。
42.例如,一个gpu芯片的显存为16gb,根据某一模型训练任务的相关信息确定出的所需芯片分区为2gb,因此,电子设备从该gpu芯片上划分出一个2gb大小的芯片分区即可,该芯片分区即为该模型训练任务对应的所需芯片分区。
43.s103,基于所需芯片分区对芯片进行分片处理,生成每个宿主设备对应的虚拟容器。
44.对于本技术实施例,在确定出模型训练任务的所需芯片分区大小后,对该gpu芯片进行分片处理,从而得到所需芯片分区。具体的,可以根据分片插件或脚本对芯片进行分片处理并生成虚拟容器。
45.虚拟容器作为一种沙盒技术,在虚拟容器中运行模型训练任务从而与外界隔离,并且在得到虚拟容器后将虚拟容器转移到其它宿主机器更方便。虚拟容器在本质上是一个特殊的进程。通过名称空间(namespace)、控制组(control groups)、切根(chroot)技术把资源、文件、设备、状态和配置划分到一个独立的空间。该空间内包括运行所需的依赖库和配置。
46.在本技术实施例中,确定出所需芯片分区后,还可进行手动分片。分片之前可先搭建模型训练任务的环境,如图2所示,电子设备以服务器为例,待分片的芯片安装在服务器中,在服务器安装linux ubuntu 18.04操作系统,操作系统的版本种类并不限定于此。然后开启服务器电源,安装芯片的固件和驱动,固件和驱动的版本为统一的版本,接着安装芯片的开放套件,通过mindspore基础镜像创建容器,然后配置环境、配置jupyterlab得到导出
镜像。在worker节点配置npu-exporter并通过分片命令对芯片进行手动分片,分片结束后,在服务器上安装容器软件docker和容器调度k8s的软件环境,在k8s master节点配置device plugin,在k8s下安装芯片相关的分片插件,结合上述的导出镜像从而完成环境的搭建。然后创建yml文件,配置芯片参数,应用yml文件,并创建容器环境。进入并使用容器环境即可实现执行模型训练任务。
47.其中,k8s全称为kubernetes,是一个容器集群编排软件,具有完备的集群管理能力,多扩以及多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、内建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时kubernetes提供完善的管理工具,涵盖了包括开发、部署测试以及运维监控在内的各个环节。
48.s104,控制每个宿主设备运行对应的虚拟容器。
49.对于本技术实施例,在确定出每个模型训练任务对应的虚拟容器后,电子设备将每个宿主设备对应的虚拟容器通过数据线或无线网络传输至对应的宿主设备中,电子设备控制每台宿主设备运行对应的虚拟容器,以执行对应的模型训练任务。由于虚拟容器是按照模型训练任务的相关信息生成的,因此,虚拟容器所能够提供的算力与模型训练任务的所需算力相符,不容易对gpu芯片的算力造成浪费,一个gpu芯片能够完成多个宿主设备对应的模型训练任务。
50.本技术实施例的一种可能的实现方式,相关信息包括模型种类、隐藏层数量、训练样本集容量,步骤s102中基于相关信息确定每个模型训练任务对应的所需芯片分区,具体包括步骤s1021(图中未示出)以及步骤s1022(图中未示出),其中,s1021,基于模型种类、隐藏层数量、训练样本集容量以及各自对应的第一权重计算模型训练任务的第一得分。
51.对于本技术实施例,模型种类、隐藏层数量以及训练样本集容量为影响所需算力的主要因素,而每个相关信息影响算力的程度不同,因此设定每个相关信息对应的权重,即第一权重。假设,模型种类对应的权重为0.3,隐藏层数量对应的权重为0.3,训练样本集容量对应的权重为0.4。
52.针对不同的模型种类设定不同的等级,通过等级对模型种类进行量化,以便于后续根据权重计算模型种类对应的得分。例如,卷积神经网络模型对应的等级为1,循环神经网络模型对应的等级为2,对于其他的神经网络模型可以是其他等级,在此不作限定。以卷积神经网络模型为例,对应的得分为1
×
0.3=0.3分。
53.例如某一模型训练任务的模型种类为卷积神经网络,隐藏层数量为50个,训练样本集容量为100mb。该模型训练任务对应的第一得分为1
×
0.3+50
×
0.3+100
×
0.4=55.3。
54.s1022,确定第一得分所在的预设得分区间,并将预设得分区间对应的芯片分区确定为模型训练任务的所需芯片分区。
55.其中,预设得分区间与芯片分区之间具有对应关系。
56.对于本技术实施例,假设预设得分区间有三个,分别为[0,30]、(30,60]以及(60,90],其中,[0,30]对应的芯片分区为1gb,(30,60]对应的芯片分区为2gb,(60,90]对应的芯片分区为3gb。以步骤s1021为例,该模型训练任务的第一得分位于(30,60]的区间内,该区间对应的芯片分区为2gb,因此将2gb确定为该模型训练任务的所需芯片分区即可。
[0057]
本技术实施例的一种可能的实现方式,方法还包括步骤s105(图中未示出)、步骤s106(图中未示出)、步骤s107(图中未示出)以及步骤s108(图中未示出),其中,步骤s105可在步骤s104之后执行,其中,s105,基于任一模型训练任务的相关信息计算与相同模型种类的历史模型训练任务的相似度。
[0058]
其中,每个历史模型训练任务均对应有芯片分区。
[0059]
对于本技术实施例,电子设备对每个宿主设备执行过的模型训练任务进行存储,从而得到历史模型训练任务。电子设备对历史模型训练任务按照模型种类进行分类,从而便于确定出与新获取到的模型训练任务最接近的历史模型训练任务,也即相似度最高的历史模型训练任务。
[0060]
为了计算该模型训练任务与每个相同种类的历史模型训练任务的相似度,电子设备可将该模型训练任务的相关信息以及每个相同种类的历史模型训练任务的相关信息输入至训练好的网络模型中进行相似度计算,从而得到该模型训练任务与每个相同种类的历史模型训练任务的相似度。具体的网络模型可以是卷积神经网络,也可以是循环神经网络,还可以是其他类型的网络模型,在此不作限定。
[0061]
s106,将相似度最高的历史模型训练任务确定为第一目标模型训练任务。
[0062]
对于本技术实施例,相似度最高的历史模型训练任务与该模型训练任务的情况最为相似,因此将相似度最高的历史模型训练任务确定为第一目标模型训练任务,第一目标模型训练任务对应芯片分区同样较为适合该模型训练任务使用。
[0063]
s107,若第一目标模型训练任务与模型训练任务之间存在数值不同的相关信息,则确定每项数值不同的相关信息的差值。
[0064]
对于本技术实施例,虽然第一目标模型训练任务与该模型训练任务最为相似,但仍可能存在数值不同的相关信息,因此,为了使得第一目标模型训练任务对应的所需芯片分区更匹配该模型训练任务,电子设备确定出数值不同的相关信息,例如,该模型训练任务的训练样本集容量为100mb,第一目标模型训练任务的训练样本集容量为95mb,电子设备确定出差值为5mb。
[0065]
s108,基于差值对第一目标模型训练任务对应的芯片分区进行修改,得到模型训练任务对应的所需芯片分区。
[0066]
对于本技术实施例,以步骤s107为例,电子设备确定出训练样本集容量的差值为5mb后,为了使得第一目标模型训练任务的芯片分区更适用于该模型训练任务,因此可减小芯片分区的大小,从而更适用于当前任务。进一步的,电子设备内可预先存储每种相关信息对应的修改芯片分区的策略,根据预设的策略以及差值大小即可对芯片分区进行修改,进而得到适用于当前模型训练任务的芯片分区,即所需芯片分区。
[0067]
本技术实施例的一种可能的实现方式,方法还包括步骤s109(图中未示出)、步骤s110(图中未示出)、步骤s111(图中未示出)、步骤s112(图中未示出)以及步骤s113(图中未示出),其中,步骤s111可在步骤s104之后执行,其中,s109,基于任一模型训练任务的相关信息确定预估训练时长。
[0068]
对于本技术实施例,获取到模型训练任务的相关信息后,相关信息能够反映整个训练任务所花费的时长,例如,隐藏层层数越多训练过程越复杂,花费时间越长;训练样本
集容量越大,将整个训练样本集训练完毕所需的时间越长,因此,获取到相关信息后,即可根据相关信息确定出预估的训练时长。例如,可以在电子设备中预先设置每个相关信息影响训练时长的公式,根据公式计算出预估训练时长。还可以将相关信息输入至训练好的网络模型中进行预估训练时长的计算,进一步的,网络模型可以是卷积网络模型也可以是循环神经网络模型,还可以是其他类型的网络模型。假设确定出的预估训练时长为6小时(h)。
[0069]
s110,当检测到任一模型训练任务执行完成时,确定实际训练时长。
[0070]
对于本技术实施例,电子设备可实时监测每个模型训练任务的执行进度,每个宿主设备也可实时向电子设备发送执行进度,从而便于电子设备得知模型训练任务是否执行完成。电子设备检测到某个模型训练任务执行完成时,确定实际的训练时长。电子设备在检测到宿主设备开始执行模型训练任务时获取此时时间,并开始计时,任务完成时停止计时,从而能够确定出实际训练时长,假设实际训练时长为5.5h。
[0071]
s111,若实际训练时长不等于预估训练时长,则确定预估训练时长与实际训练时长的时长差值。
[0072]
对于本技术实施例,以步骤s110以及步骤s111为例,电子设备判断出实际训练时长小于预估训练时长,并确定出时长差值为0.5h。
[0073]
s112,基于时长差值以及预设系数确定模型训练任务对应的所需芯片分区的调整值。
[0074]
对于本技术实施例,预设系数用户计算调整所需芯片分区大小的系数,假设预设系数为0.5,以步骤s111为例,根据预设系数0.5电子设备计算0.5余0.5的乘积等于0.25,0.25即为调整值,也即需要调整0.25gb的分区大小。
[0075]
s113,基于调整值对所需芯片分区进行修正,得到修正后的所需芯片分区。
[0076]
以步骤s1022为例,当前所需芯片分区为2gb,根据0.25gb即可计算出修正后的所需芯片分区为1.75gb。也即该模型训练任务对应的最佳所需芯片分区为1.75gb。
[0077]
在本技术实施例中,当检测到新的模型训练任务时,若新的模型训练任务与该模型训练任务一致,或情况相似度较高,则直接将1.75gb的芯片分区确定为新的模型训练任务的所需芯片分区即可,从而更加方便准确。
[0078]
本技术实施例的一种可能的实现方式,方法还包括步骤s114(图中未示出)、步骤s115(图中未示出)、步骤s116(图中未示出)以及步骤s117(图中未示出),其中,步骤s114可在步骤s104之后执行,其中,s114,当检测到至少两个宿主设备执行完模型训练任务时,计算每个模型训练任务的训练速度的方差。
[0079]
对于本技术实施例,电子设备检测到全部宿主设备均执行完模型训练任务后,从而能够得到每个模型训练任务在整个执行过程中的训练速度。进而能够根据方差计算公式计算出每个模型训练任务对应的训练速度的方差。方差表征整个执行过程中的实时速度与平均速度的离散程度,从而能够得知执行过程中速度的稳定性,进而得知执行任务的稳定性。
[0080]
s115,基于方差、每个模型训练任务的时长差值以及各自对应的第二权重计算第二得分。
[0081]
对于本技术实施例,速度的方差和时长差值均能够表征模型训练任务的完成质
量。而方差和时长差值影响质量的相关程度不同,因此设定不同的各自对应的权重并预先存储在电子设备中,即第二权重。假设方差的权重为0.6,时长差值的权重为0.4。假设某一模型训练任务对应的方差为1.2,时长差值为1h。电子设备根据第二权重计算该模型训练任务的第二得分为1.2
×
0.6+1
×
0.4=1.12。
[0082]
s116,判断是否存在第二得分未处于预设分数区间内的第二目标模型训练任务。
[0083]
对于本技术实施例,预设分数区间表征完成质量较好时第二得分所在的区间,假设预设分数区间为[0.7,0.8],即第二得分位于0.7和0.8之间的模型训练任务完成质量较高。以步骤s115为例,电子设备判断除该模型训练任务对应的第二得分未处于该预设分数区间内,说明该模型训练任务完成质量较差。
[0084]
s117,若是,则当检测到新的模型训练任务与第二目标模型训练任务的相似度最高时,从待选芯片分区中确定新的模型训练任务的芯片分区,待选芯片分区为芯片中除第二目标模型训练任务之外的芯片分区。
[0085]
对于本技术实施例,假设步骤s116中的模型训练任务为“模型训练任务a”,模型训练任务a执行完成后,该任务即为历史模型训练任务。电子设备检测到新的模型训练任务(假设为“模型训练任务b”)后,根据相关信息计算与每个历史模型训练任务的相似度,具体的可以是新的任务的相关信息以及每个历史任务的相关信息输入至训练好的网络模型中进行相似度计算。若此时模型训练任务a与模型训练任务b的相似度最高,但模型训练任务a在对应的芯片分区中完成质量较差,则模型训练任务b不适合使用该芯片分区进行训练。因此电子设备从芯片中除该芯片分区之外的芯片分区,也即待选芯片分区中重新确定目标模型训练任务b的芯片分区,从而降低新的模型训练任务的任务完成质量较差的可能性。
[0086]
本技术实施例的一种可能的实现方式,方法还包括步骤s118(图中未示出)、步骤s119(图中未示出)、步骤s120(图中未示出)以及步骤s121(图中未示出),其中,步骤s118可在步骤s104之后执行,其中s118,实时获取任一模型训练任务的训练进度,并基于训练进度计算训练速度。
[0087]
对于本技术实施例,电子设备实时获取训练进度,根据相邻两个训练进度以及之间的时间间隔即可计算出训练速度,也即进度随时间的变化情况。假设训练速度为0.003/min。
[0088]
s119,若训练速度小于预设速度阈值,且达到预设时长,则存储当前状态的模型训练任务,并判断是否存在空闲的虚拟容器。
[0089]
对于本技术实施例,假设预设速度阈值为0.001/min,预设时长为10min,以步骤s118为例,电子设备判断出0.003/min大于0.00/min,说明训练速度正常。若训练速度小于0.001/min,且以小于0.001/min的速度执行任务达到10min,则说明训练速度过慢出现异常,可能原因为算力不够,因此电子设备存储当前状态的模型训练任务,例如可存储在电子设备本身的存储介质中,也可存储在云服务器中,假设当前状态为进度达到55%的模型训练任务。电子设备此时判断是否存在空闲的虚拟容器。
[0090]
s120,若存在,则从空闲的虚拟容器中确定目标虚拟容器,并将目标虚拟容器以及虚拟容器进行融合得到新的虚拟容器。
[0091]
对于本技术实施例,对模型训练任务执行完毕的虚拟容器进行空闲状态,或者未开始进行模型训练任务的虚拟容器处于空闲状态。电子设备判断出存在空闲状态的虚拟容
器后,从空闲的虚拟容器中确定出最合适的虚拟容器,即目标虚拟容器,然后将目标虚拟容器与当前任务对应的虚拟容器进行融合,从而得到算力更强的虚拟容器。
[0092]
s121,控制任一宿主设备运行新的虚拟容器,并执行当前状态的模型训练任务。
[0093]
对于本技术实施例,以步骤s119为例,电子设备融合出更强的新的虚拟容器后,将新的虚拟容器发送至对应的宿主设备,并且将进度55%的模型训练任务发送至对应的宿主设备,从而使宿主设备以更强的虚拟容器继续执行模型训练任务。
[0094]
本技术实施例的一种可能的实现方式,步骤s120中从空闲的虚拟容器中确定目标虚拟容器,具体包括步骤s1201(图中未示出)以及步骤s1202(图中未示出),其中,s1201,获取空闲的虚拟容器的所需芯片分区的容量。
[0095]
s1202,对容量进行排序,并将排序结果中容量最大的空闲的虚拟容器确定为目标虚拟容器。
[0096]
对于本技术实施例,假设共存在三个空闲状态的虚拟容器,分别为容器a、容器b以及容器c,分别对应的容量为2gb、3gb以及4gb。电子设备获取到上述三个容量后进行排序,由大到小的排序结果为容器c、容器b以及容器a。容量越大对应的算力越强,与当前任务对应的虚拟容器进行融合后得到的新的虚拟容器越强,也越适合作为目标虚拟容量。因此电子设备将容量最大的虚拟容器确定为目标虚拟容器,也即容器c。
[0097]
上述实施例从方法流程的角度介绍一种芯片资源算力分配方法,下述实施例从虚拟模块或者虚拟单元的角度介绍了一种芯片资源算力分配装置,具体详见下述实施例。
[0098]
本技术实施例提供一种芯片资源算力分配装置20,如图3所示,该芯片资源算力分配装置20具体可以包括:信息获取模块201,用于获取至少两个宿主设备的模型训练任务分别对应的相关信息;分区确定模块202,用于基于相关信息确定每个模型训练任务对应的所需芯片分区;分片处理模块203,用于基于所需芯片分区对芯片进行分片处理,生成每个宿主设备对应的虚拟容器;第一运行控制模块204,用于控制每个宿主设备运行对应的虚拟容器。
[0099]
本技术实施例提供了一种芯片资源算力分配装置20,其中,模型训练任务有设备执行,并且当存在至少两个模型训练任务时才需要将芯片的算力进行分配共享,因此信息获取模块201获取至少两个宿主设备的模型训练任务分别对应的相关信息,从而便于根据相关信息得知模型训练任务的具体情况,模型训练任务的具体情况决定所需的算力需求,也即模型训练任务对应的所需芯片分区大小,相关信息不同,对应的算力需求不同,因此对应的所需芯片分区不同,分区确定模块202基于相关信息能够确定出每个模型训练任务对应的所需芯片分区,分片处理模块203根据所需芯片分区对芯片进行分片处理,从而生成每个宿主设备对应的虚拟容器,通过虚拟容器从而实现宿主设备使用芯片的算力执行模型训练任务,第一运行控制模块204控制每个宿主设备运行对应的虚拟容器即可实现执行对应的模型训练任务,由于芯片分区是根据模型训练任务的具体情况确定出的,相较于用户设置更加准确,分配更加合理。
[0100]
本技术实施例的一种可能的实现方式,相关信息包括模型种类、隐藏层数量、训练
样本集容量;分区确定模块202在基于相关信息确定每个模型训练任务对应的所需芯片分区时,具体用于:基于模型种类、隐藏层数量、训练样本集容量以及各自对应的第一权重计算模型训练任务的第一得分;确定第一得分所在的预设得分区间,并将预设得分区间对应的芯片分区确定为模型训练任务的所需芯片分区,预设得分区间与芯片分区之间具有对应关系本技术实施例的一种可能的实现方式,装置20还包括:相似度计算模块,用于基于任一模型训练任务的相关信息计算与相同模型种类的历史模型训练任务的相似度,每个历史模型训练任务均对应有芯片分区;目标任务确定模块,用于将相似度最高的历史模型训练任务确定为第一目标模型训练任务;差值确定模块,用于当第一目标模型训练任务与模型训练任务之间存在数值不同的参数时,确定每项数值不同的参数的参数差值;修改模块,用于基于参数差值对第一目标模型训练任务对应的芯片分区进行修改,得到模型训练任务对应的所需芯片分区。
[0101]
本技术实施例的一种可能的实现方式,装置20还包括:预估时长确定模块,用于基于任一模型训练任务的相关信息确定预估训练时长;实际时长确定模块,用于当检测到任一模型训练任务执行完成时,确定实际训练时长;时长差值确定模块,用于当实际训练时长不等于预估训练时长时,确定预估训练时长与实际训练时长的时长差值;调整值确定模块,用于基于时长差值以及预设系数确定模型训练任务对应的所需芯片分区的调整值;修正模块,用于基于调整值对所需芯片分区进行修正,得到修正后的所需芯片分区。
[0102]
本技术实施例的一种可能的实现方式,装置20还包括:方差计算模块,用于当检测到至少两个宿主设备执行完模型训练任务时,计算每个模型训练任务的训练速度的方差;得分计算模块,用于基于方差、每个模型训练任务的时长差值以及各自对应的第二权重计算第二得分;目标任务判断模块,用于判断是否存在第二得分未处于预设分数区间内的第二目标模型训练任务;芯片分区重新确定模块,用于当是时,当检测到新的模型训练任务与第二目标模型训练任务的相似度最高时,从待选芯片分区中确定新的模型训练任务的芯片分区,待选芯片分区为芯片中除第二目标模型训练任务之外的芯片分区。
[0103]
本技术实施例的一种可能的实现方式,装置20还包括:进度获取模块,用于实时获取任一模型训练任务的训练进度,并基于训练进度计算训练速度;空闲容器判断模块,用于当训练速度小于预设速度阈值,且达到预设时长时,存储
当前状态的模型训练任务,并判断是否存在空闲的虚拟容器;容器确定模块,用于当存在时,从空闲的虚拟容器中确定目标虚拟容器,并将目标虚拟容器以及虚拟容器进行融合得到新的虚拟容器;第二运行控制模块,用于控制任一宿主设备运行新的虚拟容器,并执行当前状态的模型训练任务。
[0104]
本技术实施例的一种可能的实现方式,容器确定模块在从空闲的虚拟容器中确定目标虚拟容器时,具体用于:获取空闲的虚拟容器的所需芯片分区的容量;对容量进行排序,并将排序结果中容量最大的空闲的虚拟容器确定为目标虚拟容器。
[0105]
在本技术实施例中,第一运行控制模块204与第二运行控制模块可以是相同的运行控制模块,也可以是不同的运行控制模块。
[0106]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的一种芯片资源算力分配装置20的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0107]
本技术实施例中提供了一种电子设备,如图4所示,图4所示的电子设备30包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备30还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备30的结构并不构成对本技术实施例的限定。
[0108]
处理器301可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
[0109]
总线302可包括一通路,在上述组件之间传送信息。总线302可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一型的总线。
[0110]
存储器303可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0111]
存储器303用于存储执行本技术方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现前述方法实施例所示的内容。
[0112]
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。还可以为服务器等。图4示出的电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
[0113]
本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与相关技术相比,本技术实施例中模型训练任务有设备执行,并且当存在至少两个模型训练任务时才需要将芯片的算力进行分配共享,因此获取至少两个宿主设备的模型训练任务分别对应的相关信息,从而便于根据相关信息得知模型训练任务的具体情况,模型训练任务的具体情况决定所需的算力需求,也即模型训练任务对应的所需芯片分区大小,相关信息不同,对应的算力需求不同,因此对应的所需芯片分区不同,因此基于相关信息能够确定出每个模型训练任务对应的所需芯片分区,根据所需芯片分区对芯片进行分片处理,从而生成每个宿主设备对应的虚拟容器,通过虚拟容器从而实现宿主设备使用芯片的算力执行模型训练任务,控制每个宿主设备运行对应的虚拟容器即可实现执行对应的模型训练任务,由于芯片分区是根据模型训练任务的具体情况确定出的,相较于用户设置更加准确,分配更加合理。
[0114]
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0115]
以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1