发明内容
针对上述问题,本发明的一个目的是提供一种GPU资源池调度系统,该系统实现了云计算平台中对多种厂商、多种GPU型号、多种GPU虚拟化方式的统一资源池调度管理,实现“GPU云”的理念,即将使用GPU的业务上云,从而享受到云计算架构的各项提升;而且该系统兼容市面主流的GPU硬件,提升了GPU算力在数据中心的敏捷性和弹性。
本发明的第二个目的是提供一种GPU资源池调度方法,该方法能全局调控GPU资源池的资源。
本发明所采用的第一个技术方案是:一种GPU资源池调度系统,包括GPU云算力中心和GPU云控制节点,
所述GPU云算力中心包括多个GPU算力单元,每个GPU算力单元包括虚拟机监控器VMM和资源收集器RC,所述GPU云控制节点包括资源调度器RS;
所述GPU算力单元用于提供GPU的算力;
所述虚拟机监控器VMM用于提供控制接口并接收所述资源调度器RS发出的资源调度指令,根据指令创建虚拟机,给虚拟机分配vGPU资源并启动所述虚拟机;
所述资源收集器RC用于统计所述GPU算力单元的资源数据并上报至所述资源调度器RS;
所述资源调度器RS用于收集各个资源收集器RC上报的资源数据,并向各个虚拟机监控器VMM发送资源调度指令,在全局调度GPU算力单元的资源,包括将GPU资源进行集合以形成多组GPU硬件集合,所述多组GPU硬件集合组成GPU资源池,并根据用户需求将其中一组GPU硬件集合分配给用户使用。
优选地,所述GPU硬件集合支持的资源分配方式包括共享调度方式和独享调度方式。
优选地,所述资源调度器RS还用于进行以下资源调度操作中的一个或多个:
(1)将各资源收集器RC上报的GPU型号统计收集,形成全局的GPU硬件资源概览;
(2)将各资源收集器RC上报的支持的虚拟化方式统计收集,确定各GPU可用的虚拟化方式;
(3)将各资源收集器RC上报的资源使用率统计收集,形成全局的GPU资源使用情况概览;
(4)GPU任务分时调度;
(5)GPU负载自动均衡。
优选地,所述共享调度方式包括:
1)资源调度器RS向虚拟机监控器VMM发起创建虚拟机请求,虚拟机监控器VMM创建超过实际分配资源数量的虚拟机,并设定所述虚拟机使用指定型号的vGPU;所述虚拟机创建后默认为关机状态;
2)当通过虚拟机监控器VMM的控制接口执行虚拟机开机操作时,如果GPU硬件集合中存在设定为共享调度方式的指定型号vGPU,则资源调度器RS在所述GPU硬件集合中寻找未分配的具有指定型号vGPU资源的GPU算力单元,然后向所述GPU算力单元的虚拟机监控器VMM发送指定型号vGPU分配和启动虚拟机命令;如果所述GPU硬件集合中不存在未分配的指定型号vGPU,则提示用户资源不足,虚拟机启动失败;
3)使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源。
优选地,所述独享调度方式包括:
1)资源调度器RS向虚拟机监控器VMM发起创建虚拟机请求,虚拟机监控器VMM创建不超过实际分配资源数量的虚拟机,并设定所述虚拟机使用指定型号的vGPU;虚拟机创建后默认为运行状态;
2)虚拟机监控器VMM执行所述虚拟机创建时,如果GPU硬件集合中存在设定为独享调度方式的指定型号vGPU,则资源调度器RS在所述GPU硬件集合中寻找未分配的具有指定型号vGPU资源的GPU算力单元,然后向所述GPU算力单元的虚拟机监控器VMM发送指定型号vGPU分配和虚拟机启动命令;如果所述GPU硬件集合中不存在未分配的指定型号vGPU,则提示用户资源不足,上述虚拟机的创建失败;
3)使用独享调度方式vGPU资源的虚拟机删除后,释放该虚拟机使用的独享vGPU资源。
优选地,当采取共享调度方式时,还设置启用次优调度;所述次优调度包括厂商次优调度、GPU架构次优调度和全部次优调度。
优选地,所述厂商次优调度的共享调度方式包括:
1)资源调度器RS向虚拟机监控器VMM发起创建虚拟机请求,虚拟机监控器VMM创建超过实际分配资源数量的虚拟机,并设定所述虚拟机使用指定型号的vGPU;所述虚拟机创建后默认为关机状态;
2)当通过虚拟机监控器VMM的控制接口执行虚拟机开机操作时,如果GPU硬件集合中存在设定为共享调度方式的指定型号vGPU,则资源调度器RS在所述GPU硬件集合中寻找未分配的具有指定型号vGPU资源的GPU算力单元,然后向所述GPU算力单元的虚拟机监控器VMM发送指定型号vGPU分配和启动虚拟机命令;如果所述GPU硬件集合中不存在未分配的指定型号vGPU,则在所述GPU硬件集合中寻找未分配的与指定型号vGPU相同厂商并设置为共享模式的其它型号vGPU,若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到,则提示用户资源不足,虚拟机启动失败;
3)使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源。
优选地,所述GPU架构次优调度的共享调度方式包括:
1)资源调度器RS向虚拟机监控器VMM发起创建虚拟机请求,虚拟机监控器VMM创建超过实际分配资源数量的虚拟机,并设定所述虚拟机使用指定型号的vGPU;所述虚拟机创建后默认为关机状态;
2)当通过虚拟机监控器VMM的控制接口执行虚拟机开机操作时,如果GPU硬件集合中存在设定为共享调度方式的指定型号vGPU,则资源调度器RS在所述GPU硬件集合中寻找未分配的具有指定型号vGPU资源的GPU算力单元,然后向所述GPU算力单元的虚拟机监控器VMM发送指定型号vGPU分配和启动虚拟机命令;如果所述GPU硬件集合中不存在未分配的指定型号vGPU,则在所述GPU硬件集合中寻找未分配的与指定型号vGPU相同厂商、相同架构并设置为共享模式的其它型号vGPU,若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到,则提示用户资源不足,虚拟机启动失败;
3)使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源。
优选地,所述全部次优调度的共享调度方式包括:
1)资源调度器RS向虚拟机监控器VMM发起创建虚拟机请求,虚拟机监控器VMM创建超过实际分配资源数量的虚拟机,并设定所述虚拟机使用指定型号的vGPU;所述虚拟机创建后默认为关机状态;
2)当通过虚拟机监控器VMM的控制接口执行虚拟机开机操作时,如果GPU硬件集合中存在设定为共享调度方式的指定型号vGPU,则资源调度器RS在所述GPU硬件集合中寻找未分配的具有指定型号vGPU资源的GPU算力单元,然后向所述GPU算力单元的虚拟机监控器VMM发送指定型号vGPU分配和启动虚拟机命令;如果所述GPU硬件集合中不存在未分配的指定型号vGPU,则在所述GPU硬件集合中寻找未分配的设置为共享模式的任意厂商、架构的其它型号vGPU,若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到,则提示用户资源不足,虚拟机启动失败;
3)使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源。
本发明所采用的第二个技术方案是:一种GPU资源池调度方法,所述GPU资源池包括GPU云算力中心和GPU云控制节点,所述GPU云算力中心包括多个GPU算力单元,每个GPU算力单元包括虚拟机监控器VMM和资源收集器RC,所述GPU云控制节点包括资源调度器RS;包括以下步骤:
利用所述资源收集器RC统计所述GPU算力单元的资源数据并上报至所述资源调度器RS;
利用所述资源调度器RS收集各个资源收集器RC上报的资源数据,并向各个虚拟机监控器VMM发送资源调度指令,在全局调度GPU算力单元的资源,包括将GPU资源进行集合以形成多组GPU硬件集合,所述多组GPU硬件集合组成GPU资源池,并根据用户需求将其中一组GPU硬件集合分配给用户使用;
利用所述虚拟机监控器VMM接收所述资源调度器RS发出的资源调度指令,根据指令创建虚拟机,给虚拟机分配vGPU资源并启动所述虚拟机。
上述技术方案的有益效果:
(1)本发明公开的一种GPU资源池调度系统实现了云计算平台中对多种厂商、多种GPU型号、多种GPU虚拟化方式的统一资源池调度管理;实现了“GPU云”的理念,将使用GPU的业务上云,从而享受到云计算架构的各项提升。
(2)本发明公开的一种GPU资源池调度系统兼容市面主流的GPU硬件,提升了GPU算力在数据中心的敏捷性和弹性。
(3)本发明实现了GPU算力中心的GPU资源池调度,实现了完整的GPU云功能,支持GPU直通、GPU完全虚拟化、SR-IOV这三种GPU虚拟化技术的GPU,支持不同厂商的GPU,并且支持独享、共享、次优共享等多种资源调度模式,支持GPU任务分时调度,支持GPU负载自动均衡,功能十分全面。
(4)本发明提供的资源调度能力可深度结合用户的业务类型和特点,定制出最适合的资源调度方案,从而最大化GPU算力中心的GPU资源使用率,进一步提升业务的性能。
(5)采用本发明架构的GPU云可以提高切换速度,缩短切换时间,用户的各种作业场景统一运行在GPU云之中,可以做到分钟级切换GPU资源的使用场景。
(6)采用本发明架构的GPU云可以大大提升了客户生产力,例如某客户采取GPU任务分时调度功能,白天工作时将GPU资源分配给虚拟桌面场景进行生产,晚上下班时自动将工作状态保存,晚上进行倾斜摄影建模运算,第二天早上上班时停止倾斜摄影建模运算,自动恢复前一天下班时的工作状态,最终倾斜摄影建模的效率提升了接近80%,大大提升了客户生产力。
具体实施方式
下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例的详细描述和附图用于示例性地说明本发明的原理,但不能用来限制本发明的范围,即本发明不限于所描述的优选实施例,本发明的范围由权利要求书限定。
在本发明的描述中,需要说明的是,除非另有说明,“多个”的含义是两个或两个以上;术语“第一”“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性;对于本领域的普通技术人员而言,可视具体情况理解上述术语在本发明中的具体含义。
实施例1
如图1所示,本实施例公开了一种GPU资源池调度系统,包括GPU云算力中心和GPU云控制节点,GPU云算力中心包括多个GPU算力单元,每个GPU算力单元包括虚拟机监控器VMM和资源收集器RC,GPU云控制节点包括资源调度器RS;GPU算力单元用于提供CPU和GPU的算力,是GPU云的主要硬件组成;GPU算力单元具有模块化、标准化、通用化的特征,通过GPU算力单元的规模化组成“GPU算力中心”,为各用户提供GPU云服务。
虚拟机监控器英文全称为Virtual Machine Monitor,简称VMM,亦可称作Hypervisor;虚拟机监控器运行在GPU算力单元中,用于根据指令创建虚拟机,给虚拟机分配vGPU资源并启动所述虚拟机,从而运行业务程序;虚拟机监控器还用于提供GPU直通、GPU完全虚拟化和SR-IOV支持,从而使虚拟机获得GPU的运算能力,能进行图形渲染、科学计算等工作;虚拟机监控器用于对外提供控制接口,控制接口包括创建、开启、删除虚拟机,更新虚拟机配置、配置并开启GPU虚拟化和调整虚拟GPU配置等功能,控制接口例如为API接口。
资源收集器英文全称为Resource Collector,简称RC;资源收集器运行在GPU算力单元中,用于统计以下资源数据并上报至资源调度器:GPU型号、GPU资源数量、支持的虚拟化方式、资源使用率(主要包含显存和流处理器使用率)、GPU温度(但并不限于此)。如图2所示,资源收集器统计的资源数据传输无需通过虚拟机网络,提升了云计算架构中网络的安全性,简化了网络拓扑。
统计GPU型号(数据G)为统计RC所在GPU算力单元上的GPU品牌、型号、显存大小、流处理器数量及其对应的GPU硬件数量;其数据形式为五元组,例如表示为(NVIDIA,TeslaV100,32GB,5120,8)、(AMD,Radeon Pro WX8200,8GB,3584,16)(但并不限于此)。
统计支持的虚拟化方式(数据V)为统计GPU型号、是否支持PT、是否支持MPT以及是否支持SRIOV;其数据形式为四元组,支持某种虚拟化形式用1表示,不支持某种虚拟化形式用0表示,例如表示为(Tesla V100,1,1,0)、(FirePro S7150,1,0,1)(但并不限于此)。
统计资源使用率(数据R)为统计GPU编号、显存使用率、流处理器使用率、温度、正在使用的虚拟化方式、可用虚拟GPU(vGPU)数量以及切分的配置;其数据形式为七元组,例如表示为(Tesla V100@37,57%,36%,72,MPT,6,4Q)、(Radeon Pro WX8200@19,68%,80%,68,PT,0,0)(但并不限于此)。如图2所示,统计资源使用率主要有两种方式,
针对MPT虚拟化模式,可以在物理机中利用GPU驱动提供的工具直接查看资源使用率,例如nvidia-smi命令;
针对PT和SRIOV虚拟化模式,RC模块使用共享内存的半虚拟化设备与虚拟机进行通信,在虚拟机内部使用GPU驱动提供的工具查看虚拟GPU(vGPU)的资源使用情况,例如nvidia-smi命令。
资源调度器英文全称为Resource Scheduler,简称RS;资源调度器运行在集群的控制节点中,用于收集各个节点RC上报的资源数据,统一进行资源调度,并向VMM发送资源调度指令,从而在全局调度GPU的资源;资源调度器的具体调度包括:
(1)将各节点RC上报的数据G统计收集,形成全局的GPU硬件资源概览。
(2)将各节点RC上报的数据V统计收集,确定各GPU可用的虚拟化方式。
(3)将各节点RC上报的数据R统计收集,形成全局的GPU资源使用情况概览。
(4)将GPU资源进行集合形成多组GPU硬件集合,多组GPU硬件集合组成GPU资源池,将其中任一组GPU硬件集合H分配给某项目,项目内用户可使用硬件集合H中的任意GPU资源,硬件集合包含不同品牌、不同型号、不同虚拟化形式的GPU;GPU硬件集合统计的GPU资源的数据形式为四元组,例如表示为(vGPU型号,数量,虚拟化形式,资源分配方式)(但并不限于此),其中资源分配方式支持共享调度方式(Shared)和独享调度方式(Exclusive),例如表示为(Tesla V100 4Q,16,MPT,Shared)、(Radeon Pro WX8200,32,PT,Exclusive)(但并不限于此)。
(5)GPU任务分时调度:通常在一个大型GPU云中,用户存在多种形态的业务,例如虚拟桌面生产场景,通常在白天工作时间(例如9:00-18:00)使用GPU资源,而夜晚GPU资源闲置;此时可在夜晚将桌面生产端的GPU资源用于科学计算、人工智能、倾斜摄影建模等场景。例如,如图2所示,设定虚拟桌面生产场景的虚拟机组为VM1,倾斜摄影建模场景的虚拟机组为VM2,RS支持设定虚拟机任务分时组:VM1在上午08:00 通过VMM保存的虚拟机状态恢复开机,在夜晚20:00 VMM保存虚拟机VM1的状态并关机,VM2在20:05通过VMM保存的虚拟机状态恢复开机,在次日早上07:00结束倾斜摄影建模任务,VMM保存虚拟机VM2的状态并关机;VM1和VM2的GPU调度方式采用共享调度方式,即可在开关机切换时复用GPU资源。
(6)GPU负载自动均衡:针对采用MPT或SRIOV虚拟化技术的虚拟机,RS根据各个物理GPU上的压力,自动将高负载物理GPU上的虚拟机进行在线迁移操作,将该虚拟机以及该虚拟机使用的vGPU迁移到另一低负载物理GPU上,该物理GPU可以为同一个GPU算力单元上的GPU,也可以是不同GPU算力单元上的GPU;通过该种方式可以实现集群内各物理GPU的负载均衡,进一步保证业务的性能。
进一步的,在一个实施例中,如图3所示,资源分配方式中共享调度方式包括:
1)发起创建虚拟机请求,并指定使用GPU硬件集合H中某一型号的虚拟GPU(例如指定使用型号为vGPU1的vGPU);RS向VMM发起创建虚拟机请求,VMM在GPU硬件集合H中创建超过实际分配资源数量的虚拟机,虚拟机创建后默认为关机状态;GPU硬件集合H中虚拟GPU的型号例如包括vGPU1、vGPU2、vGPU3和vGPU4(但并不限于此),用户给虚拟机指定使用GPU硬件集合H中某一型号的vGPU,该型号的vGPU即为指定型号的vGPU,例如指定使用vGPU1;例如英伟达Tesla P40可以虚拟化为P40-2Q、P40-4Q和P40-8Q这几个型号,用户给虚拟机指定使用P40-4Q;
2)VMM进行vGPU资源分配,用户通过VMM的控制接口执行虚拟机开机操作时,如果集合H中设定为共享调度方式的指定型号vGPU(例如vGPU1)剩余数量不为0,则RS在GPU硬件集合H中寻找未分配的具有指定型号vGPU(例如vGPU1)资源的GPU算力单元,然后向该GPU算力单元的VMM发送指定型号vGPU分配和虚拟机启动命令;如果集合H中未分配的指定型号vGPU(例如vGPU1)的剩余数量为0,则提示用户资源不足,虚拟机启动失败;
3)vGPU资源释放,使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源,此时释放的vGPU资源回到GPU资源池,供项目内其他虚拟机使用。
资源分配方式中独享调度方式包括:
1)发起创建虚拟机请求,并指定使用GPU硬件集合H中某一型号的虚拟GPU(例如指定使用型号为vGPU2的vGPU);RS向VMM发起创建虚拟机请求,VMM在GPU硬件集合H中创建不超过实际分配资源数量的虚拟机,虚拟机创建后默认为运行状态;GPU硬件集合H中虚拟GPU的型号例如包括vGPU1、vGPU2、vGPU3和vGPU4(但并不限于此),用户给虚拟机指定使用GPU硬件集合H中某一型号的vGPU,该型号的vGPU即为指定型号的vGPU,例如指定使用vGPU2;
2)VMM进行vGPU资源分配,执行上述虚拟机创建操作时,如果集合H中未分配的设定为独享调度方式的指定型号vGPU(例如vGPU2)剩余数量不为0,则RS在集群中寻找未分配的具有指定型号vGPU(例如vGPU2)资源的GPU算力单元,然后向该GPU算力单元的VMM发送指定型号vGPU分配和虚拟机启动命令;如果集合H中未分配的指定型号vGPU(例如vGPU2)的剩余数量为0,则提示用户资源不足,上述虚拟机的创建失败;
3)vGPU资源释放,使用独享调度方式vGPU资源的虚拟机删除后,释放该虚拟机使用的独享vGPU资源,此时释放的vGPU资源回到GPU资源池,供项目内其他虚拟机使用。
由此可见,独享调度方式和共享调度方式的区别在于独享调度方式跟随虚拟机的生命周期,而共享调度方式跟随虚拟机的运行周期。
进一步的,在一个实施例中,如图4所示,采取共享调度模式时,用户还能设置是否启用次优调度(fallback);次优调度功能包括厂商次优调度(fallback-vendor)、GPU架构次优调度(fallback-arch)和全部次优调度(fallback-all);次优调度方式在GPU资源不足的情况下,可以尽最大可能满足用户的GPU资源需求。
厂商次优调度(fallback-vendor)用于支持限定GPU厂商的应用,例如NVIDIA GPU的专有应用;厂商次优调度的共享调度方式包括:
1)发起创建虚拟机请求,并指定使用GPU硬件集合H中某一型号的虚拟GPU(例如指定使用型号为vGPU1的vGPU);RS向VMM发起创建虚拟机请求,VMM在GPU硬件集合H中创建超过实际分配资源数量的虚拟机,虚拟机创建后默认为关机状态;GPU硬件集合H中虚拟GPU的型号例如包括vGPU1、vGPU2、vGPU3和vGPU4(但并不限于此),用户给虚拟机指定使用GPU硬件集合H中某一型号的vGPU,该型号的vGPU即为指定型号的vGPU,例如指定使用vGPU1;
2)VMM进行vGPU资源分配,用户通过VMM的控制接口执行虚拟机开机操作时,如果集合H中未分配的设定为共享调度方式的指定型号vGPU(例如vGPU1)剩余数量不为0,则RS在集合H中寻找未分配的具有指定型号vGPU(例如vGPU1)资源的GPU算力单元,然后向该GPU算力单元的VMM发送指定型号vGPU分配和启动虚拟机命令;如果集合H中未分配的指定型号vGPU(例如vGPU1)的剩余数量为0,进一步在集合H中寻找未分配的与指定型号vGPU(例如vGPU1)相同厂商并设置为共享模式的其它型号vGPU(例如vGPU2),若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到则提示用户资源不足,虚拟机启动失败;
3)vGPU资源释放,使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源,此时释放的vGPU资源回到GPU资源池,供项目内其他虚拟机使用。
GPU架构次优调度(fallback-arch)用于支持针对特定GPU架构优化的应用,在同样GPU架构中进行共享调度;GPU架构次优调度的共享调度方式包括:
1)发起创建虚拟机请求,并指定使用GPU硬件集合H中某一型号的虚拟GPU(例如指定使用型号为vGPU1的vGPU);RS向VMM发起创建虚拟机请求,VMM在GPU硬件集合H中创建超过实际分配资源数量的虚拟机,虚拟机创建后默认为关机状态;GPU硬件集合H中虚拟GPU的型号例如包括vGPU1、vGPU2、vGPU3和vGPU4(但并不限于此),用户给虚拟机指定使用GPU硬件集合H中某一型号的vGPU,该型号的vGPU即为指定型号的vGPU,例如指定使用vGPU1;
2)VMM进行vGPU资源分配,用户通过VMM的控制接口执行虚拟机开机操作时,如果集合H中未分配的设定为共享调度方式的指定型号vGPU(例如vGPU1)剩余数量不为0,则RS在集合H中寻找未分配的具有指定型号vGPU(例如vGPU1)资源的GPU算力单元,然后向该GPU算力单元的VMM发送指定型号vGPU分配和启动虚拟机命令;如果集合H中未分配的指定型号vGPU(例如vGPU1)的剩余数量为0,进一步在集合H中寻找未分配的与指定型号vGPU(例如vGPU1)相同厂商、相同架构并设置为共享模式的其它型号vGPU(例如vGPU3),若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到则提示用户资源不足,虚拟机启动失败;
3)vGPU资源释放,使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源,此时释放的vGPU资源回到GPU资源池,供项目内其他虚拟机使用。
全部次优调度(fallback-all)用于支持兼容性较好的应用;全部次优调度的共享调度方式包括:
1)发起创建虚拟机请求,并指定使用GPU硬件集合H中某一型号的虚拟GPU(例如指定使用型号为vGPU1的vGPU);RS向VMM发起创建虚拟机请求,VMM在GPU硬件集合H中创建超过实际分配资源数量的虚拟机,虚拟机创建后默认为关机状态;GPU硬件集合H中虚拟GPU的型号例如包括vGPU1、vGPU2、vGPU3和vGPU4(但并不限于此),用户给虚拟机指定使用GPU硬件集合H中某一型号的vGPU,该型号的vGPU即为指定型号的vGPU,例如指定使用vGPU1;
2)VMM进行vGPU资源分配,用户通过VMM的控制接口执行虚拟机开机操作时,如果集合H中未分配的设定为共享调度方式的指定型号vGPU(例如vGPU1)剩余数量不为0,则RS在集合H中寻找未分配的具有指定型号vGPU(例如vGPU1)资源的GPU算力单元,然后向该GPU算力单元的VMM发送指定型号vGPU分配和启动命令;如果集合H中未分配的指定型号vGPU(例如vGPU1)的剩余数量为0,则进一步在集合H中寻找未分配的设置为共享模式的任意厂商、架构的其它型号vGPU(例如vGPU4),若寻找到,则分配给虚拟机并启动虚拟机,若寻找不到则提示用户资源不足,虚拟机启动失败;
3)vGPU资源释放,使用共享调度方式vGPU资源的虚拟机关机后,释放该虚拟机使用的共享vGPU资源,此时释放的vGPU资源回到GPU资源池,供项目内其他虚拟机使用。
实施例2
一种GPU资源池调度方法,GPU资源池包括GPU云算力中心和GPU云控制节点,GPU云算力中心包括多个GPU算力单元,每个GPU算力单元包括虚拟机监控器VMM和资源收集器RC,GPU云控制节点包括资源调度器RS;包括以下步骤:
利用资源收集器RC统计GPU算力单元的资源数据并上报至资源调度器RS;
利用资源调度器RS收集各个资源收集器RC上报的资源数据,并向各个虚拟机监控器VMM发送资源调度指令,在全局调度GPU算力单元的资源,包括将GPU资源进行集合以形成多组GPU硬件集合,多组GPU硬件集合组成GPU资源池,并根据用户需求将其中一组GPU硬件集合分配给用户使用;
利用虚拟机监控器VMM接收资源调度器RS发出的资源调度指令,根据指令创建虚拟机,给虚拟机分配vGPU资源并启动所述虚拟机。
本发明公开的一种GPU资源池调度系统实现了云计算平台中对多种厂商、多种GPU型号、多种GPU虚拟化方式的统一资源池调度管理;实现了“GPU云”的理念,即将使用GPU的业务上云,从而享受到云计算架构的各项提升;而且该系统兼容市面主流的GPU硬件,提升了GPU算力在数据中心的敏捷性和弹性。
本发明实现了完整的GPU云功能,支持GPU直通、GPU完全虚拟化、SR-IOV这三种GPU虚拟化技术的GPU,支持不同厂商的GPU,并且支持独享、共享、次优共享等多种资源调度模式,支持GPU任务分时调度,支持GPU负载自动均衡,功能十分全面;而且本发明提供的资源调度能力可深度结合用户的业务类型和特点,定制出最适合的资源调度方案,从而最大化GPU算力中心的GPU资源使用率,进一步提升业务的性能;采用本发明架构的GPU云可以提高切换速度,缩短切换时间,用户的各种作业场景统一运行在GPU云之中,可以做到分钟级切换GPU资源的使用场景。
同时采用本发明架构的GPU云可以大大提升了客户生产力,例如某客户采取GPU任务分时调度功能,白天工作时将GPU资源分配给虚拟桌面场景进行生产,晚上下班时自动将工作状态保存,晚上进行倾斜摄影建模运算,第二天早上上班时停止倾斜摄影建模运算,自动恢复前一天下班时的工作状态,最终倾斜摄影建模的效率提升了接近80%,大大提升了客户生产力。
虽然已经参考优选实施例对本发明进行了描述,但在不脱离本发明范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本发明并不局限于文中公开的特定实施例,而是包括落入权利要求范围内的所有技术方案。本发明未详细阐述部分属于本领域技术人员的公知技术。