昇腾 NPU 组件安装¶
本章节提供 昇腾 NPU 驱动和 Device Plugin 的安装指导。
前提条件¶
安装步骤¶
使用 NPU 资源之前,需要完成固件安装、NPU 驱动安装、 Docker Runtime 安装、用户创建、日志目录创建以及 NPU Device Plugin 安装,详情参考如下步骤。
安装固件¶
安装 NPU 驱动¶
- 如驱动未安装,请参考昇腾官方文档进行安装:例如 Ascend910,参考:910 驱动安装文档。
-
运行 npu-smi info 命令,并且能够正常返回 npu 信息,表示 NPU 驱动与固件已就绪。
安装 Docker Runtime¶
- 下载 Ascend Docker Runtime
社区版下载地址:https://www.hiascend.com/zh/software/mindx-dl/community
wget -c https://mindx.obs.cn-south-1.myhuaweicloud.com/OpenSource/MindX/MindX%205.0.RC2/MindX%20DL%205.0.RC2/Ascend-docker-runtime_5.0.RC2_linux-x86_64.run
安装到指定路径下,依次执行以下两条命令,参数为指定的安装路径:
chmod u+x Ascend-docker-runtime_5.0.RC2_linux-x86_64.run
./Ascend-docker-runtime_{version}_linux-{arch}.run --install --install-path=<path>
- 修改 containerd 配置文件
containerd 无默认配置文件时,依次执行以下3条命令,创建配置文件:
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml
containerd 有配置文件时:
根据实际情况修改 runtime 的安装路径,主要修改 runtime 字段:
...
[plugins."io.containerd.monitor.v1.cgroups"]
no_prometheus = false
[plugins."io.containerd.runtime.v1.linux"]
shim = "containerd-shim"
runtime = "/usr/local/Ascend/Ascend-Docker-Runtime/ascend-docker-runtime"
runtime_root = ""
no_shim = false
shim_debug = false
[plugins."io.containerd.runtime.v2.task"]
platforms = ["linux/amd64"]
...
执行以下命令,重启 containerd:
用户创建¶
在对应组件安装的节点上执行以下命令创建用户。
# Ubuntu 操作系统
useradd -d /home/hwMindX -u 9000 -m -s /usr/sbin/nologin hwMindX
usermod -a -G HwHiAiUser hwMindX
# Centos 操作系统
useradd -d /home/hwMindX -u 9000 -m -s /sbin/nologin hwMindX
usermod -a -G HwHiAiUser hwMindX
日志目录创建¶
在对应节点创建组件日志父目录和各组件的日志目录,并设置目录对应属主和权限。执行下述命令,创建组件日志父目录。
执行下述命令,创建 Device Plugin 组件日志目录。
Note
请分别为所需组件创建对应的日志目录,当前案例中只需要 Device Plugin 组件。 如果有其他组件需求请参考官方文档
安装 Device Plugin¶
-
如驱动与 Device Plugin 未安装,请参考昇腾官方文档进行安装,参考昇腾 NPU Device Plugin。
-
镜像拉取可参考镜像拉取地址:harbor.daocloud.cn/library/ascend-k8sdeviceplugin:v5.0.RC2
!!! note
昇腾镜像仓库中拉取的MindX DL镜像与组件启动yaml中的名字不一致,需要重命名拉取的镜像后才能启动。
根据以下步骤将2中获取的镜像重新命名,同时建议删除原始名字的镜像。具体操作如下。
ctr -n k8s.io i tag harbor.daocloud.cn/library/ascend-k8sdeviceplugin:v5.0.RC2 ascend-k8sdeviceplugin:v5.0.RC2
-
获取 device-plugin-910-v5.0.RC2.yaml 文件,请参考下载地址
-
执行 Kube Apply:
# 根据环境实际情况选择使用的 yaml 文件,这里环境中使用的是 910 芯片。
# 需要给 node 打上 accelerator=huawei-Ascend910 的label,才能被调度启动 pod。
kubectl label nodes {node-name} accelerator=huawei-Ascend910
# 提交 device-plugin yaml
kubectl apply -f device-plugin-910-v5.0.RC2.yaml
注意: device-plugin-910-v5.0.RC2.yaml 中的镜像地址是 ascend-k8sdeviceplugin:v5.0.RC2
构建 ascend-k8sdeviceplugin 镜像:从下载的代码包中有 Dockerfile 文件 (详情参考:软件包说明),执行构建命令:
Dockerfile | Ascend Device Plugin 镜像构建文本文件 |
---|---|
Dockerfile-310P-1usoc | Atlas 200I Soc A1 核心版上Ascend Device Plugin镜像构建文本文件。 |
- NPU Device Plugin 默认安装在 kube-system 命名空间下。这是一个 DaemonSet 类型的工作负载, 可以通过 kubectl get pod -n kube-system | grep ascend 命令查看,输出如下: