安装Blade

Blade的安装包包括了Wheel包和SDK。在CPUCUDA环境,您需要安装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:支持CXX11Pre-CXX11两种ABI,支持RPM、DEBTGZ三种格式。

注意事项

安装Blade时,务必注意以下事项:

  • Blade不会自动安装TensorFlowPyTorch。因此,安装Blade之前,必须确保环境中已经安装了支持的框架版本。

  • Blade支持不同设备、不同CUDA版本的安装包,请根据您的设备和CUDA版本安装对应的BladeWheel包。

  • PyTorch 官方1.6.0版本不提供CUDA 10.0版本,您可以使用PAI团队提供的Wheel包。其余PyTorch版本均可直接使用官方安装包。

操作流程

在不同类型的设备中安装Blade时,存在差异性。您可以参见如下步骤进行安装:

  • CUDA环境中安装时,您需要安装TensorFlow/PyTorch、BladeWheel包及SDK,以及TensorRT。具体步骤如下:

    1. 安装框架。

      如果您的模型使用的TensorFlow框架,可自行安装社区TensorFlow,如果需要TensorRT的支持,也可以安装PAI团队预编译的Tensorflow,详情请参见安装TensorFlow

      如果您的模型使用的PyTorch框架,可自行安装社区PyTorch,如果需要支持CUDA 10.0PyTorch 1.6.0版本,也可以使用PAI团队预编译的PyTorch,详情请参见安装PyTorch

    2. 安装BladeWheel包,详情请参见安装BladeWheel

    3. 下载并安装BladeSDK,详情请参见安装BladeSDK

    4. 获取鉴权Token,详情请参见获取Token

  • 安装Blade用于优化端侧部署时,您需要安装TensorFlow、MNNWheel包,详情请参见安装Blade用于优化端侧部署

安装TensorFlow

目前Blade支持TensorFlow 1.152.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.0PyTorch 1.7.1 版本尝试以下命令安装:

pip3 install torch==1.7.1+cu110 torchvision==0.8.2+cu110 \
    -f https://download.pytorch.org/whl/torch/

安装BladeWheel

为了优化不同框架不同版本的模型,并且适配不同的设备和CUDA版本,您需要根据环境正确安装对应的BladeWheel包。最新版本的安装命令如下,历史版本请参考附录:历史版本下载与安装

  • CPU

    TensorFlow 1.15.0PyTorch 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.0PyTorch 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.0PyTorch 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.0PyTorch 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

安装BladeSDK

BladeSDK仅支持Linux系统的GCC编译器。为方便用户使用,Blade提供两种GCC ABI(GCC ABI官方文档)的SDK包:

  • 如果您的GCC版本低于5.1或设置了宏_GLIBCXX_USE_CXX11_ABI=0,请使用Pre-CXX11 ABISDK。

  • 如果GCC版本大于等于5.1,且未配置宏_GLIBCXX_USE_CXX11_ABI=0,请使用CXX11 ABISDK。

同时,我们也提供了适用于不同Linux发行版的包格式:

  • RPM包:适用于CentOSRed Hat,使用rpm命令安装。

  • DEB包:适用于UbuntuDebian,使用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.0PyTorch 1.6.0:DEBRPMTGZ

  • Pre-CXX11 ABI

    • CPU

      • Tensorflow 1.15.0PyTorch 1.6.0: DEBRPMTGZ

      • Tensorflow 2.4.0PyTorch 1.7.1: DEBRPMTGZ

      • PyTorch 1.8.1: DEBRPMTGZ

      • PyTorch 1.9.0: DEBRPMTGZ

      • Tensorflow 2.7.0PyTorch 1.10.0: DEBRPMTGZ

    • CUDA 11.0

      Tensorflow 2.4.0PyTorch 1.7.1:DEBRPMTGZ

    • CUDA 11.1

    • CUDA 11.2

      Tensorflow 2.7.0:DEBRPMTGZ

    • CUDA 11.3

获取Token

BladeSDK运行时需要鉴权Token,且能够在阿里云环境中使用。请使用钉钉搜索21946131群号,加入Blade客户群,从而获取试用Token。

安装Blade用于优化端侧部署

面向端侧部署优化时,Blade仅支持从TensorFlow模型转换为MNN,并进行优化。因此,您需要预先安装TensorFlowMNN,命令如下。

pip3 install tensorflow==1.15 MNN==1.1.0

优化端侧模型时,您可以使用GPUCPU版本的Blade。安装BladeWheel包的具体命令如下:

  • 如果您已安装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