⚠️ 此功能仍处于实验阶段。请谨慎使用。
启用动态 MIG 功能
HAMi 现在支持使用 mig-parted 动态调整 MIG 设备,包括:
-
动态 MIG 实例管理:用户不再需要直接在 GPU 节点上操作,或使用
nvidia-smi -i 0 -mig 1之类的命令来管理 MIG 实例。HAMi-device-plugin 将自动处理这些操作。 -
动态 MIG 调整:HAMi 管理的每个 MIG 设备都会根据提交的作业按需动态调整其 MIG 模板。
-
设备 MIG 观测:HAMi 生成的每个 MIG 实例都会与作业信息一起显示在调度器监控中,清晰展示 MIG 节点概况。
-
与 HAMi-Core 节点兼容:HAMi 可以在 HAMi-core 节点和 MIG 节点之间管理统一的 GPU 池。除非通过
nvidia.com/vgpu-mode注解手动指定,否则作业可以调度到任一节点。 -
与 HAMi-Core 统一 API:无需额外工作即可使作业兼容动态 MIG 功能。
前提条件
- NVIDIA Blackwell、Hopper™ 和 Ampere GPU
- 已安装 Alauda Build 版本的 Hami
启用动态 MIG 支持
- 在每个 MIG 节点的
hami-device-pluginConfigMap 中将operatingmode设置为mig将nodeconfig数组中的节点名称替换为目标节点名称。若要覆盖多个节点,请在数组中添加更多条目。 - 重启以下 pods 以使更改生效:
- hami-scheduler
- 节点 'MIG-NODE-A' 上的 hami-device-plugin
注意:上述配置在 chart 升级后会丢失;Hami 的未来版本将对此进行改进。
自定义 MIG 配置(可选)
HAMi 默认提供一套 MIG 配置。
你可以按照以下步骤自定义 MIG 配置:
然后重启 hami-scheduler 组件。 HAMi 会按照此 ConfigMap 中定义的顺序,识别并使用与作业匹配的第一个 MIG 模板。
注意:上述配置在 chart 升级后会丢失;Hami 的未来版本将对此进行改进。
运行 MIG 作业
现在容器可以像 hami-core 一样请求 MIG 实例,只需指定 nvidia.com/gpualloc 和 nvidia.com/gpumem 资源类型即可。
注意:
nvidia.com/gpualloc请求不能超过物理 GPU 的实际数量。例如,单个处于 MIG 模式的 GPU 只能请求1。这是当前 Hami 的限制,未来版本会改进。- 在 MIG 节点上无需执行任何操作——所有内容都由 hami-device-plugin 中的 mig-parted 管理。
- Ampere 架构之前的 NVIDIA 设备不支持 MIG 模式。
- MIG 资源(例如:
nvidia.com/mig-1g.10gb)不会显示在节点上。HAMi 对 MIG 节点和 hami-core 节点使用统一的资源名称。 - 在执行 MIG 分区时,必须停止部署在 MIG 节点上的
DCGM-exporter组件,因为 MIG 分区需要重置 GPU。在创建第一个启用 MIG 的工作负载后,将自动执行 MIG 分区。后续工作负载不会再次触发分区。当所有工作负载停止后,再次启动第一个工作负载时会重新触发 MIG 分区。