使用示例
yaml名称 |
说明 |
---|---|
train-volcano.yaml |
训练环境使用Volcano作为调度器 |
train-no-volcano.yaml |
训练环境使用其他调度器 |
infer-volcano.yaml |
推理环境使用Volcano作为调度器 |
infer-no-volcano.yaml |
推理环境使用其他调度器 |
infer-310p-1usoc-volcano.yaml |
推理环境使用Volcano作为调度器,仅Atlas 200I Soc A1 核心板环境使用 |
infer-310p-1usoc-no-volcano.yaml |
推理环境使用其他调度器,仅Atlas 200I Soc A1 核心板环境使用 |
修改yaml配置
- 根据任务部署需要部署到的节点架构,修改对应的selector。
- 如果任务部署到x86架构节点,nodeSelector修改为:host-arch: huawei-x86。示例如下。
... spec: template: spec: nodeSelector: host-arch: huawei-x86 containers: - image: ascend-k8sdeviceplugin:v3.0.0 ...
- 如果任务部署到aarch64架构节点,nodeSelector修改为:host-arch: huawei-arm。示例如下。
... spec: template: spec: nodeSelector: host-arch: huawei-arm containers: - image: ascend-k8sdeviceplugin:v3.0.0 ...
- 如果任务部署到x86架构节点,nodeSelector修改为:host-arch: huawei-x86。示例如下。
- 请根据安装的集群调度组件版本修改任务使用的镜像版本。
... spec: template: spec: nodeSelector: host-arch: huawei-arm containers: - image: ascend-k8sdeviceplugin:v3.0.0 ...
- (可选)如果是验证训练环境可跳过本步骤。Atlas 200I Soc A1 核心板使用的yaml不需要修改芯片类型,也可以跳过本步骤。推理环境存在使用Atlas 推理系列产品和Atlas 200/300/500 推理产品的场景,需要根据节点类型修改推理yaml中的芯片类型。
... containers: - image: ascend-k8sdeviceplugin:v3.0.0 imagePullPolicy: IfNotPresent name: infer-env-quick-validation command: [ "/bin/bash", "-c", "npu-smi info" ] resources: requests: huawei.com/Ascend310: 1 # 如果是Atlas 推理系列产品请将Ascend 310修改为Ascend 310P limits: huawei.com/Ascend310: 1 # 如果是Atlas 推理系列产品请将Ascend 310修改为Ascend 310P ...
- (可选)如果未使用Volcano作为调度器可跳过本步骤。否则,需要修改replicas参数,同时检测多个节点的驱动情况。
- 训练任务train-volcano.yaml,参考以下示例修改。
apiVersion: batch.volcano.sh/v1alpha1 kind: Job metadata: name: mindx-dls-test spec: minAvailable: 1 # 需要与replicas的值保持一致 schedulerName: volcano maxRetry: 1 queue: default tasks: - name: "default-test" replicas: 1 # 节点个数 template: spec: containers: - image: ascend-k8sdeviceplugin:v3.0.0 name: teswts imagePullPolicy: IfNotPresent command: ["/bin/bash", "-c", "npu-smi info"] resources: requests: huawei.com/Ascend910: 1 # 当replicas配置大于1时,节点为Atlas 800 训练服务器时NPU数量只能为8,服务器(插Atlas 300T 训练卡)时只能为2 limits: huawei.com/Ascend910: 1 # 当replicas配置大于1时,节点为Atlas 800 训练服务器时NPU数量只能为8,服务器(插Atlas 300T 训练卡)时只能为2 volumeMounts: ...
- 推理任务以infer-volcano.yaml为例,参考以下示例修改。
apiVersion: apps/v1 kind: Deployment metadata: name: infer-env-quick-validation spec: replicas: 1 # 节点个数 selector: matchLabels: app: infers template: metadata: labels: app: infers spec: schedulerName: volcano nodeSelector: host-arch: huawei-arm containers: - image: ascend-k8sdeviceplugin:v3.0.0 imagePullPolicy: IfNotPresent name: infer-env-quick-validation command: [ "/bin/bash", "-c", "npu-smi info" ] resources: requests: huawei.com/Ascend310: 1 limits: huawei.com/Ascend310: 1 ...
- 训练任务train-volcano.yaml,参考以下示例修改。
下发任务
在管理节点执行如下命令。
kubectl apply -f {任务yaml}
查看结果
在管理节点执行如下命令。
kubectl logs {pod名字}
如:
kubectl logs infer-env-quick-validation-c8f6d6897-n9fbf
如果回显出现类似的信息则表示任务运行节点驱动安装正常。获取任务yaml中获取的yaml中默认只使用1个NPU,如果用户修改了数量请以实际为准。
- 训练任务示例
+-------------------------------------------------------------------------------------------+ | npu-smi 22.0.4 Version: 22.0.4 | +----------------------+---------------+----------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page)| | Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | +======================+===============+====================================================+ | 0 910A | OK | 71.3 47 15 / 15 | | 0 | 0000:61:00.0 | 0 2940 / 15071 30738/ 32768 | +======================+===============+====================================================+
- 推理任务以昇腾310 AI处理器为例
+--------------------------------------------------------------------------------------------------------+ | npu-smi 22.0.4 Version: 22.0.4 | +-------------------------------+-----------------+------------------------------------------------------+ | NPU Name | Health | Power(W) Temp(C) Hugepages-Usage(page) | | Chip Device | Bus-Id | AICore(%) Memory-Usage(MB) | +===============================+=================+======================================================+ | 0 310 | OK | 12.8 49 0 / 969 | | 0 0 | 0000:04:00.0 | 0 622 / 7759 | +===============================+=================+======================================================+
如果推理任务使用名字带volcano的yaml,Pod会被反复拉起,会导致NPU一直被该Pod占用,请及时删除对应任务。
删除任务
在管理节点执行如下命令删除任务。
kubectl delete -f {任务yaml}
父主题: 快速验证环境