System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向容器的GPU集群资源虚拟化管理系统技术方案_技高网

一种面向容器的GPU集群资源虚拟化管理系统技术方案

技术编号:40838162 阅读:4 留言:0更新日期:2024-04-01 15:03
本发明专利技术提供一种面向容器的GPU集群资源虚拟化管理系统,涉及GPU虚拟化技术领域。包括:GPU管理模块、GPU调度模块、vGPU管理模块和vGPU库;GPU管理模块用于创建vGPU模块、获取Kubelet发送的资源调度请求,以及完成GPU的远程调用;GPU调度模块用于获取资源调度请求,依照树形拓扑结构分配GPU,生成容器配置信息;vGPU管理模块用于生成配置文件,并分配至vGPU模块的容器;vGPU库用于读取配置文件,根据该配置文件内容的设定的资源分配限额,查询当前vGPU模块的容器对GPU的实时使用率。本发明专利技术可聚合计算资源,显著提高资源利用率,使得容器之间可以共享GPU内存和计算资源。

【技术实现步骤摘要】

本专利技术涉及gpu虚拟化,具体涉及一种面向容器的gpu集群资源虚拟化管理系统。


技术介绍

1、现如今,随着科学技术的不断发展和进步,各种计算设备层出不穷,计算环境也各不相同。gpu已经从单纯的图形显示加速功能发展到更加广泛的使用场景。无论是在嵌入式系统、移动电话、个人电脑、工作站和电子游戏解决方案中,gpu都发挥着重要的作用。在ai领域,对于大规模gpu服务器集群数据中心的需求已愈加广泛。为了更加方便集群间各模块的统筹管理,业界采取以容器作为单一任务目标载体的技术手段,使得应用部署更加灵活方便。

2、容器作为一种沙盒技术,通过对资源的限制将应用运行在其中,与外界隔离,并且这个沙盒可以被打包成容器镜像,移植到另一台机器上后可以直接运行,不需要任何多余的配置,这种隔离性使得容器成为一种理想的解决方案,其具有体量小、可移植性强的特点。容器技术的应用使得开发人员和运维人员能够更加方便地部署和管理应用模块。

3、目前主要采用的集群环境管理工具是kubernetes(简称k8s),k8s是一个容器集群管理系统,用于管理云平台中多个主机上的容器化的应用,并提供设备插件框架支持对扩展资源(gpu、fpga等)的管理与调度。nvidia实现了该框架使得k8s可以管理调度其gpu,然而使用该设备插件容器只能通过独占的方式使用nvidia gpu资源。这意味着系统配备的gpu数目必须大于等于同时运行gpu任务的容器数目,造成了严重的资源浪费,尤其是在多租户环境下,资源利用率低下。此外,现有技术并不支持在容器平台下的gpu远程资源调用。当容器需要使用大量gpu资源时,只能通过增加本地gpu资源的方式保证容器运行。然而,这导致了远端空闲的gpu资源无法被充分利用,降低了整体资源利用率。


技术实现思路

1、有鉴于此,本申请实施例提供一种面向容器的gpu集群资源虚拟化管理系统,以达到聚合计算资源,显著提高资源利用率,使得容器之间可以共享gpu内存和计算资源的目的。

2、本申请实施例提供以下技术方案:一种面向容器的gpu集群资源虚拟化管理系统,应用于云容器,包括:gpu管理模块、gpu调度模块、vgpu管理模块和vgpu库;

3、所述gpu管理模块用于创建vgpu模块、与kubelet建立通信连接,以获取kubelet发送的资源调度请求,以及完成gpu的远程调用;

4、所述gpu调度模块用于获取所述gpu管理模块发送的所述资源调度请求,对所述资源调度请求依照树形拓扑结构分配gpu,生成容器配置信息;

5、所述vgpu管理模块用于按照所述容器配置信息生成相应的配置文件,并将所述配置文件分配至所述vgpu模块的容器;

6、所述vgpu库用于读取所述vgpu模块的容器对应的配置文件,根据该配置文件内容的设定的资源分配限额,查询当前所述vgpu模块的容器对gpu的实时使用率,若所述实时使用率超出所述资源分配限额,则将所述vgpu模块的容器的应用挂起,若否,则正常运行该vgpu模块的容器的应用。

7、根据本申请一种实施例,所述gpu管理模块还用于,获取到所述资源调度请求后进行解析,根据解析后的所述资源调度请求的节点标识信息,判断所述资源调度请求是否为本地调度信息;

8、所述vgpu库还用于,若所述资源调度请求不是本地调度信息,则在该vgpu模块的容器内建立通信服务端,用于监听远程计算请求,当监听到远程计算请求时,查询当前所述vgpu模块的容器对gpu的实时使用率,若所述实时使用率超出所述资源分配限额,则将所述vgpu模块的容器的应用挂起,若否,则正常运行该vgpu模块的容器的应用。

9、根据本申请一种实施例,所述gpu管理模块包括注册单元、物理gpu检测单元、vgpu创建单元、vgpu上报单元;所述注册单元用于向kubelet进行注册,与kubelet建立通信连接;所述物理gpu检测单元用于检测获取节点上处于健康状态的物理gpu信息,所述vgpu创建单元用于将获得的物理gpu虚拟化为vgpu;所述vgpu上报单元用于向kubelet上报信息。

10、根据本申请一种实施例,所述gpu调度模块包括状态检测单元、gpu分配单元、配置信息生成单元;所述状态检测单元用于检测所有处于健康状态的gpu的状态信息并进行维护,所述gpu分配单元用于对所述资源调度请求依照树形拓扑结构分配gpu,所述配置信息生成单元用于根据对应设备的信息生成容器配置信息。

11、根据本申请一种实施例,所述vgpu管理模块包括目录创建单元、vgpu监控单元、配置文件生成单元;所述目录创建单元用于在主机上为所述容器配置信息分别创建一个唯一的目录,所述配置文件生成单元根据该容器的配置信息生成相应的配置文件,并将该配置文件置放在该容器对应的目录下,便于容器内的vgpu库读取该配置文件;所述vgpu监控单元用于定期对所述vgpu模块的容器的活动状态进行检测。

12、根据本申请一种实施例,所述vgpu库运行在容器层,用于管理容器上的gpu资源。

13、根据本申请一种实施例,所述gpu管理模块作为符合kubernetes拓展标准的插件,运行在主机层面。

14、根据本申请一种实施例,所述gpu管理模块通过grpc服务与kubelet建立通信连接。

15、本专利技术实施例所提出的面向容器的gpu集群资源虚拟化管理系统,能够通过api重定向技术和时间片轮转的调度方式,将多个容器同时运行在同一个gpu上,打破了多个并发容器间gpu资源难以共享的限制,实现了opencl框架下面向kubernetes容器管理的gpu虚拟化技术。

16、此外,本专利技术实施例还实现了面向容器的gpu远程资源调用,在保证多个容器可以共享单个gpu资源的同时支持单个容器调用包括本地和远端在内的多个gpu资源,最终通过可移植容器的编排管理工具k8s对容器进行管理。

17、相比于传统的gpu虚拟化方法,本专利技术实施例在支持容器机制的同时保证了多个容器可以同时利用单个gpu资源,并在本地gpu资源不足时自发调用远程gpu资源。这样不仅聚合了计算资源,而且显著提高了资源利用率,使得容器之间可以共享gpu内存和计算资源。本专利技术能够对面向容器的轻量级计算任务在云计算系统上快速应用部署提供技术支撑。

本文档来自技高网...

【技术保护点】

1.一种面向容器的GPU集群资源虚拟化管理系统,应用于云容器,其特征在于,包括:GPU管理模块、GPU调度模块、vGPU管理模块和vGPU库;

2.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述GPU管理模块还用于,获取到所述资源调度请求后进行解析,根据解析后的所述资源调度请求的节点标识信息,判断所述资源调度请求是否为本地调度信息;

3.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述GPU管理模块包括注册单元、物理GPU检测单元、vGPU创建单元、vGPU上报单元;所述注册单元用于向Kubelet进行注册,与Kubelet建立通信连接;所述物理GPU检测单元用于检测获取节点上处于健康状态的物理GPU信息,所述vGPU创建单元用于将获得的物理GPU虚拟化为vGPU;所述vGPU上报单元用于向Kubelet上报信息。

4.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述GPU调度模块包括状态检测单元、GPU分配单元、配置信息生成单元;所述状态检测单元用于检测所有处于健康状态的GPU的状态信息并进行维护,所述GPU分配单元用于对所述资源调度请求依照树形拓扑结构分配GPU,所述配置信息生成单元用于根据对应设备的信息生成容器配置信息。

5.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述vGPU管理模块包括目录创建单元、vGPU监控单元、配置文件生成单元;所述目录创建单元用于在主机上为所述容器配置信息分别创建一个唯一的目录,所述配置文件生成单元根据该容器的配置信息生成相应的配置文件,并将该配置文件置放在该容器对应的目录下,便于容器内的vGPU库读取该配置文件;所述vGPU监控单元用于定期对所述vGPU模块的容器的活动状态进行检测。

6.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述vGPU库运行在容器层,用于管理容器上的GPU资源。

7.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述GPU管理模块作为符合Kubernetes拓展标准的插件,运行在主机层面。

8.根据权利要求1所述的面向容器的GPU集群资源虚拟化管理系统,其特征在于,所述GPU管理模块通过gRPC服务与Kubelet建立通信连接。

...

【技术特征摘要】

1.一种面向容器的gpu集群资源虚拟化管理系统,应用于云容器,其特征在于,包括:gpu管理模块、gpu调度模块、vgpu管理模块和vgpu库;

2.根据权利要求1所述的面向容器的gpu集群资源虚拟化管理系统,其特征在于,所述gpu管理模块还用于,获取到所述资源调度请求后进行解析,根据解析后的所述资源调度请求的节点标识信息,判断所述资源调度请求是否为本地调度信息;

3.根据权利要求1所述的面向容器的gpu集群资源虚拟化管理系统,其特征在于,所述gpu管理模块包括注册单元、物理gpu检测单元、vgpu创建单元、vgpu上报单元;所述注册单元用于向kubelet进行注册,与kubelet建立通信连接;所述物理gpu检测单元用于检测获取节点上处于健康状态的物理gpu信息,所述vgpu创建单元用于将获得的物理gpu虚拟化为vgpu;所述vgpu上报单元用于向kubelet上报信息。

4.根据权利要求1所述的面向容器的gpu集群资源虚拟化管理系统,其特征在于,所述gpu调度模块包括状态检测单元、gpu分配单元、配置信息生成单元;所述状态检测单元用于检测所有处于健康状态的gpu的状态信息并进行维护,所...

【专利技术属性】
技术研发人员:高泽赵雨虹王蝶韩昊翔胥凌曹朋朋
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所
类型:发明
国别省市:

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

1