全部產品
Search
文件中心

Platform For AI:安裝Blade

更新時間:Sep 27, 2024

Blade的安裝包包括了Wheel包和SDK。在CPU和CUDA環境,您需要安裝Wheel包進行模型最佳化,安裝SDK部署模型推理。而在端側裝置中,您只需要安裝Wheel包進行模型最佳化即可,Blade完成最佳化後直接輸出MNN模型,您可以使用MNN部署模型推理。本文詳細介紹如何在不同類型的裝置中分別安裝Blade。

使用限制

Blade僅支援以下作業系統、Python版本、裝置類型及架構版本:

  • 作業系統:Linux。

  • Python版本:Python 3.6、Python 3.7、Python 3.8。

  • 裝置類型:GPU支援CUDA 10.0~11.3,也支援CPU和端側裝置(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三種格式。

注意事項

安裝Blade時,務必注意以下事項:

  • Blade不會自動安裝TensorFlow或PyTorch。因此,安裝Blade之前,必須確保環境中已經安裝了支援的架構版本。

  • Blade支援不同裝置、不同CUDA版本的安裝包,請根據您的裝置和CUDA版本安裝對應的Blade的Wheel包。

  • PyTorch 官方1.6.0版本不提供CUDA 10.0版本,您可以使用PAI團隊提供的Wheel包。其餘PyTorch版本均可直接使用官方安裝包。

操作流程

在不同類型的裝置中安裝Blade時,存在差異性。您可以參見如下步驟進行安裝:

  • 在CUDA環境中安裝時,您需要安裝TensorFlow/PyTorch、Blade的Wheel包及SDK,以及TensorRT。具體步驟如下:

    1. 安裝架構。

      如果您的模型使用的TensorFlow架構,可自行安裝社區TensorFlow,如果需要TensorRT的支援,也可以安裝PAI團隊先行編譯的Tensorflow,詳情請參見安裝TensorFlow

      如果您的模型使用的PyTorch架構,可自行安裝社區PyTorch,如果需要支援CUDA 10.0的PyTorch 1.6.0版本,也可以使用PAI團隊先行編譯的PyTorch,詳情請參見安裝PyTorch

    2. 安裝Blade的Wheel包,詳情請參見安裝Blade的Wheel包

    3. 下載並安裝Blade的SDK,詳情請參見安裝Blade的SDK

    4. 擷取鑒權Token,詳情請參見擷取Token

  • 安裝Blade用於最佳化端側部署時,您需要安裝TensorFlow、MNN及Wheel包,詳情請參見安裝Blade用於最佳化端側部署

安裝TensorFlow

目前Blade支援TensorFlow 1.15和2.4,請確保Python環境和依賴滿足版本限制,詳情請參見使用限制

您可以安裝TensorFlow社區提供的包,安裝命令如下:

# 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官方網站安裝對應裝置或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包

為了最佳化不同架構不同版本的模型,並且適配不同的裝置和CUDA版本,您需要根據環境正確安裝對應的Blade的Wheel包。最新版本的安裝命令如下,歷史版本請參考附錄:歷史版本下載與安裝

  • 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系統的GCC編譯器。為方便使用者使用,Blade提供兩種GCC ABI(GCC ABI官方文檔)的SDK包:

  • 如果您的GCC版本低於5.1或設定了宏_GLIBCXX_USE_CXX11_ABI=0,請使用Pre-CXX11 ABI的SDK。

  • 如果GCC版本大於等於5.1,且未配置宏_GLIBCXX_USE_CXX11_ABI=0,請使用CXX11 ABI的SDK。

同時,我們也提供了適用於不同Linux發行版的包格式:

  • RPM包:適用於CentOS和Red Hat,使用rpm命令安裝。

  • DEB包:適用於Ubuntu和Debian,使用dpkg命令安裝。

  • TGZ包:適用於各種Linux發行版,解壓使用即可。

以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包的預設的安裝路徑為/usr/local,安裝或解壓後的SDK目錄結構如下所示。

/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

部署模型時會使用/usr/local/lib子目錄下的動態連結程式庫。

最新版C++ SDK下載地址如下,歷史版本請參考附錄:歷史版本下載與安裝

  • CXX11 ABI

    • CPU

      Tensorflow 1.15.0與PyTorch 1.6.0:DEBRPMTGZ

  • Pre-CXX11 ABI

    • CPU

      • Tensorflow 1.15.0與PyTorch 1.6.0: DEBRPMTGZ

      • Tensorflow 2.4.0與PyTorch 1.7.1: DEBRPMTGZ

      • PyTorch 1.8.1: DEBRPMTGZ

      • PyTorch 1.9.0: DEBRPMTGZ

      • Tensorflow 2.7.0與PyTorch 1.10.0: DEBRPMTGZ

    • CUDA 11.0

      Tensorflow 2.4.0與PyTorch 1.7.1:DEBRPMTGZ

    • CUDA 11.1

    • CUDA 11.2

      Tensorflow 2.7.0:DEBRPMTGZ

    • CUDA 11.3

擷取Token

Blade的SDK運行時需要鑒權Token,且能夠在阿里雲環境中使用。請使用DingTalk搜尋21946131群號,加入Blade客戶群,從而擷取試用Token。

安裝Blade用於最佳化端側部署

面向端側部署最佳化時,Blade僅支援從TensorFlow模型轉換為MNN,並進行最佳化。因此,您需要預先安裝TensorFlow和MNN,命令如下。

pip3 install tensorflow==1.15 MNN==1.1.0

最佳化端側模型時,您可以使用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