昇腾 NPU 运维(驱动 + CANN + Device Plugin 部署与验证)
一、背景
国产 AI 芯片昇腾(Ascend)NPU 在大模型推理/训练中使用广泛。在 K8s 中要让容器用上 NPU,需驱动 + CANN + 设备插件三层适配。
二、环境信息
- 节点:Kylin aarch64 / x86 + 昇腾 910B
- 软件:Ascend 驱动 24.x + CANN 7.0 + 容器运行时适配
三、操作要点
1. 安装驱动与 CANN
1 2 3
| ./Ascend-driver-24.1.rc1_linux-aarch64.run --full ./Ascend-cann-toolkit_7.0.0_linux-aarch64.run --install npu-smi info
|
2. 容器运行时适配(Ascend Docker Runtime)
3. 部署 Ascend Device Plugin
1 2
| kubectl apply -f https://raw.githubusercontent.com/Ascend/ascend-device-plugin/master/device-plugin.yml
|
4. 使用 NPU
1 2
| resources: limits: { huawei.com/Ascend910: 1 }
|
四、验证方式
1 2 3
| npu-smi info kubectl get nodes -o json | jq '.items[].status.allocatable["huawei.com/Ascend910"]' kubectl exec -it npu-pod -- npu-smi info
|
五、常见问题
- 驱动与 CANN 版本必须匹配:错配导致算子不可用
- aarch64 镜像:确保训练/推理镜像架构匹配(arm64)
- device plugin 注册失败:驱动未装好或 runtime 未配置
- NUMA/亲和:大模型切分注意 NPU 间互联(HCCS)拓扑,调度尽量同卡组
- 容器内不可见 NPU:runtime 配置错误,核对 ascend-docker-runtime