开启 MIG 功能¶
本章节介绍如何开启 NVIDIA MIG 功能方式,NVIDIA 当前提供两种在 Kubernetes 节点上公开 MIG 设备的策略:
- Single 模式,节点仅在其所有 GPU 上公开单一类型的 MIG 设备。
- Mixed 模式,节点在其所有 GPU 上公开混合 MIG 设备类型。
Tip
MIG 模式 Disable 之后需要重新启动物理节点,才能正常的使用整卡模式。
详情参考:NVIDIA GPU 卡使用模式
前提条件¶
- 待安装 GPU 驱动节点系统要求请参考:GPU 支持矩阵
- 确认集群节点上具有对应型号的 GPU 卡(NVIDIA H100、 A100 和 A30 Tensor Core GPU), 详情参考:GPU 支持矩阵
- 节点上的所有 GPU 必须:属于同一产品线(例如 A100-SXM-40GB)
开启 GPU MIG Single 模式¶
-
通过 Operator 开启 MIG Single 模式,在安装界面配置参数:
- DevicePlugin 设置为 enable
- MIG strategy 设置为 single
- Mig Manager 下的 enabled 参数开启
- MigManager Config :MIG 的切分策略配置,默认为 default-mig-parted-config
-
安装完成后需要给对应节点(已插入对应 GPU 卡节点)打上切分规格的 label,如不执行此操作,将按照默认不切分。
Tip
Single 模式只能按照单一模式进行切分。建议使用默认策略,也可以自定义切分策略。
界面配置 :
-
在 ConfigMap 中搜索
default-mig-parted-config
,进入详情找到 GPU 卡型号对应的切分规格。 -
找到对应节点,选择 修改标签 添加 nvidia.com/mig.config="all-1g.10gb" 。若选择其他规格,则按照其他规格进行切分。
命令配置:
-
-
查看配置结果
设置完成后,在确认部署应用时即可使用 GPU MIG 资源。
开启 GPU MIG Mixed 模式¶
-
通过 Operator 开启 MIG Mixed 模式,在安装界面配置如下参数:
- DevicePlugin 设置为 enable
- MIG strategy 设置为 mixed
- Mig Manager 下的 enabled 参数开启
- MigManager Config :MIG 的切分策略配置,默认为 default-mig-parted-config .
-
安装完成后需要给对应节点(已插入对应 GPU 卡节点)打上切分规格的 label,如不执行此操作,将按照默认不切分。
Tip
建议使用默认策略,也可以自定义切分策略。
界面配置 :
-
在 ConfigMap 中搜索 default-mig-parted-config ,进入详情找到 GPU 卡型号对应的切分规格。
-
找到对应节点,选择 修改标签 添加 nvidia.com/mig.config="all-1g.10gb" 。若选择其他规格,则按照其他规格进行切分。
命令配置 :
-
-
查看配置结果
设置完成后,在确认部署应用时即可使用 GPU MIG 资源。
自定义切分策略¶
可自定义切分策略配置文件,单张卡最多可切分为 7 个实例。需在安装 GPU Operator 前创建,并在安装时指定该 ConfigMap 名称。
-
在 ConfigMap 中创建自定义切分策略,部署时需要和 GPU operator 部署在同一个命名空间下。 同时您创建的文件名称不能与默认 default-mig-parted-config 相同。配置数据可参考如下 yaml。
点击查看详细的 YAML 配置说明
如下 YAML 为示例自定义配置 custom-mig-parted-config ,配置数据的 key 为如下 config.yaml 中内容,您可以自定义添加其他切分策略。
config.yaml# 自定义切分 GI 实例配置 version: v1 mig-configs: all-disabled: - devices: all mig-enabled: false # A100-40GB, A800-40GB all-1g.5gb: - devices: all mig-enabled: true mig-devices: "1g.5gb": 7 all-1g.5gb.me: - devices: all mig-enabled: true mig-devices: "1g.5gb+me": 1 all-2g.10gb: - devices: all mig-enabled: true mig-devices: "2g.10gb": 3 all-3g.20gb: - devices: all mig-enabled: true mig-devices: "3g.20gb": 2 all-4g.20gb: - devices: all mig-enabled: true mig-devices: "4g.20gb": 1 all-7g.40gb: - devices: all mig-enabled: true mig-devices: "7g.40gb": 1 # H100-80GB, H800-80GB, A100-80GB, A800-80GB, A100-40GB, A800-40GB all-1g.10gb: # H100-80GB, H800-80GB, A100-80GB, A800-80GB - device-filter: ["0x233010DE", "0x233110DE", "0x232210DE", "0x20B210DE", "0x20B510DE", "0x20F310DE", "0x20F510DE"] devices: all mig-enabled: true mig-devices: "1g.10gb": 7 # A100-40GB, A800-40GB - device-filter: ["0x20B010DE", "0x20B110DE", "0x20F110DE", "0x20F610DE"] devices: all mig-enabled: true mig-devices: "1g.10gb": 4 # H100-80GB, H800-80GB, A100-80GB, A800-80GB all-1g.10gb.me: - devices: all mig-enabled: true mig-devices: "1g.10gb+me": 1 # H100-80GB, H800-80GB, A100-80GB, A800-80GB all-1g.20gb: - devices: all mig-enabled: true mig-devices: "1g.20gb": 4 all-2g.20gb: - devices: all mig-enabled: true mig-devices: "2g.20gb": 3 all-3g.40gb: - devices: all mig-enabled: true mig-devices: "3g.40gb": 2 all-4g.40gb: - devices: all mig-enabled: true mig-devices: "4g.40gb": 1 all-7g.80gb: - devices: all mig-enabled: true mig-devices: "7g.80gb": 1 # A30-24GB all-1g.6gb: - devices: all mig-enabled: true mig-devices: "1g.6gb": 4 all-1g.6gb.me: - devices: all mig-enabled: true mig-devices: "1g.6gb+me": 1 all-2g.12gb: - devices: all mig-enabled: true mig-devices: "2g.12gb": 2 all-2g.12gb.me: - devices: all mig-enabled: true mig-devices: "2g.12gb+me": 1 all-4g.24gb: - devices: all mig-enabled: true mig-devices: "4g.24gb": 1 # H100 NVL, H800 NVL all-1g.12gb: - devices: all mig-enabled: true mig-devices: "1g.12gb": 7 all-1g.12gb.me: - devices: all mig-enabled: true mig-devices: "1g.12gb+me": 1 all-2g.24gb: - devices: all mig-enabled: true mig-devices: "2g.24gb": 3 all-3g.47gb: - devices: all mig-enabled: true mig-devices: "3g.47gb": 2 all-4g.47gb: - devices: all mig-enabled: true mig-devices: "4g.47gb": 1 all-7g.94gb: - devices: all mig-enabled: true mig-devices: "7g.94gb": 1 # H100-96GB, PG506-96GB all-3g.48gb: - devices: all mig-enabled: true mig-devices: "3g.48gb": 2 all-4g.48gb: - devices: all mig-enabled: true mig-devices: "4g.48gb": 1 all-7g.96gb: - devices: all mig-enabled: true mig-devices: "7g.96gb": 1 # H100-96GB, H100 NVL, H800 NVL, H100-80GB, H800-80GB, A800-40GB, A800-80GB, A100-40GB, A100-80GB, A30-24GB, PG506-96GB all-balanced: # H100 NVL, H800 NVL - device-filter: ["0x232110DE", "0x233A10DE"] devices: all mig-enabled: true mig-devices: "1g.12gb": 1 "2g.24gb": 1 "3g.47gb": 1 # H100-80GB, H800-80GB, A100-80GB, A800-80GB - device-filter: ["0x233010DE", "0x233110DE", "0x232210DE", "0x20B210DE", "0x20B510DE", "0x20F310DE", "0x20F510DE"] devices: all mig-enabled: true mig-devices: "1g.10gb": 2 "2g.20gb": 1 "3g.40gb": 1 # A100-40GB, A800-40GB - device-filter: ["0x20B010DE", "0x20B110DE", "0x20F110DE", "0x20F610DE"] devices: all mig-enabled: true mig-devices: "1g.5gb": 2 "2g.10gb": 1 "3g.20gb": 1 # A30-24GB - device-filter: "0x20B710DE" devices: all mig-enabled: true mig-devices: "1g.6gb": 2 "2g.12gb": 1 # H100-96GB, PG506-96GB - device-filter: ["0x233D10DE", "0x20B610DE"] devices: all mig-enabled: true mig-devices: "1g.12gb": 2 "2g.24gb": 1 "3g.48gb": 1 # 设置后会按照设置规格切分 CI 实例 custom-config: - devices: all mig-enabled: true mig-devices: "1g.10gb": 4 "1g.20gb": 2
在上述的 YAML 中设置
custom-config
,设置后会按照规格切分 CI 实例。 -
在安装 GPU Operator 时,指定该 ConfigMap。