关于 ascend-docker
用于创建 Huawei Ascend NPU 开发环境 Docker 容器的脚本工具,提供特权、基础和完整模式,可自动检测或指定设备,并按模式提供不同的性能分析与日志支持。
主要功能
- 01特权、基础和完整模式
- 02自动检测 NPU 设备
- 03指定要映射的设备
- 04完整模式支持性能分析与转储
- 05挂载 Ascend 驱动和工作区
适用场景
- 01为 Ascend NPU 推理准备容器
- 02为开发容器选择 NPU 设备
- 03启用性能分析、日志和转储支持
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ascend/ agent-skills --skill ascend-docker安装后在 Claude Code 中输入/ascend-docker确认已加载。
附带文件scripts/run-ascend-container.sh
详细介绍
昇腾 Docker 容器
创建配置为用于华为昇腾 NPU 开发的 Docker 容器。
快速开始
# Privileged mode (default, auto-detect all devices)
./scripts/run-ascend-container.sh <image> <container_name>
# Basic mode with specific devices
./scripts/run-ascend-container.sh <image> <container_name> --mode basic
# Full mode with selected devices
./scripts/run-ascend-container.sh <image> <container_name> --mode full --device-list "0,1,2,3"
设备选择
脚本会从 /dev/davinci* 自动检测可用的 NPU 设备。使用 --device-list 选择特定设备:
# Use all detected devices (default)
./scripts/run-ascend-container.sh <image> <container_name>
# Use specific devices
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0,1,2,3"
# Use device range
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0-3"
# Combine ranges and individual devices
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0-3,7,10-11"
检查可用设备:
ls /dev/davinci* | grep -oE 'davinci[0-9]+$'
容器模式
1. 特权模式(默认)
权限最高,适用于没有特定要求的情况。
docker run -itd --privileged --name=<CONTAINER_NAME> --ipc=host --net=host \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /home:/home \
-w /home \
<IMAGE> \
/bin/bash
2. 基础模式
映射特定设备并使用 host 网络,适用于推理工作负载。
docker run -itd --net=host \
--name=<CONTAINER_NAME> \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
... \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /etc/localtime:/etc/localtime \
-v /home:/home \
<IMAGE> \
/bin/bash
3. 完整模式
支持性能分析、日志、转储和附加组件。
docker run -itd --ipc=host \
--name=<CONTAINER_NAME> \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
... \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf \
-v /var/log/npu/slog/:/var/log/npu/slog \
-v /var/log/npu/profiling/:/var/log/npu/profiling \
-v /var/log/npu/dump/:/var/log/npu/dump \
-v /var/log/npu/:/usr/slog \
-v /etc/localtime:/etc/localtime \
-v /home:/home \
<IMAGE> \
/bin/bash
模式比较
| 特性 | 特权模式 | 基础模式 | 完整模式 |
|---|---|---|---|
| 网络模式 | host | host | - |
| IPC 模式 | host | - | host |
| 设备访问 | 全部(通过 privileged) | 所选设备 | 所选设备 |
| 性能分析支持 | ✓ | ✗ | ✓ |
| 转储支持 | ✓ | ✗ | ✓ |
| 日志(slog) | ✓ | ✗ | ✓ |
| 安全性 | 最低 | 较高 | 较高 |
设备参数
| 设备 | 用途 |
|---|---|
/dev/davinci_manager | NPU 设备管理器 |
/dev/devmm_svm | 设备内存管理 |
/dev/hisi_hdc | HDC 通信设备 |
/dev/davinci<N> | 单个 NPU 设备(0、1、2……) |
卷参数
| 卷 | 用途 |
|---|---|
/usr/local/Ascend/driver | 昇腾驱动程序库 |
/usr/local/sbin | NPU 管理工具(npu-smi) |
/usr/local/Ascend/add-ons | 其他昇腾组件 |
/var/log/npu/slog | 系统日志 |
/var/log/npu/profiling | 性能分析数据 |
/var/log/npu/dump | 转储数据 |
/etc/localtime | 时区同步 |
/home | 用户工作区 |
常用镜像
ascendhub.huawei.com/public-ascendhub/ascend-pytorch:24.0.RC1
ascendhub.huawei.com/public-ascendhub/ascend-mindspore:24.0.RC1
ascendhub.huawei.com/public-ascendhub/ascend-toolkit:24.0.RC1
容器管理
docker exec -it <container_name> bash
docker stop <container_name>
docker start <container_name>
docker rm -f <container_name>
设置完成后
对于自行构建的镜像,请配置环境变量:
echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc
官方参考资料
评论
支持 Markdown