ascend-docker

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Ascend Docker Container

Ascend Docker容器

Create Docker containers configured for Huawei Ascend NPU development.
创建适用于华为Ascend NPU开发的Docker容器。

Quick Start

快速开始

bash
undefined
bash
undefined

Privileged mode (default, auto-detect all devices)

特权模式(默认,自动检测所有设备)

./scripts/run-ascend-container.sh <image> <container_name>
./scripts/run-ascend-container.sh <image> <container_name>

Basic mode with specific devices

基础模式(指定设备)

./scripts/run-ascend-container.sh <image> <container_name> --mode basic
./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"
undefined
./scripts/run-ascend-container.sh <image> <container_name> --mode full --device-list "0,1,2,3"
undefined

Device Selection

设备选择

The script auto-detects available NPU devices from
/dev/davinci*
. Use
--device-list
to select specific devices:
bash
undefined
脚本会自动从
/dev/davinci*
路径检测可用的NPU设备。使用
--device-list
参数选择特定设备:
bash
undefined

Use all detected devices (default)

使用所有检测到的设备(默认)

./scripts/run-ascend-container.sh <image> <container_name>
./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"
./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"
./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"

**Check available devices:**
```bash
ls /dev/davinci* | grep -oE 'davinci[0-9]+$'
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0-3,7,10-11"

**查看可用设备:**
```bash
ls /dev/davinci* | grep -oE 'davinci[0-9]+$'

Container Modes

容器模式

1. Privileged Mode (Default)

1. 特权模式(默认)

Maximum permissions, suitable when no specific requirements.
bash
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
拥有最高权限,适用于无特殊要求的场景。
bash
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. Basic Mode

2. 基础模式

Specific device mapping with network host, for inference workloads.
bash
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
映射特定设备并使用host网络,适用于推理工作负载。
bash
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. Full Mode

3. 完整模式

With profiling, logging, dump, and add-ons support.
bash
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
支持性能分析、日志、数据转储及附加组件。
bash
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

Mode Comparison

模式对比

FeaturePrivilegedBasicFull
Network modehosthost-
IPC modehost-host
Device accessAll (via privileged)Selected devicesSelected devices
Profiling support
Dump support
Logging (slog)
SecurityLowestHigherHigher
特性特权模式基础模式完整模式
网络模式hosthost-
IPC模式host-host
设备访问全部(通过特权)选定设备选定设备
性能分析支持
数据转储支持
日志(slog)支持
安全性最低较高较高

Device Parameters

设备参数

DevicePurpose
/dev/davinci_manager
NPU device manager
/dev/devmm_svm
Device memory management
/dev/hisi_hdc
HDC communication device
/dev/davinci<N>
Individual NPU devices (0, 1, 2, ...)
设备用途
/dev/davinci_manager
NPU设备管理器
/dev/devmm_svm
设备内存管理
/dev/hisi_hdc
HDC通信设备
/dev/davinci<N>
单个NPU设备(0, 1, 2, ...)

Volume Parameters

卷参数

VolumePurpose
/usr/local/Ascend/driver
Ascend driver libraries
/usr/local/sbin
NPU management tools (npu-smi)
/usr/local/Ascend/add-ons
Additional Ascend components
/var/log/npu/slog
System logs
/var/log/npu/profiling
Profiling data
/var/log/npu/dump
Dump data
/etc/localtime
Timezone sync
/home
User workspace
用途
/usr/local/Ascend/driver
Ascend驱动库
/usr/local/sbin
NPU管理工具(npu-smi)
/usr/local/Ascend/add-ons
Ascend附加组件
/var/log/npu/slog
系统日志
/var/log/npu/profiling
性能分析数据
/var/log/npu/dump
转储数据
/etc/localtime
时区同步
/home
用户工作空间

Common Images

常用镜像

bash
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
bash
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

Container Management

容器管理

bash
docker exec -it <container_name> bash
docker stop <container_name>
docker start <container_name>
docker rm -f <container_name>
bash
docker exec -it <container_name> bash
docker stop <container_name>
docker start <container_name>
docker rm -f <container_name>

Post-Setup

配置后操作

For self-built images, configure environment variables:
bash
echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc
对于自定义构建的镜像,需配置环境变量:
bash
echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc

Official References

官方参考