MIG 资源
Multi-Instance GPU (MIG) 会将支持 MIG 的 GPU(例如 NVIDIA A100、A30 或 H100)划分为多个相互隔离的 GPU 实例。每个实例都拥有专用的计算和内存资源,因此无法完全占满整张 GPU 的工作负载可以在同一块卡上并行运行。
在此版本中,MIG 是一项可选能力。MIG geometry manager (mig-manager) 默认处于关闭状态,其镜像未包含在产品包中,并且在此版本中尚未在支持 MIG 的硬件上完成端到端验证。启用 MIG 需要支持 MIG 的硬件以及用户提供的 mig-manager 镜像。
本页说明如何通过 Alauda GPU Management 暴露 MIG,以及如何启用它。详细的硬件分区步骤请参见 NVIDIA 的 MIG User Guide。在 MIG 硬件上验证启用和分区流程是作为单独的后续任务跟踪的。
前提条件
- 支持 MIG 的 GPU(参见 NVIDIA Supported GPUs)。
- 集群镜像仓库中可用的
mig-manager镜像。该镜像不包含在产品包中;请从nvcr.io镜像同步(见下文)。
提供 mig-manager 镜像
mig-manager 组件使用的是 NVIDIA 提供且本产品不再分发的镜像。请将其从 nvcr.io 镜像同步到您的私有镜像仓库,然后在 ClusterPolicy 中指向该镜像:
在 ClusterPolicy 中,启用该组件并将其仓库设置为镜像同步后的地址:
请保持同步后的 tag 与源 tag 完全一致。该镜像由 NVIDIA 提供;镜像同步和使用需遵循 NVIDIA 的条款。
MIG 策略
ClusterPolicy 中的 mig.strategy 字段控制 MIG 设备如何向 Kubernetes 进行声明。
none
Alauda GPU Management 不区分是否启用了 MIG 的 GPU。所有 GPU 都会被枚举为 nvidia.com/gpu,与非 MIG 节点相同。当不使用 MIG 时请使用此策略。
single
MIG 设备会被声明为 nvidia.com/gpu,从而保持工作负载体验不变,但此时资源映射到的是节点上可用的 MIG 实例,而不是整块 GPU。节点上的所有 MIG 实例必须使用相同的 profile。一个具有七个 1g.5gb 实例的节点会报告七个 nvidia.com/gpu。
mixed
每种 MIG profile 都会被声明为一个独立的完整资源,形式为 nvidia.com/mig-<slice_count>g.<memory_size>gb(例如 nvidia.com/mig-1g.5gb、nvidia.com/mig-2g.10gb)。当一个节点上同时存在不同大小的 MIG 实例时,请使用此策略。
与在命令行中设置 MIG 的区别
直接在节点上使用 nvidia-smi mig 设置 MIG geometry 是一种命令式的一次性操作:您需要手动确保 GPU 处于空闲状态,创建实例,并重新配置 device plugin,而且当配置发生漂移时,它不会被自动协调。
mig-manager 组件是声明式的:您在 ClusterPolicy(或节点标签)中设置目标 profile,管理器会驱逐节点上的 GPU 工作负载,应用该 geometry,并持续保持其一致性。随后 GPU Feature Discovery 会根据策略声明这些 MIG 实例。该管理器封装了相同的底层分区工具,但增加了节点驱逐和一致性协调生命周期。
请求 MIG 实例
完成 MIG 配置后,请像请求整块 GPU 一样,将声明的资源作为 limit 进行请求:
在请求之前,请先从节点的 allocatable 资源中确认已声明的 MIG 资源: