- 最新动态
- 服务公告
- 产品介绍
- 用户指南
-
常见问题
- CentOS Linux停止维护后如何应对?
- 华为云针对CentOS EOL有没有迁移方案?
- 如何安装mlnx驱动?
- 如何开启HCE操作系统的SELinux功能?
- 迁移系统后,如何更改控制台操作系统名称?
- Huawei Cloud EulerOS、openEuler和EulerOS镜像的主要区别是什么?
- 如何打开内核wireguard模块以及安装wireguard-tools?
- 如何将docker工具的用户凭证保存方式配置成与社区一致?
- OOM相关参数配置与原因排查
- IPVS报错问题说明
- 中文环境执行sulogin命令终端显示乱码说明
- ECS开启IPv6后,HCE系统内无法获取到IPv6地址
- 如何设置自动注销时间TMOUT?
- 最佳实践
- 文档下载
- 通用参考
链接复制成功!
XGPU算力调度示例
当使用XGPU服务创建XGPU时,XGPU服务会按照最大容器数量(max_inst)为每张显卡设置时间片(X ms)用于为容器分配GPU算力,以单元1、单元2…单元N表示。本节max_inst以20为例,介绍使用不同调度策略时对算力的调度示例。
原生调度(policy=0)
原生调度表示使用NVIDIA GPU本身的算力调度方式。在原生调度策略下XGPU只用来做显存的隔离。
固定算力调度(policy=1)
固定算力调度表示以固定的算力百分比为容器分配算力。例如为容器1和容器2分别分配5%和15%的算力,如下图所示。
平均调度(policy=2)
平均调度表示每个容器固定获得1/max_inst的算力。以max_inst=20为例,每个容器固定获得1/max_inst,即5%的算力,如下图所示。
抢占调度(policy=3)
抢占调度表示每个容器固定获得1个时间片,XGPU服务会从算力单元1开始调度。但如果某个算力单元没有分配给某个容器,或者容器内没有进程打开GPU设备,则跳过调度切换到下一个时间片。图中灰色部分的算力单元表示被跳过不参与调度。
本例中容器1、2、3占用的实际算力百分比均为33.33%。
权重抢占调度(policy=4)
权重抢占调度表示按照每个容器的算力比例为容器分配时间片。XGPU服务会从算力单元1开始调度,但如果某个算力单元没有分配给某个容器,则跳过调度切换到下一个时间片。例如为容器1、2、3分别分配5%、5%、10%的算力,则容器1、2、3分别占用1、1、2个算力单元。图中灰色部分的算力单元表示被跳过不参与调度。
本例中容器1、2、3占用的实际算力百分比为25%、25%、50%。
混合调度(policy=5)
混合调度表示单张GPU卡支持单显存隔离和算力显存隔离类型。其中算力显存隔离的容器其隔离效果同固定算力(policy=1)完全一致,单显存隔离的容器共享算力显存隔离的容器分配后剩余的GPU算力。以max_inst=20为例,容器1、2为算力显存隔离容器,其分配的算力分别为5%、10%,容器3、4为单显存隔离的容器,则容器1、2分别占用1、2个算力单元,容器3、4共享剩余17个算力单元。此外,当容器2中没有进程打开GPU设备时,则容器1、2分别占用1、0个算力单元,容器3、4共享剩余19个算力单元。
在混合调度下,根据GPU_CONTAINER_QUOTA_PERCENT是否为0来区分容器是否开启算力隔离,GPU_CONTAINER_QUOTA_PERCENT为0的所有容器共享GPU的空闲算力。
混合调度策略不支持高优先级容器。
权重弱调度(policy=6)
权重弱调度表示按照每个容器的算力比例为容器分配时间片,隔离性弱于权重抢占调度。XGPU服务会从算力单元1开始调度,但如果某个算力单元没有分配给某个容器,或者容器内没有进程打开GPU设备,则跳过调度切换到下一个时间片。例如为容器1、2、3分别分配5%、5%、10%的算力,则容器1、2、3分别占用1、1、2个算力单元。图中白色部分的算力单元表示容器3的空闲算力,图中白色部分和灰色部分的算力单元表示被跳过不参与调度。
本例中容器1、2、3占用的实际算力百分比为50%、50%、0%。
权重弱调度涉及空闲算力的抢占和抢回,因此容器在空闲和忙碌之间切换时会影响其他容器的算力,该算力波动属于正常情况。当某个容器从空闲切换到忙碌时,其抢回算力的时延不超过100ms。