You need to enable JavaScript to run this app.
导航
配置mGPU算力分配策略
最近更新时间:2024.09.13 17:38:52首次发布时间:2022.11.30 14:45:12

本文主要介绍配置 mGPU 算力分配策略的方法,以及在工作负载中使用该策略进行调度的操作。

说明

mGPU 功能目前处于 公测 阶段。

使用须知

使用 mGPU 算力分配策略时,对集群、GPU 组件等有如下要求和限制。更多 mGPU 使用须知,请参见 mGPU 使用方法

项目要求

Kubernetes 版本

不低于 v1.20.15-vke.6 版本。
集群 Kubernetes 版本的查看方法,请参见 FAQ;版本发布记录,请参见 Kubernetes 版本发布记录

说明

低于 v1.20.15-vke.6 版本的集群中已有 mGPU 相关业务,且希望使用 mGPU 算力分配策略时,请提交 工单申请 获取技术支持,升级 Kubernetes 版本。

mgpu 组件版本不低于 v0.0.3 版本。组件版本升级方法,请参见 组件升级;组件版本发布记录,请参见 组件发布记录

算力分配策略说明

mGPU 支持如下三种算力分配策略。

Value 取值说明
fixed-share(默认值)固定配额。每个容器都有固定的算力配额,在容器运行过程中即使 GPU 还有剩余算力,也无法超过固定算力配额。
guaranteed-burst-share固定争抢。每个容器都有保底的算力配额,但只要 GPU 还有空闲算力,就可以被容器使用。
native-burst-share争抢模式。可设置算力配额,设置的值越高,可争抢到的配额越高,但不保证每个容器都能争抢到与已设置的算力配额相同的配额。

alt

前提条件

已完成 mGPU 相关配置。详细操作,请参见 mGPU 使用方法

步骤一:为 GPU 计算型节点配置算力分配策略

  1. 登录 容器服务控制台
  2. 在顶部导航栏中选择您业务所在的地域。
  3. 在左侧导航栏中选择 集群,单击目标集群名称。
  4. 为 mGPU 相关节点或节点池,配置算力分配策略。
    • 节点池
      1. 在集群管理页面的左侧导航栏单击 节点池
      2. 节点池 页面,找到已完成 mGPU 相关配置的节点池,单击对应 操作 列下的 编辑

        注意

        您也可以在满足配置 mGPU 算力分配策略环境要求(Kubernetes 版本、mgpu 组件版本等)的集群中,创建新的 mGPU 相关 GPU 计算型节点池,同时配置算力分配策略。此时无需重启节点。详细操作,请参见 mGPU 使用方法

      3. 更多配置 处设置 节点标签 的 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-shareguaranteed-burst-sharenative-burst-share,表示在该节点池中的节点上,配置 Value 取值对应的算力分配策略。
        详细的参数说明,请参见 管理节点池

        注意

        • 您可以通过开启或关闭节点池的 节点标签及污点自动更新 功能,控制是否同步标签到节点池中的存量节点中。关闭该功能时,可能导致存量节点上的 GPU 算力分配策略与预期不符,请谨慎配置。
        • 更改节点池中节点的 mGPU 算力分配策略后,需要重启节点池中的所有 mGPU 相关节点使策略生效。重启节点的操作,请参见 重启实例
        • 不设置算力分配策略时(即不设置vke.volcengine.com/mgpu-compute-policy节点标签),则默认按fixed-share策略分配算力。
        alt
    • 节点
      1. 在集群管理页面的左侧导航栏中,单击 节点
      2. 节点 页面,找到已完成 mGPU 相关配置的节点,选择对应 操作 列下的... > 标签管理
      3. 标签 页签,单击 添加标签,在节点标签列表的最后,添加 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-shareguaranteed-burst-sharenative-burst-share的标签,表示在该节点上,配置 Value 取值对应的算力分配策略。
        alt

        注意

        • 更改节点的 mGPU 算力分配策略后,需要重启节点使策略生效。重启节点的操作,请参见 重启实例
        • vke.volcengine.com/mgpu-compute-policy属于系统标签,节点上添加系统标签后不允许修改 Value 值。
        • 不设置算力分配策略时(即不设置vke.volcengine.com/mgpu-compute-policy节点标签),则默认按fixed-share策略分配算力。

步骤二:在工作负载中配置算力分配策略

本文以创建无状态负载(Deployment)为例。

通过控制台配置

  1. 在集群管理页面的左侧导航栏中,选择 工作负载 > 无状态负载
  2. 无状态负载 页面,创建无状态负载或更新已有的负载。详细操作,请参见 创建无状态负载更新无状态负载
    其中 高级配置 步骤的 实例注解 处,配置 mGPU 调度策略:
    alt
    设置 实例注解 的 key 为vke.volcengine.com/mgpu-compute-policy、Value 为fixed-shareguaranteed-burst-sharenative-burst-share,表示该工作负载,使用 Value 取值对应的调度策略。

    注意

    • 工作负载不设置 mGPU 调度策略相关的 实例注解 时,默认按fixed-share策略调度。
    • 请确保集群中存在与工作负载具有相同策略的 GPU 计算型节点,例如工作负载的调度策略为fixed-share,那么集群中必须存在fixed-share策略的 GPU 计算型节点,否则不匹配调度策略,工作负载的 Pod 会一直处于 Pending 状态。

通过 YAML 配置

说明

spec.template.metadata字段下添加 Annotations:vke.volcengine.com/mgpu-compute-policy,并根据需求配置对应的调度策略值。

YAML示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mgpu-deployment # Deployment 名称。
  namespace: default # Deployment 所属命名空间。
spec:
  replicas: 2 # Pod 实例个数。 
  selector:
    matchLabels:
      app: mgpu-deployment
  template:
    spec:
      containers:
      - name: mgpu-container # 容器名称。
        image: nginx:1.14.2 # 容器镜像地址。
        resources:
         requests:   #与 limits 保持一致
           vke.volcengine.com/mgpu-memory: 4096
           vke.volcengine.com/mgpu-core: 30
         limits:
           vke.volcengine.com/mgpu-memory: 4096   #GPU 显存,单位为 MiB,此处表示 GPU 显存为 4 GiB。
           vke.volcengine.com/mgpu-core: 30      #GPU 算力百分比,此处表示配置 30% 的 GPU 算力。
        ports:
        - containerPort: 80
    metadata:
      annotations:
        vke.volcengine.com/mgpu-compute-policy: fixed-share   #算力分配策略,不配置时默认采用 fixed-share 策略。
      labels:
        app: mgpu-deployment

后续操作

配置 mGPU 算力分配策略后,可查看 mGPU 的各项监控指标。详细操作,请参见 查看 mGPU 监控指标