mcpField
A
ascend-docker

ascend-docker

github.com/ascendクラウド・DevOps52156 回インストール25 週間前に更新
リポジトリ

ascend-docker について

Huawei Ascend NPU 開発向けに設定した Docker コンテナを作成するスクリプトです。特権、基本、フルの各モードがあり、デバイスの自動検出または指定に対応し、モードごとにプロファイリングやログ機能を提供します。

主な機能

  1. 01特権・基本・フルの各モード
  2. 02NPU デバイスの自動検出
  3. 03使用デバイスの指定
  4. 04フルモードのプロファイリングとダンプ対応
  5. 05Ascend ドライバーと作業領域のマウント

活用シーン

  1. 01Ascend NPU 推論用コンテナの準備
  2. 02開発コンテナで使用する NPU の選択
  3. 03プロファイリング、ログ、ダンプ機能の有効化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ascend/agent-skills --skill ascend-docker

インストール後、Claude Code で/ascend-dockerを入力して読み込まれたか確認します。

同梱ファイルscripts/run-ascend-container.sh

詳細

Ascend Docker コンテナ

Huawei Ascend 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. 基本モード

推論ワークロード向けに、ネットワークをホストに設定し、特定のデバイスをマッピングします。

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

モードの比較

機能特権基本フル
ネットワークモードhosthost-
IPC モードhost-host
デバイスアクセスすべて(特権経由)選択したデバイス選択したデバイス
プロファイリングのサポート✓✗✓
ダンプのサポート✓✗✓
ログ(slog)✓✗✓
セキュリティ最低高い高い

デバイスパラメーター

デバイス用途
/dev/davinci_managerNPU デバイスマネージャー
/dev/devmm_svmデバイスメモリ管理
/dev/hisi_hdcHDC 通信デバイス
/dev/davinci<N>個別の NPU デバイス(0、1、2、…)

ボリュームパラメーター

ボリューム用途
/usr/local/Ascend/driverAscend ドライバーライブラリ
/usr/local/sbinNPU 管理ツール(npu-smi)
/usr/local/Ascend/add-ons追加の Ascend コンポーネント
/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

公式リファレンス

コメント