NPU推理任务
典型场景章节中关于NPU推理任务分为下面两种情况:
- 使用Volcano作为调度器,请参考使用Volcano作为调度器,NPU推理任务基础流程。
- 不使用Volcano作为调度器,请参考不使用Volcano作为调度器,NPU推理任务基础流程。
使用Volcano作为调度器,NPU推理任务基础流程
创建Deployment类型的推理任务。
- Deployment资源示例
apiVersion: apps/v1 kind: Deployment metadata: name: infer spec: replicas: 1 selector: matchLabels: app: infers template: metadata: labels: app: infers spec: schedulerName: volcano nodeSelector: host-arch: huawei-arm containers: - image: infer:latest imagePullPolicy: IfNotPresent name: infer command: xxxx resources: requests: huawei.com/Ascend310: 1 limits: huawei.com/Ascend310: 1 volumeMounts: - name: ascend-driver mountPath: /usr/local/Ascend/driver volumes: - name: ascend-driver hostPath: path: /usr/local/Ascend/driver
- replicas通常为1。
- 调度器schedulerName必须为:Volcano。
- nodeSelector默认只支持Volcano启动时yaml中配置的键值对且必须使用“host-arch”标签,如需增加用户自己的selector,请参考Volcano调度配置。
- 需修改request和limit中NPU的资源名字和资源数量。可通过查看K8s中节点的详情确定本节点可以使用的NPU资源类型,如整卡、虚拟化实例后的NPU、Ascend310/Ascend310P等。
- 目前只支持一个Pod中有一个容器使用NPU。
- 挂载驱动相关目录。如果不满足如下两种情况,需要用户自行挂载驱动相关目录。
- 当Ascend Device Plugin启动参数为useAscendDocker=true,用户已安装Ascend Docker Runtime且生效时,会自动帮用户挂载安装在“/usr/local/Ascend”下的驱动相关目录
- 当Ascend Device Plugin启动参数为useAscendDocker=false时,也会自动帮用户挂载安装在“/usr/local/Ascend”下的驱动相关目录
- 用户需要增加模型代码等路径的挂载,以及增加用户需要的其他内容,如环境变量等。
- 用户需要设置容器的启动命令,对应yaml的command字段。
父主题: 快速入门