安装与编译C++预测库

直接下载安装

版本说明 预测库(1.6.3版本) 预测库(develop版本)
ubuntu14.04_cpu_avx_mkl fluid_inference.tgz fluid_inference.tgz
ubuntu14.04_cpu_avx_openblas fluid_inference.tgz fluid_inference.tgz
ubuntu14.04_cpu_noavx_openblas fluid_inference.tgz fluid_inference.tgz
ubuntu14.04_cuda9.0_cudnn7_avx_mkl fluid_inference.tgz fluid_inference.tgz
ubuntu14.04_cuda10.0_cudnn7_avx_mkl fluid_inference.tgz fluid_inference.tgz
ubuntu14.04_cuda9.0_cudnn7_avx_mkl_trt5 fluid_inference.tgz
ubuntu14.04_cuda10.0_cudnn7_avx_mkl_trt5 fluid_inference.tgz
nv-jetson-cuda10-cudnn7.5-trt5 fluid_inference.tar.gz

从源码编译

用户也可以从 PaddlePaddle 核心代码编译C++预测库,只需在编译时配制下面这些编译选项:

选项
CMAKE_BUILD_TYPE Release
FLUID_INFERENCE_INSTALL_DIR 安装路径
WITH_PYTHON OFF(推荐)
ON_INFER ON(推荐)
WITH_GPU ON/OFF
WITH_MKL ON/OFF

建议按照推荐值设置,以避免链接不必要的库。其它可选编译选项按需进行设定。

下面的代码片段从github拉取最新代码,配制编译选项(需要将PADDLE_ROOT替换为PaddlePaddle预测库的安装路径):

  1. PADDLE_ROOT=/path/of/capi
  2. git clone https://github.com/PaddlePaddle/Paddle.git
  3. cd Paddle
  4. mkdir build
  5. cd build
  6. cmake -DFLUID_INFERENCE_INSTALL_DIR=$PADDLE_ROOT \
  7. -DCMAKE_BUILD_TYPE=Release \
  8. -DWITH_PYTHON=OFF \
  9. -DWITH_MKL=OFF \
  10. -DWITH_GPU=OFF \
  11. -DON_INFER=ON \
  12. ..
  13. make
  14. make inference_lib_dist

成功编译后,使用C++预测库所需的依赖(包括:(1)编译出的PaddlePaddle预测库和头文件;(2)第三方链接库和头文件;(3)版本信息与编译选项信息) 均会存放于PADDLE_ROOT目录中。目录结构如下:

  1. PaddleRoot/
  2. ├── CMakeCache.txt
  3. ├── paddle
  4. ├── include
  5. ├── paddle_anakin_config.h
  6. ├── paddle_analysis_config.h
  7. ├── paddle_api.h
  8. ├── paddle_inference_api.h
  9. ├── paddle_mkldnn_quantizer_config.h
  10. └── paddle_pass_builder.h
  11. └── lib
  12. ├── libpaddle_fluid.a
  13. └── libpaddle_fluid.so
  14. ├── third_party
  15. ├── boost
  16. └── boost
  17. ├── eigen3
  18. ├── Eigen
  19. └── unsupported
  20. └── install
  21. ├── gflags
  22. ├── glog
  23. ├── mkldnn
  24. ├── mklml
  25. ├── protobuf
  26. ├── snappy
  27. ├── snappystream
  28. ├── xxhash
  29. └── zlib
  30. └── version.txt

version.txt 中记录了该预测库的版本信息,包括Git Commit ID、使用OpenBlas或MKL数学库、CUDA/CUDNN版本号,如:

  1. GIT COMMIT ID: cc9028b90ef50a825a722c55e5fda4b7cd26b0d6
  2. WITH_MKL: ON
  3. WITH_MKLDNN: ON
  4. WITH_GPU: ON
  5. CUDA version: 8.0
  6. CUDNN version: v7