CANN環(huán)境準(zhǔn)備
CANN鏡像下載
優(yōu)先下載cann8.0鏡像:
- X86架構(gòu):
https://paddle-ascend.bj.bcebos.com/cvmodel/docker-image/npu_cann80rc1_x86_64_gcc84_py39.tar - ARM架構(gòu):
https://paddle-ascend.bj.bcebos.com/cvmodel/docker-image/paddle-npu_cann80RC1-ubuntu20-aarch64-gcc84-py39.tar
注:本文后續(xù)操作均在ARM環(huán)境中。
CANN鏡像加載
- 鏡像下載完成后,使用
docker load命令將下載好的鏡像導(dǎo)入到昇騰主機(jī)上:
docker load -i
paddle-npu_cann80RC1-ubuntu20-aarch64-gcc84-py39.tar
- 導(dǎo)入成功后,使用
docker images查看鏡像名稱與標(biāo)簽:
registry.baidubce.com/device/paddle-npu cann80RC1-ubuntu20-aarch64-gcc84-py39
CANN鏡像啟動
啟動docker鏡像的命令如下,用戶可根據(jù)實(shí)際環(huán)境修改:
sudo docker run -it --name paddle_test \
-v /home/:/home/ \
-v `pwd`:/workspace \
-w /workspace \
--privileged --network=host --shm-size=128G \
-v /ssd1/dataset:/workspace/dataset \
-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" \
registry.baidubce.com/device/paddle-npu:cann80RC1-ubuntu20-aarch64-gcc84-py39 /bin/bash
Paddle深度學(xué)習(xí)框架安裝
PaddlePaddle可選擇源碼編譯或者直接下載日構(gòu)建包安裝,因?yàn)闃O少涉及到更改源碼的情況,建議直接下載最新的日構(gòu)建包。
# 下載鏈接
https://www.paddlepaddle.org.cn/packages/nightly/cpu/paddlepaddle/
# 安裝命令
pip install xxxxx.whl
# 查看paddle的版本
python3 -c "import paddle; print(paddle.__version__)"
PaddleCustomDeviece安裝
適配層代碼同樣可以通過源碼編譯或者下載日構(gòu)建包安裝,但因?yàn)樾枰?jīng)常修改代碼,建議選擇源碼編譯安裝。
日構(gòu)建包安裝
# 下載鏈接
https://www.paddlepaddle.org.cn/packages/nightly/npu/paddle-custom-npu/
# 安裝命令
pip install xxxxx.whl
源碼編譯安裝
# 下載PaddleCustomDevice源碼
git clone https://github.com/PaddlePaddle/PaddleCustomDevice
# 進(jìn)入硬件后端(昇騰NPU)目錄
cd PaddleCustomDevice/backends/npu
# 執(zhí)行編譯腳本
bash tools/compile.sh
# 飛漿NPU插件在build/dist路徑下,使用pip安裝即可
pip install build/dist/paddle_custom_npu*.whl --force-reinstall
更新CANN版本(可選)
CANN包更新流程
當(dāng)前Docker鏡像中預(yù)裝了CANN8.0.RC1,如果需要安裝其它版本的CANN包,可參考以下步驟在自定義路徑下安裝:
下載新cann包
下載目標(biāo)版本的cann包,包括toolkit和kernels。
下載鏈接:
https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.0.alpha003
刪除info文件
刪除ascend_cann_install.info文件,否則無法指定安裝目錄。
rm -f /etc/Ascend/ascend_cann_install.info
添加安裝包執(zhí)行權(quán)限
給toolkit和kernel軟件包添加執(zhí)行權(quán)限,若有權(quán)限則忽略。
chmod +x Ascend-cann-toolkit_xxx_linux-aarch64.run
chmod +x Ascend-cann-kernels_xxx_linux-aarch64.run
設(shè)置安裝目錄權(quán)限
為即將安裝CANN包的目錄及其上層目錄賦755權(quán)限,否則安裝失敗。
chmod 755 /home/paddle_test/Ascend/
安裝新CANN包
注意:
"--install-path"參數(shù)為CANN包安裝路徑,必須填絕對路徑;
可使用默認(rèn)路徑:"/usr/local/Ascend/",也可以自定義安裝路徑,建議使用自定義路徑。
# 先安裝toolkit
./Ascend-cann-toolkit_8.0.RC3_linux-aarch64.run --full --install-path=/home/paddle_test/Ascend/
# 再安裝kernel
./Ascend-cann-kernels-910b_8.0.RC3_linux-aarch64.run --install --install-path=/home/paddle_test/Ascend/
設(shè)置環(huán)境變量
默認(rèn)安裝路徑場景
如果更新的CANN包安裝在默認(rèn)路徑,需要重新導(dǎo)入如下環(huán)境變量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh
自定義安裝路徑場景
如果更新的CANN包未安裝在默認(rèn)路徑(本文中自定義安裝路徑為/home/paddle_test/Ascend),則需要導(dǎo)入如下環(huán)境變量:
source 自定義安裝路徑/ascend-toolkit/set_env.sh
# 由于更新CANN包(安裝在自定義目錄),安裝路徑發(fā)生改變,PaddlePaddle在編譯時需要用ASCEND_CUSTOM_PATH這個環(huán)境變量來識別CANN包的安裝路徑
export ASCEND_CUSTOM_PATH=自定義安裝路徑
注意:
# 如果重新source不同版本CANN包請重新執(zhí)行上一節(jié)中編譯操作:
cd PaddleCustomDevice/backends/npu
bash tools/compile.sh
# 編譯成功后重新安裝:
pip install build/dist/paddle_custom_npu*.whl --force-reinstall
常見問題
自定義安裝路徑失敗
-
報錯信息:
01_自定義安裝路徑失敗.png 解決方法:參考CANN包更新流程刪除ascend_cann_install.info文件。
安裝目錄權(quán)限不足
-
報錯信息:
02_安裝目錄權(quán)限不足.png
上圖中提供了日志文件路徑:/var/log/ascend_seclog/ascend_toolkit_install.log,可查看詳細(xì)日志信息。
-
查看日志:
03_查看詳細(xì)日志信息.png 解決方法:參考CANN包更新流程為安裝目錄設(shè)置755權(quán)限。
更新CANN后PaddlePaddle編譯失敗一
-
報錯信息:
04_更新CANN后PaddlePaddle編譯失敗一.png 解決方法:export ASCEND_CUSTOM_PATH時"自定義安裝路徑"后不能帶"/",重新設(shè)置為:
export ASCEND_CUSTOM_PATH=/home/paddle_test/Ascend
更新CANN后PaddlePaddle編譯失敗二
-
報錯信息:
05_更新CANN后PaddlePaddle編譯失敗二.png 解決方法:
把CANN包默認(rèn)安裝路徑下的atb、driver鏈接到新CANN包安裝的自定義路徑。
ln -s /usr/local/Ascend/atb /真實(shí)路徑/
ln -s /usr/local/Ascend/driver /真實(shí)路徑/
基礎(chǔ)功能檢查
可用硬件后端檢查
- 輸入檢查指令:
python -c "import paddle; print(paddle.device.get_all_custom_device_type())"
- 預(yù)期得到如下輸出結(jié)果:
['npu']
當(dāng)前安裝版本檢查
- 輸入檢查指令:
python -c "import paddle_custom_device;paddle_custom_device.npu.version()"
- 預(yù)期得到如下輸出結(jié)果:
version: 0.0.0
commit: 9bfc65a7f11072699d0c5af160cf7597720531ea
cann: 8.0.RC1
飛槳框架健康檢查
- 輸入檢查指令:
python -c "import paddle; paddle.utils.run_check()"
- 預(yù)期得到如下輸出結(jié)果:
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.




