一种GPU资源管理方法、系统、设备和存储介质与流程

文档序号:34115737发布日期:2023-05-10 23:56阅读:61来源:国知局
一种GPU资源管理方法、系统、设备和存储介质与流程

本发明涉及计算机,具体涉及一种gpu资源管理方法、系统、设备和存储介质。


背景技术:

1、kubernetes是容器集群管理系统,用于自动部署、扩展和管理容器化应用程序,基于kubernetes的device plugin机制,kubernetes可调度在节点上暴露出来的nvidia gpu、amd gpu等gpu资源,用户可通过指定nvidia.com/gpu、amd.com/gpu等标记来使用这些实体gpu设备。kubernetes管理分配这些实体gpu设备,这属于整卡分配的场景。随着技术的发展,gpu资源的使用方案越来越丰富,除上述整卡分配场景外,在工业界还涌现出了诸如vgpu、qgpu、cgpu、vcuda、rcuda、gpushare等共享、隔离和远端转发方案,每套方案都有自己独立的部署和使用逻辑。

2、现有技术中,基于传统的kubernetes device plugin技术架构,调度逻辑只是简单的gpu资源标记数量的加减,既不能体现gpu资源的分配情况,也不能同时支持上述的整卡gpu、vgpu、qgpu、cgpu、vcuda、rcuda、gpushare等诸多类型的gpu方案的管理分配。若引入并使用多种gpu管理方案,对kubernetes系统自身而言,会导致整个架构、运维复杂的上升。


技术实现思路

1、基于以上背景,本发明的目的在于提供一种适配管理多类型gpu资源的gpu资源管理方法,解决背景技术中所述的问题。

2、本发明的另一目的在于提供一种适配管理多类型gpu资源的gpu资源管理系统、设备和存储介质。

3、为了实现上述发明目的,本发明提供以下技术方案:

4、一种gpu资源管理方法,该方法包括:

5、在kubernetes集群中部署unidt gpu crds定制组件和调度组件,在kubernetes集群中每个节点部署gpu设备插件组件;其中,所述unidt gpu crds定制组件包括:用于对应kubernetes集群中可使用的gpu资源的unidtgpu对象、用于描述容器组pod的gpu资源需求的unidtgpuclaim对象、以及用于动态模式创建unidtgpu对象的unidtgpuclass对象;所述调度组件包括:用于预选优选及绑定gpu资源的kubernetes扩展调度器、用于管控unidtgpu crds定制组件的控制器、以及用于向kubernetes集群和gpu资源提供分配缓存及gpu资源调度的缓存器;

6、响应容器组pod的gpu资源需求;

7、以节点调度方式和gpu资源调度方式相结合的策略对容器组pod的gpu资源需求进行调度,将容器组pod调度到节点;

8、在容器组pod中分配gpu资源。

9、作为优选,所述响应容器组pod的gpu资源需求,包括:

10、以用户模式或动态模式创建unidtgpu对象并通过控制器绑定unidtgpu对象和unidtgpuclaim对象。

11、作为优选,所述以用户模式创建unidtgpu对象并通过控制器绑定unidtgpu对象和unidtgpuclaim对象包括:

12、在kubernetes集群中预先创建unidtgpu对象;

13、创建unidtgpuclaim对象描述拟申领的gpu资源,通过控制器绑定unidtgpu对象和unidtgpuclaim对象;

14、在创建容器组pod时指定unidtgpuclaim对象。

15、作为优选,所述以动态模式创建unidtgpu对象并通过控制器绑定unidtgpu对象和unidtgpuclaim对象包括:

16、创建unidtgpuclass对象并指定egpuclassname,所述egpuclassname用于在创建容器组pod时作为标记物而指定具有其的unidtgpuclaim对象;

17、通过kubernetes扩展调度器将节点更新到unidtgpuclaim对象;

18、通过控制器根据unidtgpuclaim对象创建初始状态为待定的unidtgpu对象并等待unidtgpu对象的状态更新;

19、通过部署于节点的gpu设备插件组件监测unidtgpu对象的创建,根据unidtgpu对象创建实际的gpu设备,在实际的gpu设备创建成功后将unidtgpu对象的状态更新为可用;

20、通过控制器绑定unidtgpu对象和unidtgpuclaim对象。

21、作为优选,所述节点调度方式的策略包括:

22、kubernetes扩展调度器在预选阶段遍历每个节点找到最合适的gpu资源进行调度,在优选阶段根据gpu资源分配率的加权平均进行打分,根据打分结果形成binpack规则和spread规则;

23、所述binpack规则为:gpu资源分配率越高则打分越高,将容器组pod集中调度到同一个节点;

24、所述spread规则为:gpu资源分配率越低则打分越高,将容器组pod分散调度到各个节点。

25、作为优选,所述gpu资源调度方式的策略包括:

26、kubernetes扩展调度器在选定节点后为容器组pod中每个容器选择和分配该节点上的gpu资源,根据gpu资源装箱率的加权平均进行打分,在满足容器资源需求的前置条件下,根据打分结果形成binpack规则和spread规则;

27、所述binpack规则为:优先选择gpu资源装箱率高的gpu资源,将容器集中调度到同一gpu资源上;

28、所述spread规则为:优先选择gpu资源装箱率低的gpu资源,将容器分散调度到各个gpu资源上。

29、作为优选,该方法还包括:

30、根据命名规范定义多种类型的gpu资源,所述命名规范包括以供给方式划分的gpu资源类型、gpu核心资源和gpu内存资源。

31、一种gpu资源管理系统,包括:

32、部署模块,用于在kubernetes集群中部署unidt gpu crds定制组件和调度组件,在kubernetes集群中每个节点部署gpu设备插件组件;其中,所述unidt gpu crds定制组件包括:用于对应kubernetes集群中可使用的gpu资源的unidtgpu对象、用于描述容器组pod的gpu资源需求的unidtgpuclaim对象、以及用于动态模式创建unidtgpu对象的unidtgpuclass对象;所述调度组件包括:用于预选优选及绑定gpu资源的kubernetes扩展调度器、用于管控unidt gpu crds定制组件的控制器、以及用于向kubernetes集群和gpu资源提供分配缓存及gpu资源调度的缓存器;

33、申请模块,用于响应容器组pod的gpu资源需求创建gpu资源申请;

34、调度模块,用于以节点调度方式和gpu资源调度方式相结合的策略对容器组pod的gpu资源需求进行调度,将容器组pod调度到节点;

35、分配模块,用于在容器组pod中分配gpu资源。

36、一种gpu资源管理设备,包括:

37、至少一个处理器;以及,

38、至少一个存储器;

39、其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行如上所述的gpu资源管理方法。

40、一种存储介质,存储有计算机可执行指令,所述计算机可执行指令在被处理器执行时用于实现如上所述的gpu资源管理方法。

41、与现有技术相比,本发明具有以下优点:

42、本发明的一种gpu资源管理方法,实现以通用框架和统一的核心流程对不同类型的gpu资源的管理,适配管理多类型的gpu资源,基于crd方式在kubernetes集群中管理调度gpu资源,既能支持gpu资源管理和使用分离,并且能支持多种不同的gpu资源供给方案,如整卡gpu、vgpu、qgpu、cgpu、vcuda、rcuda、gpushare等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1