Ascend NPU
文章目录
如何查看版本号
CANN
| |
npu-smi info使用
npu-smi info类似nvidia-smi命令,打印NPU调用情况- 需要使用 root / sudo 权限来使用
在docker 中需要添加
--privileged1 2 3 4 5 6 7 8 9 10sudo docker run --privileged --device /dev/davinci1 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -it --rm ascendai/cann:8.0.rc2.beta1-910b-openeuler22.03-py3.8 bash
torch + npu + docker 使用
| |
直接使用 ascendai 提供 pytorch docker 镜像
| |
paddlepaddle + npu + docker
百度官方 镜像
- 昇腾 NPU 安装说明-使用文档-PaddlePaddle深度学习平台
pull 镜像,运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15# 拉取镜像 docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-x86_64-gcc84-py39 # X86 架构 docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-aarch64-gcc84-py39 # ARM 架构 # 考如下命令启动容器,ASCEND_RT_VISIBLE_DEVICES 可指定可见的 NPU 卡号 docker run -it --name paddle-npu-dev -v $(pwd):/work \ --privileged --network=host --shm-size=128G -w=/work \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \ ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-$(uname -m)-gcc84-py39 /bin/bash # 检查容器内是否可以正常识别昇腾 NPU 设备 npu-smi info安装 paddlepaddle (cpu 版), paddle-custom-npu
1 2pip install paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu/ pip install paddle-custom-npu -i https://www.paddlepaddle.org.cn/packages/nightly/npu/测试padle npu 可用性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15python -c "import paddle_custom_device; paddle_custom_device.npu.version()" # 预期得到如下输出结果 version: 0.0.0 commit: 147d506b2baa1971ab47b4550f0571e1f6b201fc cann: 8.0.RC1 .... # 飞桨基础健康检查 python -c "import paddle; paddle.utils.run_check()" # 预期得到输出如下 Running verify PaddlePaddle program ... PaddlePaddle works well on 1 npu. PaddlePaddle works well on 8 npus. PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.安装 pytorch
1 2 3 4pip3 install torch==2.1.0 torch-npu==2.1.0.post10 torchvision==0.16 # 测试 torch + npu 可用 python -c "import torch;import torch_npu;x=torch.Tensor([1,2]).npu();y=torch.Tensor([3,4]).npu()"同时使用 torch, torch_npu, paddleocr
导入顺序:
- paddleocr
- torch
- torch_npu
修复 libgomp***.so.1.0.0 错误:
1LD_PRELOAD="/venv/lib/python3.9/site-packages/torch/lib/../../torch.libs/libgomp-4dbbc2f2.so.1.0.0:$LD_PRELOAD" /venv/bin/python app.py
docker 使用 npu 方法
方法一
1 2 3 4 5docker run -it --rm --privileged --network=host --shm-size=128G -w=/work \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7"指定可用设备1 2 3 4 5 6 7docker run -it --name cann_sawyer2 --privileged --network=host --shm-size=128G -w=/work \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -e ASCEND_RT_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" \ ccr-2vdh3abv-pub.cnc.bj.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-aarch64-gcc84-py39 bash # ascendai/cann:8.0.rc2.beta1-910b-openeuler22.03-py3.8 bash
paddle + layoutparser + npu
| |
fastdeploy + paddleocr
| |
docker run mdq-table-extractor
| |
docker npu + paddlex
| |
| |
paddle 指定占用 npu 现存大小
FLAGS_fraction_of_gpu_memory_to_use=0.02
FLAGS_fraction_of_gpu_memory_to_use
- 程序启动后占用的保留显存大小,如果超过指定大小,从GPU/NPU 的总现存中获取
- 这个指定的程序占用的最低现存大小
- 在
NPU上使用这个变量的好处: 可以避免 paddlepaddle 占用所有的现存
在 NPU 上没有类似 GPU 类似的 paddle.device.cuda.empty_cache() 函数
文章作者
上次更新 2025-06-20 (811ee6f)