加速深度学习推理的工具包 Adlik

Apache-2.0
C/C++ Python 查看源码»
跨平台
2021-12-03
Alias_Travis

Adlik 是深度学习模型的端到端优化框架。Adlik 的目标是在云和嵌入式环境中加速深度学习推理过程。

Adlik示意图

使用 Adlik 框架,不同的深度学习模型可以以非常灵活和简单的方式以高性能部署到不同的平台。

使用 Adlik 在云/边缘/设备中部署模型

  1. 在云环境中,编译后的模型和 Adlik 推理引擎应构建为 docker 镜像,并部署为容器。

  2. 在边缘环境中,应将 Adlik 推理引擎部署为容器。编译后的模型应该转移到边缘环境,Adlik 推理引擎应该自动更新和加载模型。

  3. 在设备环境中,Adlik Inference Engine 和编译后的模型应编译为二进制文件。想要在设备上运行模型推理的用户应该将用户定义的 AI 函数和 Adlik 二进制文件链接到执行文件,并直接运行。

构建

本指南用于在 Ubuntu 系统上构建 Adlik 。

首先,安装 Git 和 Bazel

然后,克隆 Adlik 并将工作目录更改为源目录:

git clone https://github.com/ZTE/Adlik.git
cd Adlik

构建客户端

  1. 安装以下软件包:

    • python3-setuptools
    • python3-wheel
  2. 构建客户端:

    bazel build //adlik_serving/clients/python:build_pip_package -c opt
  3. 构建 pip 包:

    mkdir /tmp/pip-packages && bazel-bin/adlik_serving/clients/python/build_pip_package /tmp/pip-packages

构建服务

首先,安装以下软件包:

  • automake
  • libtbb2
  • libtool
  • make
  • python3-six

使用 OpenVINO 运行时构建服务

  1. 从 OpenVINO 安装intel-openvino-runtime-ubuntu<OS_VERSION>-<VERSION>包 。

  2. 假设 OpenVINO 的安装路径为/opt/intel/openvino_VERSION,运行如下命令:

    export INTEL_CVSDK_DIR=/opt/intel/openvino_VERSION
    export InferenceEngine_DIR=$INTEL_CVSDK_DIR/deployment_tools/inference_engine/share
    bazel build //adlik_serving \
        --config=openvino \
        -c opt
    

使用 TensorFlow CPU 运行时构建服务

  1. 运行以下命令:

    bazel build //adlik_serving \ 
        --config=tensorflow-cpu \ 
        -c opt

使用 TensorFlow GPU 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvinfer-plugin7=7.2.*+cuda11.0
    • libnvinfer-plugin-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 TF_NEED_TENSORRT=1 \ 
        bazel build //adlik_serving \ 
            --config=tensorflow-gpu \ 
            -c opt \ 
            --incompatible_use_specific_tool_files=false

使用 TensorFlow Lite CPU 运行时构建服务

  1. 运行以下命令:

    bazel build //adlik_serving \ 
        --config=tensorflow-lite-cpu \ 
        -c opt

使用 TensorRT 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • cuda-nvml-dev-11-0
    • cuda-nvrtc-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvonnxparsers7=7.2.*+cuda11.0
    • libnvonnxparsers-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 \ 
        bazel build //adlik_serving \ 
            --config=TensorRT \ 
            -c opt \ 
            --action_env=LIBRARY_PATH=/usr/local/cuda-11.0/lib64/stubs \ 
            --incompatible_use_specific_tool_files=false

使用 TF-TRT 运行时构建服务

假设使用 CUDA 版本 11.0 构建。

  1. 这里和 这里安装以下软件包 :

    • cuda-cupti-dev-11-0
    • libcublas-dev-11-0
    • libcudnn8=*+cuda11.0
    • libcudnn8-dev=*+cuda11.0
    • libcufft-dev-11-0
    • libcurand-dev-11-0
    • libcusolver-dev-11-0
    • libcusparse-dev-11-0
    • libnvinfer7=7.2.*+cuda11.0
    • libnvinfer-dev=7.2.*+cuda11.0
    • libnvinfer-plugin7=7.2.*+cuda11.0
    • libnvinfer-plugin-dev=7.2.*+cuda11.0
  2. 运行以下命令:

    env TF_CUDA_VERSION=11.0 TF_NEED_TENSORRT=1 \ 
        bazel build //adlik_serving \ 
            --config=tensorflow-tensorrt \ 
            -c opt \ 
            --incompatible_use_specific_tool_files=false

使用 Tvm 运行时构建服务

  1. 安装以下软件包:

    • build-essential
    • cmake
    • tvm
  2. 运行以下命令:

    bazel build //adlik_serving \ 
       --config=tvm \ 
       -c opt
加载中

Adlik Deer(V0.4.0)版本发布,模型推理加速就靠它啦

今天,Adlik Deer 版本 (V0.4.0) 发布啦! 本次的新版本中,可以看到 Adlik 最近一段时间的许多技术探索,对优化器来说有集成蒸馏、Zen-NAS 优化等;推理引擎也更易用、支持更多硬件和推理运...

2021/12/03 13:03

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

暂无博客

返回顶部
顶部