From external-gitcode-ascend-skills
Creates Docker containers for Huawei Ascend NPU development with auto-detected device mappings, volume mounts, and support for privileged, basic, and full modes with profiling/logging.
How this skill is triggered — by the user, by Claude, or both
Slash command
/external-gitcode-ascend-skills:ascend-dockerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create Docker containers configured for Huawei Ascend NPU development.
Create Docker containers configured for Huawei Ascend NPU development.
# 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"
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]+$'
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
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
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
| 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 | 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 | 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 |
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>
For self-built images, configure environment variables:
echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc
npx claudepluginhub ascend-ai-coding/awesome-ascend-skills --plugin migration-ascend-torchnpu-skillsLaunches Docker containers on Ascend NPU servers with proper device mounting, networking, and volume mounts. Performs pre-launch checks and gathers user requirements.
Automatically detects GPU vendor (NVIDIA, AMD, Ascend, Metax, Iluvatar), finds appropriate PyTorch container image, launches with correct mounts, and validates GPU functionality.
Deploys vLLM inference server using Docker (pre-built images or build-from-source) with NVIDIA GPU support and OpenAI-compatible API.