安裝Blade
Blade的安裝包包括了Wheel包和SDK。在CPU和CUDA環(huán)境,您需要安裝Wheel包進(jìn)行模型優(yōu)化,安裝SDK部署模型推理。而在端側(cè)設(shè)備中,您只需要安裝Wheel包進(jìn)行模型優(yōu)化即可,Blade完成優(yōu)化后直接輸出MNN模型,您可以使用MNN部署模型推理。本文詳細(xì)介紹如何在不同類型的設(shè)備中分別安裝Blade。
使用限制
Blade僅支持以下操作系統(tǒng)、Python版本、設(shè)備類型及框架版本:
操作系統(tǒng):Linux。
Python版本:Python 3.6、Python 3.7、Python 3.8。
設(shè)備類型:GPU支持CUDA 10.0~11.3,也支持CPU和端側(cè)設(shè)備(MNN)。
框架版本:TensorFlow 1.15、2.4、2.7,PyTorch 1.6.0及以上版本,TensorRT 8.X.X系列版本。
C++ SDK:支持CXX11和Pre-CXX11兩種ABI,支持RPM、DEB及TGZ三種格式。
注意事項(xiàng)
安裝Blade時(shí),務(wù)必注意以下事項(xiàng):
Blade不會(huì)自動(dòng)安裝TensorFlow或PyTorch。因此,安裝Blade之前,必須確保環(huán)境中已經(jīng)安裝了支持的框架版本。
Blade支持不同設(shè)備、不同CUDA版本的安裝包,請(qǐng)根據(jù)您的設(shè)備和CUDA版本安裝對(duì)應(yīng)的Blade的Wheel包。
PyTorch 官方1.6.0版本不提供CUDA 10.0版本,您可以使用PAI團(tuán)隊(duì)提供的Wheel包。其余PyTorch版本均可直接使用官方安裝包。
操作流程
在不同類型的設(shè)備中安裝Blade時(shí),存在差異性。您可以參見如下步驟進(jìn)行安裝:
在CUDA環(huán)境中安裝時(shí),您需要安裝TensorFlow/PyTorch、Blade的Wheel包及SDK,以及TensorRT。具體步驟如下:
安裝框架。
如果您的模型使用的TensorFlow框架,可自行安裝社區(qū)TensorFlow,如果需要TensorRT的支持,也可以安裝PAI團(tuán)隊(duì)預(yù)編譯的Tensorflow,詳情請(qǐng)參見安裝TensorFlow。
如果您的模型使用的PyTorch框架,可自行安裝社區(qū)PyTorch,如果需要支持CUDA 10.0的PyTorch 1.6.0版本,也可以使用PAI團(tuán)隊(duì)預(yù)編譯的PyTorch,詳情請(qǐng)參見安裝PyTorch。
安裝Blade的Wheel包,詳情請(qǐng)參見安裝Blade的Wheel包。
下載并安裝Blade的SDK,詳情請(qǐng)參見安裝Blade的SDK。
獲取鑒權(quán)Token,詳情請(qǐng)參見獲取Token。
安裝Blade用于優(yōu)化端側(cè)部署時(shí),您需要安裝TensorFlow、MNN及Wheel包,詳情請(qǐng)參見安裝Blade用于優(yōu)化端側(cè)部署。
安裝TensorFlow
目前Blade支持TensorFlow 1.15和2.4,請(qǐng)確保Python環(huán)境和依賴滿足版本限制,詳情請(qǐng)參見使用限制。
您可以安裝TensorFlow社區(qū)提供的包,安裝命令如下:
# GPU 版本的 Tensorflow
pip3 install tensorflow-gpu==1.15.0
# 或者:
pip3 install tensorflow-gpu==2.4.0
# CPU 版本的 Tensorflow
pip3 install tensorflow==1.15.0
# 或者
pip3 install tensorflow==2.4.0
安裝PyTorch
目前Blade支持PyTorch 1.6.0及以上的版本,您可以參考PyTorch官方網(wǎng)站安裝對(duì)應(yīng)設(shè)備或CUDA版本的PyTorch。如果您需要使用CUDA 11.0的PyTorch 1.7.1 版本嘗試以下命令安裝:
pip3 install torch==1.7.1+cu110 torchvision==0.8.2+cu110 \
-f https://download.pytorch.org/whl/torch/
安裝Blade的Wheel包
為了優(yōu)化不同框架不同版本的模型,并且適配不同的設(shè)備和CUDA版本,您需要根據(jù)環(huán)境正確安裝對(duì)應(yīng)的Blade的Wheel包。最新版本的安裝命令如下,歷史版本請(qǐng)參考附錄:歷史版本下載與安裝:
CPU
TensorFlow 1.15.0與PyTorch 1.6.0。
# pai_blade_cpu pip3 install pai_blade_cpu==3.27.0+1.15.0.1.6.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # tensorflow_blade_cpu pip3 install tensorflow_blade_cpu==3.27.0+1.15.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # torch_blade_cpu pip3 install torch_blade_cpu==3.27.0+1.6.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
TensorFlow 2.4.0與PyTorch 1.7.1。
# pai_blade_cpu pip3 install pai_blade_cpu==3.27.0+2.4.0.1.7.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # tensorflow_blade_cpu pip3 install tensorflow_blade_cpu==3.27.0+2.4.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # torch_blade_cpu pip3 install torch_blade_cpu==3.27.0+1.7.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
PyTorch 1.8.1。
# pai_blade_cpu pip3 install pai_blade_cpu==3.27.0+1.8.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # torch_blade_cpu pip3 install torch_blade_cpu==3.27.0+1.8.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
PyTorch 1.9.0。
# pai_blade_cpu pip3 install pai_blade_cpu==3.27.0+1.9.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # torch_blade_cpu pip3 install torch_blade_cpu==3.27.0+1.9.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
TensorFlow 2.7.0與PyTorch 1.10.0。
# pai_blade_cpu pip3 install pai_blade_cpu==3.27.0+2.7.0.1.10.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # tensorflow_blade_cpu pip3 install tensorflow_blade_cpu==3.27.0+2.7.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html # torch_blade_cpu pip3 install torch_blade_cpu==3.27.0+1.10.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
CUDA 11.0
TensorFlow 2.4.0與PyTorch 1.7.1。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu110.2.4.0.1.7.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # tensorflow_blade_gpu pip3 install tensorflow_blade_gpu==3.27.0+cu110.2.4.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.7.1.cu110 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
CUDA 11.1
PyTorch 1.8.1。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu111.1.8.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.8.1.cu111 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
PyTorch 1.9.0。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu111.1.9.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.9.0.cu111 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
PyTorch 1.10.0。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu111.1.10.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.10.0.cu111 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
CUDA 11.2
TensorFlow 2.7.0。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu112.2.7.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # tensorflow_blade_gpu pip3 install tensorflow_blade_gpu==3.27.0+cu112.2.7.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
CUDA 11.3
PyTorch 1.11.0。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu113.1.11.0 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.11.0.cu113 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
PyTorch 1.12.1。
# pai_blade_gpu pip3 install pai_blade_gpu==3.27.0+cu113.1.12.1 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html # torch_blade pip3 install torch_blade==3.27.0+1.12.1.cu113 -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo_ext.html
安裝Blade的SDK
Blade的SDK僅支持Linux系統(tǒng)的GCC編譯器。為方便用戶使用,Blade提供兩種GCC ABI(GCC ABI官方文檔)的SDK包:
如果您的GCC版本低于5.1或設(shè)置了宏
_GLIBCXX_USE_CXX11_ABI=0
,請(qǐng)使用Pre-CXX11 ABI的SDK。如果GCC版本大于等于5.1,且未配置宏
_GLIBCXX_USE_CXX11_ABI=0
,請(qǐng)使用CXX11 ABI的SDK。
同時(shí),我們也提供了適用于不同Linux發(fā)行版的包格式:
RPM包:適用于CentOS和Red Hat,使用
rpm
命令安裝。DEB包:適用于Ubuntu和Debian,使用
dpkg
命令安裝。TGZ包:適用于各種Linux發(fā)行版,解壓使用即可。
以3.23.0 Pre-CXX11 ABI CUDA 11.0 的SDK安裝為例,命令如下:
安裝RPM包
rpm -ivh https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/3.23.0/py3.6.8_cu110_tf2.4.0_torch1.7.1_abiprecxx11/blade_cpp_sdk_gpu-3.23.0-Linux.rpm
安裝DEB包
wget https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/3.23.0/py3.6.8_cu110_tf2.4.0_torch1.7.1_abiprecxx11/blade_cpp_sdk_gpu-3.23.0-Linux.deb dpkg -i blade_cpp_sdk_gpu-3.23.0-Linux.deb
RPM包和DEB包的默認(rèn)的安裝路徑為/usr/local,安裝或解壓后的SDK目錄結(jié)構(gòu)如下所示。
/usr/local/
├── bin
│ ├── disc_compiler_main
│ └── tao_compiler_main
└── lib
├── libral_base_context.so
├── libtao_ops.so
├── libtf_blade.so
├── libtorch_blade.so
└── mlir_disc_builder.so
部署模型時(shí)會(huì)使用/usr/local/lib子目錄下的動(dòng)態(tài)鏈接庫。
最新版C++ SDK下載地址如下,歷史版本請(qǐng)參考附錄:歷史版本下載與安裝:
CXX11 ABI
Pre-CXX11 ABI
CPU
CUDA 11.0
CUDA 11.1
CUDA 11.2
CUDA 11.3
獲取Token
Blade的SDK運(yùn)行時(shí)需要鑒權(quán)Token,且能夠在阿里云環(huán)境中使用。請(qǐng)使用釘釘搜索21946131群號(hào),加入Blade客戶群,從而獲取試用Token。
安裝Blade用于優(yōu)化端側(cè)部署
面向端側(cè)部署優(yōu)化時(shí),Blade僅支持從TensorFlow模型轉(zhuǎn)換為MNN,并進(jìn)行優(yōu)化。因此,您需要預(yù)先安裝TensorFlow和MNN,命令如下。
pip3 install tensorflow==1.15 MNN==1.1.0
優(yōu)化端側(cè)模型時(shí),您可以使用GPU或CPU版本的Blade。安裝Blade的Wheel包的具體命令如下:
如果您已安裝GPU,則使用如下命令。
pip3 install pai-blade-gpu \ -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html
如果沒有安裝GPU,則使用如下命令。
pip3 install pai-blade-cpu \ -f https://pai-blade.oss-cn-zhangjiakou.aliyuncs.com/release/repo.html