Skip to content

Latest commit

 

History

History
179 lines (169 loc) · 7.16 KB

cmake_build_CN.md

File metadata and controls

179 lines (169 loc) · 7.16 KB

CMake-Build

环境依赖

  • NVIDIA CUDA >= 10.0, CuDNN >= 7 (推荐 CUDA 10.2 以上)
  • TensorRT >= 7.0.0.11 (推荐 TensorRT-7.2.1.6)
  • CMake >= 3.12.2
  • GCC >= 5.4.0, ld >= 2.26.1
  • PyTorch >= 1.7.0
  • TensorFlow >= 1.15.0 (若使用 Linux 操作系统,需额外下载 Tensorflow 1.15.0,并将解压出来的 .so 文件拷贝至 Forward/source/third_party/tensorflow/lib 目录下)
  • Keras HDF5 (从 Forward/source/third_party/hdf5 源码构建)

CMake 构建流程

使用 CMake 进行构建生成 Makefiles 或者 Visual Studio 项目。根据使用目的,Forward 可构建成适用于不同框架的库,如 Fwd-Torch、Fwd-Python-Torch、Fwd-Tf、Fwd-Python-Tf、Fwd-Keras、Fwd-Python-Keras、Fwd-Onnx 和 Fwd-Python-Onnx。

以 Linux 平台构建 Fwd-Tf 为例,

步骤一:克隆项目

1 git clone https://github.com/Tencent/Forward.git

步骤二:下载 Tensorflow 1.15.0(仅在 Linux 平台使用 Tensorflow 框架推理时需要)

1 cd Forward/source/third_party/tensorflow/
2 wget https://github.com/neargye-forks/tensorflow/releases/download/v1.15.0/libtensorflow-gpu-linux-x86_64-1.15.0.tar.gz
3 tar -xvf libtensorflow-gpu-linux-x86_64-1.15.0.tar.gz

步骤三:创建 build 文件夹

1 cd ~/Forward/
2 rm -rf build
3 mkdir -p build
4 cd build/

步骤四:使用 cmake 生成构建关系,需指定 TensorRT_ROOT 安装路径

1 cmake ..  -DTensorRT_ROOT=<path_to_TensorRT> -DENABLE_TENSORFLOW=ON -DENABLE_UNIT_TESTS=ON

步骤五:使用 make 构建项目

1 make -j

步骤六:运行 unit_test 验证项目是否构建成功

cd bin/
./unit_test --gtest_filter=TestTfNodes.*

# 出现已下提示表示项目构建成
# [       OK ] TestTfNodes.ZeroPadding (347 ms)
# [----------] 22 tests from TestTfNodes (17555 ms total)

# [----------] Global test environment tear-down
# [==========] 22 tests from 1 test case ran. (17555 ms total)
# [  PASSED  ] 22 tests.

CMake 构建参数

配置 参数名 可选值 默认值 功能 备注
通用 TensorRT_ROOT path_to_TensorRT N/A 指定 TensorRT 安装路径 必选
ENABLE_PROFILING ONOFF OFF 是否开启性能 Profiling 功能 可选
BUILD_PYTHON_LIB ONOFF OFF 是否构建 Forward 的 Python 库;
若为 ON,需另配置 PYTHON_EXECUTABLE 参数
可选
PYTHON_EXECUTABLE N/A N/A 指定 Python 可执行文件路径,需与实际使用时的 Python 相同,避免版本不一致产生的冲突 配合 BUILD_PYTHON_LIB 参数
ENABLE_DYNAMIC_BATCH ONOFF OFF 是否开启动态 Batch 输入功能 可选
ENABLE_RNN ONOFF OFF 是否开启 RNN 模型推理 可选
ENABLE_INFER_TESTS ONOFF OFF 是否开启推理测试;
若为 ON,需另配置 OpenCV
可选
ENABLE_UNIT_TEST ONOFF OFF 是否开启单元测试 Fwd_Keras 的单元测试依赖于 Fwd_Tf;
Fwd_Onnx 的单元测试依赖于 Fwd_Torch
PyTorch ENABLE_TORCH ONOFF OFF 是否构建用于解析 PyTorch 模型的 Fwd_Torch 项目;
若为 ON,需另配置 CMAKE_PREFIX_PATHPYTHON_EXECUABLE 参数
可选
ENABLE_TORCH_PLUGIN ONOFF OFF 是否开启 Torch 子模块插件,该插件能支持子模块中更多的 Torch-Op,但不保证性能的提升;
若为 ONlibtrt_engine.so 需依赖 Torch-Librariescode>
可选
CMAKE_PREFIX_PATH N/A N/A 指定 LibTorch 库路径;
BUILD_PYTHON_LIB=OFF 时,需另配置 LibTorch 库进行编译;
BUILD_PYTHON_LIB=ON 时,则需取消该配置,Forward 将利用 PYTHON_EXECUTABLE 中安装的 torch_python 库进行编译
配合 ENABLE_TORCHENABLE_KERAS 参数
TensorFlow ENABLE_TENSORFLOW ONOFF OFF 是否构建用于解析 TensorFlow 模型的 Fwd_Tf 项目;
若为 ON,需提前根据环境依赖中的要求在 source/third_party/tensorflow/bin 目录下安装 Tensorflow 1.15.0
可选
Keras ENABLE_KERAS ONOFF OFF 是否构建用于解析 Keras 模型的 Fwd_Keras 项目;
若为 ON,需同时配置 CMAKE_PREFIX_PATH
可选
CMAKE_PREFIX_PATH N/A N/A 指定 HDF5 库路径;
若同时配置 Fwd_Torch 的 CMAKE_PREFIX_PATH,可用分号隔开,如 /path/to/libtorch;/path/to/hdf5
配合 ENABLE_TORCHENABLE_KERAS 参数
ONNX ENABLE_ONNX ONOFF OFF 是否构建用于解析 ONNX 模型的 Fwd_Onnx 项目 可选