静态虚拟化
使用限制
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 推理系列产品(配置Ascend 310P AI处理器) |
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”,安装容器引擎插件。
- 参见《MindX DL 集群调度安装指南》中“安装部署”章节,完成各组件的安装。
虚拟化实例涉及到需要修改相关参数的集群调度组件为Volcano和Ascend Device Plugin,请按如下要求修改并使用对应的yaml安装部署。
- 亲和性场景:需要安装Volcano。
- 非亲和性场景:不需要安装Volcano,只会上报设备数量给节点的K8s。
- Ascend Device Plugin参数修改及启动说明:
虚拟化实例启动参数说明如下:
表2 Ascend Device Plugin启动参数 参数
类型
默认值
说明
-volcanoType
bool
false
是否使用Volcano进行调度,如使用动态虚拟化,需要设置为true。
-presetVirtualDevice
bool
true
静态虚拟化功能开关,目前支持Atlas 训练系列产品、Atlas 推理系列产品(配置Ascend 310P AI处理器),且值只能为true。
如使用动态虚拟化,需要设置为false。目前支持Atlas 推理系列产品(配置Ascend 310P AI处理器)的动态虚拟化,且需要同步开启Volcano使用。
yaml启动说明如下:- K8s集群中存在使用Atlas 推理系列产品(配置Ascend 310P AI处理器)节点(Ascend Device Plugin独立工作,不协同Volcano使用)。
kubectl apply -f device-plugin-310P-v{version}.yaml
- K8s集群中存在使用Atlas 训练系列产品节点(Ascend Device Plugin独立工作,不协同Volcano和HCCL-Controller使用)。
kubectl apply -f device-plugin-910-v{version}.yaml
- K8s集群中存在使用Atlas 推理系列产品(配置Ascend 310P AI处理器)节点(协同Volcano使用,支持NPU虚拟化,yaml默认关闭动态虚拟化)。
kubectl apply -f device-plugin-310P-volcano-v{version}.yaml
- K8s集群中存在使用Atlas 训练系列产品节点(协同Volcano和HCCL-Controller使用,支持NPU虚拟化,yaml默认关闭动态虚拟化)。
kubectl apply -f device-plugin-volcano-v{version}.yaml
如果K8s集群使用了多种类型的昇腾处理器,请分别执行对应命令。
- K8s集群中存在使用Atlas 推理系列产品(配置Ascend 310P AI处理器)节点(Ascend Device Plugin独立工作,不协同Volcano使用)。
- Volcano参数修改及启动说明:
在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-v5.0.0.2_linux-aarch64 # 其中5.0.0.2为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 推理系列产品(配置Ascend 310P AI处理器)使用为例。
resources中设定的requests和limits资源类型,应修改为huawei.com/Ascend310P-Y,其中Y值和vNPU类型相关,具体取值参考表 虚拟化实例模板与虚拟设备类型关系表中的虚拟类型。
... resources: requests: huawei.com/Ascend310P-Y: 1 # 请求的vNPU数量,最大值为1。 limits: huawei.com/Ascend310P-Y: 1 # 数值与请求数量一致。 ...