前言
- 本文重點(diǎn)介紹Paddle與NPU的適配工作,PaddlePaddle是一個(gè)深度學(xué)習(xí)框架,類似于pytorch;PaddleCustomDeviece是適配層代碼,類似于pytorch adapter;模型側(cè)代碼根據(jù)領(lǐng)域分為PaddleNLP、PaddleMix、PaddleClas、PaddleOCR等。
- 如果需要運(yùn)行在線的訓(xùn)練或者推理,可以直接參考模型倉(cāng)的README,并更改deviece為NPU即可。當(dāng)前已經(jīng)支持了大部分主流模型且在持續(xù)增加中,具體的模型列表可參照飛槳-昇騰模型支持列表,大部分模型的性能基本持平V100,少部分專項(xiàng)調(diào)優(yōu)模型可以達(dá)到0.8*A800(主要是大模型,多模態(tài))。
- 如果在線推理性能較差且只需要推理的場(chǎng)景,統(tǒng)一建議使用離線場(chǎng)景,Paddle2ONNX工具轉(zhuǎn)化為ONNX,并使用atc轉(zhuǎn)換為OM,具體可參照Paddle轉(zhuǎn)OM以及離線推理章節(jié)內(nèi)容。
硬件適配說明
- 當(dāng)前的適配工作主要針對(duì)A2芯片,以下所有內(nèi)容如果沒有特殊說明都只針對(duì)A2芯片;
- A1芯片在大部分情況下沒有問題,且使用方式與A2相同,如遇到類似項(xiàng)目可自行使用相同方式進(jìn)行驗(yàn)證,遇到問題單點(diǎn)支撐;
- 310系列芯片沒有進(jìn)行過適配,建議直接走離線推理路徑。
常用Paddle模型倉(cāng)
- NLP代碼倉(cāng)PaddleNLP:https://github.com/PaddlePaddle/PaddleNLP
- 多模態(tài)代碼倉(cāng)PaddleMIX:https://github.com/PaddlePaddle/PaddleMIX
- 小模型總體倉(cāng)庫(kù)PaddleX:https://github.com/PaddlePaddle/PaddleX
- 其余倉(cāng)庫(kù)可查看Paddle主頁面:https://github.com/PaddlePaddle