Adlik加速深度學(xué)習(xí)推理的工具包
Adlik 是深度學(xué)習(xí)模型的端到端優(yōu)化框架。Adlik 的目標(biāo)是在云和嵌入式環(huán)境中加速深度學(xué)習(xí)推理過程。
使用 Adlik 框架,不同的深度學(xué)習(xí)模型可以以非常靈活和簡單的方式以高性能部署到不同的平臺。
-
在云環(huán)境中,編譯后的模型和 Adlik 推理引擎應(yīng)構(gòu)建為 docker 鏡像,并部署為容器。
-
在邊緣環(huán)境中,應(yīng)將 Adlik 推理引擎部署為容器。編譯后的模型應(yīng)該轉(zhuǎn)移到邊緣環(huán)境,Adlik 推理引擎應(yīng)該自動更新和加載模型。
-
在設(shè)備環(huán)境中,Adlik Inference Engine 和編譯后的模型應(yīng)編譯為二進(jìn)制文件。想要在設(shè)備上運(yùn)行模型推理的用戶應(yīng)該將用戶定義的 AI 函數(shù)和 Adlik 二進(jìn)制文件鏈接到執(zhí)行文件,并直接運(yùn)行。
構(gòu)建
本指南用于在 Ubuntu 系統(tǒng)上構(gòu)建 Adlik 。
然后,克隆 Adlik 并將工作目錄更改為源目錄:
git clone https://github.com/ZTE/Adlik.git
cd Adlik
構(gòu)建客戶端
-
安裝以下軟件包:
python3-setuptoolspython3-wheel
-
構(gòu)建客戶端:
bazel build //adlik_serving/clients/python:build_pip_package -c opt -
構(gòu)建 pip 包:
mkdir /tmp/pip-packages && bazel-bin/adlik_serving/clients/python/build_pip_package /tmp/pip-packages
構(gòu)建服務(wù)
首先,安裝以下軟件包:
automakelibtbb2libtoolmakepython3-six
使用 OpenVINO 運(yùn)行時(shí)構(gòu)建服務(wù)
-
從 OpenVINO 安裝
intel-openvino-runtime-ubuntu<OS_VERSION>-<VERSION>包 。 -
假設(shè) OpenVINO 的安裝路徑為
/opt/intel/openvino_VERSION,運(yùn)行如下命令: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 運(yùn)行時(shí)構(gòu)建服務(wù)
-
運(yùn)行以下命令:
bazel build //adlik_serving \ --config=tensorflow-cpu \ -c opt
使用 TensorFlow GPU 運(yùn)行時(shí)構(gòu)建服務(wù)
假設(shè)使用 CUDA 版本 11.0 構(gòu)建。
-
cuda-cupti-dev-11-0libcublas-dev-11-0libcudnn8=*+cuda11.0libcudnn8-dev=*+cuda11.0libcufft-dev-11-0libcurand-dev-11-0libcusolver-dev-11-0libcusparse-dev-11-0libnvinfer7=7.2.*+cuda11.0libnvinfer-dev=7.2.*+cuda11.0libnvinfer-plugin7=7.2.*+cuda11.0libnvinfer-plugin-dev=7.2.*+cuda11.0
-
運(yùn)行以下命令:
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 運(yùn)行時(shí)構(gòu)建服務(wù)
-
運(yùn)行以下命令:
bazel build //adlik_serving \ --config=tensorflow-lite-cpu \ -c opt
使用 TensorRT 運(yùn)行時(shí)構(gòu)建服務(wù)
假設(shè)使用 CUDA 版本 11.0 構(gòu)建。
-
cuda-cupti-dev-11-0cuda-nvml-dev-11-0cuda-nvrtc-11-0libcublas-dev-11-0libcudnn8=*+cuda11.0libcudnn8-dev=*+cuda11.0libcufft-dev-11-0libcurand-dev-11-0libcusolver-dev-11-0libcusparse-dev-11-0libnvinfer7=7.2.*+cuda11.0libnvinfer-dev=7.2.*+cuda11.0libnvonnxparsers7=7.2.*+cuda11.0libnvonnxparsers-dev=7.2.*+cuda11.0
-
運(yùn)行以下命令:
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 運(yùn)行時(shí)構(gòu)建服務(wù)
假設(shè)使用 CUDA 版本 11.0 構(gòu)建。
-
cuda-cupti-dev-11-0libcublas-dev-11-0libcudnn8=*+cuda11.0libcudnn8-dev=*+cuda11.0libcufft-dev-11-0libcurand-dev-11-0libcusolver-dev-11-0libcusparse-dev-11-0libnvinfer7=7.2.*+cuda11.0libnvinfer-dev=7.2.*+cuda11.0libnvinfer-plugin7=7.2.*+cuda11.0libnvinfer-plugin-dev=7.2.*+cuda11.0
-
運(yùn)行以下命令:
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 運(yùn)行時(shí)構(gòu)建服務(wù)
-
安裝以下軟件包:
build-essentialcmaketvm
-
運(yùn)行以下命令:
bazel build //adlik_serving \ --config=tvm \ -c opt
