容器服务提供 mGPU 多卡共享功能,在双层调度的基础上,单个容器可使用同一节点上的多张 GPU 卡共同提供算力和显存资源,打破同一个容器使用算力/显存局限于一张 GPU 卡的束缚,提高 GPU 碎片化资源利用率。本文为您详细介绍如何使用 mGPU 多卡共享功能。
说明
mGPU 功能目前处于 公测 阶段。
native-burst-share
、fixed-share
、guaranteed-burst-share
,详细介绍参见:配置 mGPU 算力分配策略。依赖组件 | 版本限制 | 查看方法 |
---|---|---|
Kubernetes |
| 前往控制台的集群基本信息页面查看,详细介绍参见:如何查看集群的 Kubernetes 版本? |
mGPU 驱动 | 07.34.4 及以上 | 登录 mGPU 所属云服务器,执行mgpu-cli version 命令即可查看 mGPU 驱动版本。 |
mGPU 组件 | v0.2.0 及以上 | 前往控制台的组件管理页面查看,详细操作步骤参见:查看组件。 |
本文以创建无状态负载(Deployment)为例进行介绍,详细创建步骤参见:创建无状态负载。
配置项 | 说明 |
---|---|
GPU 资源类型 | 多卡共享仅在 mGPU 资源类型生效,本场景选择 mGPU。 |
多卡共享配置 | 默认关闭,本场景需 开启 此配置。开启后,将为工作负载提供 mGPU 多卡调度能力,即单个容器可以使用多张 GPU 卡提供算力和显存。 |
GPU 算力 | 配置当前容器所需的 GPU 算力,这些算力将由多张 GPU 卡以等分的形式共同提供。需同时满足以下配置要求:
|
GPU 显存 | 配置当前容器所需的 GPU 显存总和,这些显存将由多张 GPU 卡以等分的形式共同提供。 |
GPU 卡数 | 多卡共享场景下,用来共同提供算力和显存的 GPU 卡数,配置范围:1~8 的整数。 |
显卡类型 | 配置 Pod 需要调度的 GPU 节点。默认不限制型号,配置型号后将按照所选型号指定 GPU 节点。 |
vke.volcengine.com/container-multiple-gpu: "2"
:GPU 卡数,例如 "1,2,3",与容器一一对应,分别表示各容器所需使用的卡数,若不能对应将报错。vke.volcengine.com/mgpu-compute-policy: native-burst-share
:GPU 算力分配策略,多卡共享场景固定配置为 native-burst-share。GPU 多卡共享功能通过实例注解(Annotation)实现,除了常规配置外,还需要增加以下两条实例注解配置。
vke.volcengine.com/container-multiple-gpu: "2"
:GPU 卡数,例如 "1,2,3",与容器一一对应,分别表示各容器所需使用的卡数,若不能对应将报错。vke.volcengine.com/mgpu-compute-policy: native-burst-share
:GPU 算力分配策略,多卡共享场景固定配置为 native-burst-share。通过 YAML 配置 mGPU 多卡共享的示例如下:
apiVersion: apps/v1 kind: Deployment metadata: name: mgpu-deployment # Deployment 名称。 namespace: default # Deployment 所属命名空间。 spec: replicas: 1 # 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/container-multiple-gpu: "2" # GPU 卡数,例如 "1,2,3",与容器一一对应,分别表示各容器所需使用的卡数。 vke.volcengine.com/mgpu-compute-policy: native-burst-share # GPU 算力分配策略,多卡共享场景固定配置为 native-burst-share。 labels: app: mgpu-deployment