从源码编译预测库¶

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

选项

CMAKE_BUILD_TYPE

Release

FLUID_INFERENCE_INSTALL_DIR

安装路径(可选)

ON_INFER

ON(推荐)

WITH_GPU

ON/OFF

WITH_MKL

ON/OFF

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

Windows下安装与编译预测库步骤:(在Windows命令提示符下执行以下指令)

设置预测库的安装路径,将path_to_paddle替换为PaddlePaddle预测库的安装路径:

PADDLE_ROOT=path_to_paddle(不设置则使用默认路径)

将PaddlePaddle的源码clone在当下目录的Paddle文件夹中,并进入Paddle目录:

git clone https://github.com/PaddlePaddle/Paddle.git

cd Paddle

创建名为build的目录并进入:

mkdir build

cd build

执行cmake:

cmake .. -G "Visual Studio 14 2015 Win 64" -DFLUID_INFERENCE_INSTALL_DIR=${PADDLE_ROOT} -DCMAKE_BUILD_TYPE=Release -DWITH_MKL=OFF -DWITH_GPU=OFF -DON_INFER=ON

-DFLUID_INFERENCE_INSTALL_DIR=$PADDLE_ROOT为可选配置选项,如未设置,则使用默认路径。

-DWITH_GPU为是否使用GPU的配置选项,-DWITH_MKL为是否使用Intel MKL(数学核心库)的配置选项,请按需配置。

从https://github.com/wopeizl/Paddle_deps下载预编译好的第三方依赖包(openblas, snappystream),将整个third_party文件夹复制到build目录下。

使用Blend for Visual Studio 2015 打开 paddle.sln 文件,选择平台为x64,配置为Release,先编译third_party模块,再编译inference_lib_dist模块。

操作方法:在Visual Studio中选择相应模块,右键选择"生成"(或者"build")

编译成功后,使用C++预测库所需的依赖(包括:(1)编译出的PaddlePaddle预测库和头文件;(2)第三方链接库和头文件;(3)版本信息与编译选项信息)

均会存放于PADDLE_ROOT目录中。目录结构如下:

PaddleRoot/

├── CMakeCache.txt

├── paddle

│   ├── include

│   │   ├── paddle_anakin_config.h

│   │   ├── paddle_analysis_config.h

│   │   ├── paddle_api.h

│   │   ├── paddle_inference_api.h

│   │   ├── paddle_mkldnn_quantizer_config.h

│   │   └── paddle_pass_builder.h

│   └── lib

│   ├── libpaddle_fluid.a

│   └── libpaddle_fluid.so

├── third_party

│   ├── boost

│   │   └── boost

│   ├── eigen3

│   │   ├── Eigen

│   │   └── unsupported

│   └── install

│   ├── gflags

│   ├── glog

│   ├── mkldnn

│   ├── mklml

│   ├── protobuf

│   ├── snappy

│   ├── snappystream

│   ├── xxhash

│   └── zlib

└── version.txt

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

GIT COMMIT ID: cc9028b90ef50a825a722c55e5fda4b7cd26b0d6

WITH_MKL: ON

WITH_MKLDNN: ON

WITH_GPU: ON

CUDA version: 8.0

CUDNN version: v7

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐