飛槳x昇騰生態(tài)適配方案:01_基礎(chǔ)環(huán)境準(zhǔn)備

CANN環(huán)境準(zhǔn)備

CANN鏡像下載

優(yōu)先下載cann8.0鏡像:

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.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容