静态虚拟化
使用限制
NPU类型 |
虚拟化实例模板 |
vNPU类型 |
具体虚拟设备名称(以vNPU ID100、物理卡ID0为例) |
---|---|---|---|
Atlas 训练系列产品(30或32个AI Core) |
vir02 |
Ascend910-2c |
Ascend910-2c-100-0 |
vir04 |
Ascend910-4c |
Ascend910-4c-100-0 |
|
vir08 |
Ascend910-8c |
Ascend910-8c-100-0 |
|
vir16 |
Ascend910-16c |
Ascend910-16c-100-0 |
|
Atlas 推理系列产品 |
vir01 |
Ascend310P-1c |
Ascend310P-1c-100-0 |
vir02 |
Ascend310P-2c |
Ascend310P-2c-100-0 |
|
vir04 |
Ascend310P-4c |
Ascend310P-4c-100-0 |
|
vir02_1c |
Ascend310P-2c.1cpu |
Ascend310P-2c.1cpu-100-0 |
|
vir04_3c |
Ascend310P-4c.3cpu |
Ascend310P-4c.3cpu-100-0 |
|
vir04_3c_ndvpp |
Ascend310P-4c.3cpu.ndvpp |
Ascend310P-4c.3cpu.ndvpp-100-0 |
|
vir04_4c_dvpp |
Ascend310P-4c.4cpu.dvpp |
Ascend310P-4c.4cpu.dvpp-100-0 |
使用前提
- 需要先获取“Ascend-docker-runtime_{version}_linux-{arch}.run”,安装容器引擎插件。
- 参见安装部署章节,完成各组件的安装。
虚拟化实例涉及到需要修改相关参数的集群调度组件为MindCluster Volcano和
MindCluster Ascend Device Plugin,请按如下要求修改并使用对应的yaml安装部署。
- 亲和性场景:需要安装MindCluster Volcano。
- 非亲和性场景:不需要安装MindCluster Volcano,只会上报设备数量给节点的K8s。
MindCluster Ascend Device Plugin参数修改及启动说明:
虚拟化实例启动参数说明如下:
表2 MindCluster Ascend Device Plugin启动参数
参数
类型
默认值
说明
-volcanoType
bool
false
是否使用MindCluster Volcano进行调度,如使用动态虚拟化,需要设置为true。
-presetVirtualDevice
bool
true
静态虚拟化功能开关,目前支持Atlas 训练系列产品、Atlas 推理系列产品,且值只能为true。
如使用动态虚拟化,需要设置为false。目前支持Atlas 推理系列产品的动态虚拟化,且需要同步开启MindCluster Volcano使用。
yaml启动说明如下:- K8s集群中存在使用Atlas 推理系列产品节点(
MindCluster Ascend Device Plugin独立工作,不使用MindCluster Volcano调度器)。
kubectl apply -f device-plugin-310P-v{version}.yaml
- K8s集群中存在使用Atlas 训练系列产品节点(
MindCluster Ascend Device Plugin独立工作,不配合MindCluster Volcano和MindCluster HCCL Controller使用)。
kubectl apply -f device-plugin-910-v{version}.yaml
- K8s集群中存在使用Atlas 推理系列产品节点(使用MindCluster Volcano调度器,支持NPU虚拟化,yaml默认关闭动态虚拟化)。
kubectl apply -f device-plugin-310P-volcano-v{version}.yaml
- K8s集群中存在使用Atlas 训练系列产品节点(配合MindCluster Volcano和MindCluster HCCL Controller使用,支持NPU虚拟化,yaml默认关闭动态虚拟化)。
kubectl apply -f device-plugin-volcano-v{version}.yaml
如果K8s集群使用了多种类型的昇腾处理器,请分别执行对应命令。
- K8s集群中存在使用Atlas 推理系列产品节点(
- MindCluster Volcano参数修改及启动说明:
在MindCluster Volcano部署文件“volcano-v{version}.yaml”中,需要配置“presetVirtualDevice”且值只能为“true”。
... data: volcano-scheduler.conf: | actions: "enqueue, allocate, backfill" tiers: - plugins: - name: priority - name: gang - name: conformance - name: volcano-npu-v6.0.RC2_linux-aarch64 # 其中6.0.RC2为MindX DL的版本号,根据不同版本,该处编码不同 - plugins: - name: drf - name: predicates - name: proportion - name: nodeorder - name: binpack configurations: ... - name: init-params arguments: {"grace-over-time":"900","presetVirtualDevice":"true"} ...
使用方法
- 创建训练任务时,需要在创建yaml文件时,修改如下配置。以Atlas 训练系列产品使用为例。resources中设定的requests和limits资源类型,应修改为huawei.com/Ascend910-Y,其中Y值和vNPU类型相关,具体取值参考表 虚拟化实例模板与虚拟设备类型关系表中的虚拟类型。
... resources: requests: huawei.com/Ascend910-Y: 1 # 请求的vNPU数量,最大值为1。 limits: huawei.com/Ascend910-Y: 1 # 数值与请求数量一致。 ...
- 创建推理任务时,需要在创建yaml文件时,修改如下配置。以Atlas 推理系列产品使用为例。resources中设定的requests和limits资源类型,应修改为huawei.com/Ascend310P-Y,其中Y值和vNPU类型相关,具体取值参考表 虚拟化实例模板与虚拟设备类型关系表中的虚拟类型。
... resources: requests: huawei.com/Ascend310P-Y: 1 # 请求的vNPU数量,最大值为1。 limits: huawei.com/Ascend310P-Y: 1 # 数值与请求数量一致。 ...