(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210547160.2
(22)申请日 2022.05.19
(71)申请人 银河麒麟软件 (长 沙) 有限公司
地址 410205 湖南省长 沙市长沙高新开发
区尖山路39 号长沙中电软件园有限公
司总部大楼G08 88室
(72)发明人 马春雨 吴春光 张远航 李钰磊
张里阳 刘晓敏 张玉
(74)专利代理 机构 湖南兆弘专利事务所(普通
合伙) 43008
专利代理师 刘畅舟
(51)Int.Cl.
G06F 9/50(2006.01)
G06F 9/455(2006.01)
(54)发明名称
基于kubernetes的GP U设备资源分配方法及
系统
(57)摘要
本发明公开了一种基于kubernetes的GP U设
备资源分配方法及系统, 方法包括: GPU设备插件
为每个GPU真实设备生成至少两个逻辑 设备; GPU
设备插件将逻辑 设备的设备ID和对应GPU真实设
备的健康 状况上报, 若GPU应用容器被调度到GP U
计算节点, kubelet设备管理器模块获取GP U应用
容器的PodID、 容器ID和绑 定标记发送给GP U设备
插件; GPU设备插件选 择负载率最低的GP U真实设
备分配逻辑 设备, 或者根据绑 定标记、 PodID匹配
并分配GPU真实设备。 本发明实现了GPU设备对
GPU应用容器的共享, 并提高了GPU设备利用率。
权利要求书4页 说明书12页 附图3页
CN 114840344 A
2022.08.02
CN 114840344 A
1.一种基于kubernetes的GPU设备资源分配方法, 其特征在于, 应用于kubernetes中的
GPU计算节点, 所述GPU计算节点包括至少 2个真实GPU设备, 以及GPU设备插件和kubelet设
备管理器模块, 所述kubelet设备管 理器模块通过GPU设备插件和每个 真实GPU设备连接, 所
述方法包括以下步骤:
S1)GPU设备插件获取每个真实GPU设备的设备信息, 根据每个真实GPU设备的显存大
小, 为每个真实GPU设备生成至少两个逻辑设备;
S2)GPU设备插件获取每个真实GPU设备的负载情况和健康状况, 将每个逻辑设备的设
备ID和对应真实GPU设备的健康状况上报kubelet设备管理器模块, 随后kubelet设备管理
器模块将所述真实GPU设备和逻辑设备的信息发送到Kubernetes中的API Server;
S3)若含有GPU应用容器的Pod被调度到GPU计算节点, kubelet设备管理器模块获取对
应的Pod ID、 容器ID和绑定标记, 及已分配的目标逻辑设备的设备ID, 并一同发送给GPU设
备插件;
S4)若目标逻辑设备的设备ID为一个, 且绑定标记为第一值, GPU设备插件选择负载率
最低的真实GPU设备, 将目标逻辑设备分配给被选择的真实GPU设备, 然后分配给对应的GPU
应用容器, 并调整其余逻辑设备和各真实GPU设备的对应 关系, 返回步骤S2)直到结束; 否则
执行步骤S5);
S5)若目标逻辑设备的设备ID为一个, 且绑定标记为第二值, GPU设备插件根据Pod ID
匹配真实GPU设备, 若存在匹配结果, 将所述目标逻辑设备分配给匹配到的真实GPU设备, 然
后分配给对应的GPU应用容器, 并调整其余逻辑设备和各真实GPU设备的对应关系, 返回步
骤S2)直到结束。
2.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法, 其特征在于, 步骤
S1)之前还包括配置kubelet设备管 理模块和GPU设备插件的步骤, 具体包括: 在kubernetes
的设备管理协 议中增加包含设备ID、 Pod ID、 容器ID和绑定标记的字段, 根据修改后的设备
管理协议配置kubelet设备管理模块和GPU设备插件, 将GPU设备插件容器化部署到
kubernetes中, 将宿主机的所有GPU设备映射至所述GPU设备插 件的容器。
3.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法, 其特征在于, 步骤
S4)具体包括以下步骤:
S41)根据目标逻辑设备的设备ID匹配到对应的原始真实GPU设备, 获取原始真实GPU设
备的负载率, 若原始真实GPU设备的负载率在所有空余真实GPU设备中不是最小则执行步骤
S42); 若原始真实GPU设备的负载率在所有空余真实GPU设备中最小, 将所述目标逻辑设备
分配给原始真实GPU设备, 然后分配给对应的GPU应用容器, 将原始真实GPU设备的实际路径
和权限反馈给kubelet设备管 理器模块, 返回步骤S2), 所述空余真实GPU设备为存在未分配
逻辑设备的真实GPU设备;
S42)选取所有空余真实GPU设备中负载率最小的真实GPU设备作为当前真实GPU设备,
选取当前真实GPU设备的一个未分配逻辑设备, 与目标逻辑设备 交换, 并将目标逻辑设备分
配给当前真实GPU设备, 然后分配给对应的GPU应用容器, 将当前真实GPU设备的实际路径和
权限反馈给kubelet设备 管理器模块。
4.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法, 其特征在于, 步骤
S5)具体包括以下步骤:权 利 要 求 书 1/4 页
2
CN 114840344 A
2S51)根据目标逻辑设备的设备ID对应 的Pod ID匹配所有真实GPU设备, 若存在匹配结
果, 且匹配到的真实GPU设备存在未分配逻辑设备, 将匹配到的真实GPU设备作为当前真实
GPU设备;
S52)根据目标逻辑设备的设备ID匹配到对应的原始真实GPU设备, 若原始真实GPU设备
不为当前真实GPU设备, 选取当前真实GPU设备的一个未分配逻辑设备, 与目标逻辑设备交
换, 将目标逻辑设备分配给当前真实GPU设备, 然后分配给对应的GPU应用容器, 将当前真实
GPU设备的实际路径和权限反馈给kubelet设备管理器模块; 若原始真实GPU设备为当前真
实GPU设备, 将目标逻辑设备分配给原始真实GPU设备, 然后分配给对应的GPU应用容器, 将
原始真实GPU设备的实际路径和权限反馈给kubelet设备 管理器模块。
5.根据权利要求4所述的基于kubernetes的GPU设备资源分配方法, 其特征在于, 步骤
S51)中还包括不存在匹配结果, 或者匹配到的真实GPU设备不存在未分配逻辑设备的处理
步骤, 具体包括:
S51a)若不存在匹配结果, 或者匹配到的真实GPU设备不存在未分配逻辑设备, 根据目
标逻辑设备的设备ID 匹配到对应的原始真实GPU设备, 获取原始真实GPU设备的负载率, 若
原始真实GPU设备的负载率在所有空余真实GPU设备中不是最小则 执行步骤S51b); 若原始
真实GPU设备的负载率在所有空余真实GPU设备中最小, 将所述目标逻辑设备分配给原始真
实GPU设备, 然后分配给对应的GPU应用容器, 将原始真实GPU设备的实际路径和权限反馈给
kubelet设备管 理器模块, 保存所述目标逻辑设备的设备ID 对应的Pod ID作为原始真实GPU
设备对应的Pod ID, 所述空余真实GPU设备为存在未分配逻辑设备的真实GPU设备, 返回步
骤S2);
S51b)选取所有空余真实GPU设备中负载率最小的真实GPU设备作 为当前真实GPU设备,
选取当前真实GPU设备的一个未分配逻辑设备, 与目标逻辑设备 交换, 将所述目标逻辑设备
分配给当前真实GPU设备, 然后分配给对应的GPU应用容器, 将当前真实GPU设备的实际路径
和权限反馈给kubelet设备管理器模块, 保存所述目标逻辑设备的设备ID对应的Pod ID作
为当前真实GPU设备对应的Pod ID。
6.根据权利要求1所述的基于kubernetes的GPU设备资源分配方法, 其特征在于, 步骤
S5)之后还 包括所述目标逻辑设备的设备ID为多个的处 理步骤, 具体包括:
S501)选取当前目标逻辑设备的设备ID;
S502)根据当前目标逻辑设备的设备ID匹配到对应的原始真实GPU设备, 获取原始真实
GPU设备的负载率, 若原始真实GPU设备的负载率在所有空余真实GPU设备中不是最小则 执
行步骤S503); 若原始真实GPU设备的负载率在所有空余真实GPU设备中最小, 将当前目标逻
辑设备分配给原始真实GPU设备, 然后分配给对应的GPU应用容器, 将原始真实GPU设备的实
际路径和权限反馈给kubelet设备管理器模块, 所述空余真实GPU设备为存在未分配逻辑设
备的真实GPU设备, 返回步骤S501)直到所有目标逻辑设备的设备ID选取完毕, 返回步骤
S2);
S503)选取所有空余真实GPU设备中负载率最小的真实GPU设备作 为当前真实GPU设备,
选取当前GPU真实设备的一个未分配逻辑设备, 与当前目标逻辑设备 交换, 将当前目标逻辑
设备分配给当前真实GPU设备, 然后分配给对应的GPU应用容器, 将当前真实GPU设备的实际
路径和权限反馈给kubelet设备管 理器模块, 返回步骤S501)直到所有目标逻辑设备的设备权 利 要 求 书 2/4 页
3
CN 114840344 A
3
专利 基于kubernetes的GPU设备资源分配方法及系统
文档预览
中文文档
20 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 13:31:06上传分享