ascend-docker

SKILL.md

Ascend Docker Container

Create Docker containers configured for Huawei Ascend NPU development.

Quick Start

# 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"

Device Selection

The script auto-detects available NPU devices from /dev/davinci*. Use --device-list to select specific devices:

# 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"

Check available devices:

ls /dev/davinci* | grep -oE 'davinci[0-9]+$'

Container Modes

1. Privileged Mode (Default)

Maximum permissions, suitable when no specific requirements.

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

Specific device mapping with network host, for inference workloads.

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

With profiling, logging, dump, and add-ons support.

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

Feature Privileged Basic Full
Network mode host host -
IPC mode host - host
Device access All (via privileged) Selected devices Selected devices
Profiling support
Dump support
Logging (slog)
Security Lowest Higher Higher

Device Parameters

Device Purpose
/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, ...)

Volume Parameters

Volume Purpose
/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

Common Images

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

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:

echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc

Official References

Weekly Installs
38
GitHub Stars
24
First Seen
Feb 25, 2026
Installed on
codex38
github-copilot37
kimi-cli37
gemini-cli37
amp37
cursor37