Skip to content

Latest commit

 

History

History
executable file
·
97 lines (72 loc) · 6.21 KB

linux.md

File metadata and controls

executable file
·
97 lines (72 loc) · 6.21 KB

基于PaddleInference的推理-Linux环境编译

本文档指引用户如何基于PaddleInference对飞桨模型进行推理,并编译执行。

环境依赖

gcc >= 5.4.0 cmake >= 3.5.1

Ubuntu 16.04/18.04

编译步骤

Step1: 获取部署代码

git clone https://github.com/PaddlePaddle/PaddleX.git
cd PaddleX/deploy/cpp

说明C++预测代码在PaddleX/deploy/cpp 目录,该目录不依赖任何PaddleX下其他目录。所有的公共实现代码在model_deploy目录下,所有示例代码都在demo目录下。

Step 2. 下载PaddlePaddle C++ 预测库

PaddlePaddle C++ 预测库针对是否使用GPU、是否支持TensorRT、以及不同的CUDA版本提供了已经编译好的预测库,目前PaddleX支持Paddle预测库2.0+,最新2.1版本下载链接如下所示:

版本说明 预测库(2.1) 编译器
CPU版本 paddle_inference.tgz gcc 8.2
GPU版本(CUDA10.1/CUDNN7.6/TensorRT6) paddle_inference.tgz gcc 8.2
GPU版本(CUDA10.2/CUDNN8/TensorRT7) paddle_inference.tgz gcc 8.2
GPU版本(CUDA11/CUDNN8/TensorRT7) paddle_inference.tgz gcc 8.2

请根据实际情况选择下载,如若以上版本不满足您的需求,请至C++预测库下载列表选择符合的版本。

将预测库解压后,其所在目录(例如解压至PaddleX/deploy/cpp/paddle_inference/)下主要包含的内容有:

├── paddle/ # paddle核心库和头文件
|
├── third_party # 第三方依赖库和头文件
|
└── version.txt # 版本和编译信息(里边有编译时gcc、cuda、cudnn的版本信息)

Step 3. 修改编译参数

根据自己的系统环境,修改`PaddleX/deploy/cpp/

/build.sh`脚本中的参数,主要修改的参数为以下几个

参数 说明
WITH_GPU ON或OFF,表示是否使用GPU,当下载的为CPU预测库时,设为OFF
PADDLE_DIR 预测库所在路径,默认为PaddleX/deploy/cpp/paddle_inference目录下
CUDA_LIB cuda相关lib文件所在的目录路径
CUDNN_LIB cudnn相关lib文件所在的目录路径
WITH_TENSORRT ON或OFF,表示是否使用开启TensorRT
TENSORRT_DIR TensorRT 的路径,如果开启TensorRT开关WITH_TENSORRT,需修改为您实际安装的TensorRT路径
WITH_ENCRYPTION ON或OFF,表示是否开启加密模块
OPENSSL_DIR OPENSSL所在路径,解密所需。默认为PaddleX/deploy/cpp/deps/penssl-1.1.0k目录下

Step 4. 编译

修改完build.sh后执行编译:

sh scripts/build.sh

[注意]:

  • 以上命令在PaddleX/deploy/cpp目录下进行执行
  • opencv依赖libopenblas-dev,如未安装会导致编译失败,可执行apt-get install libopenblas-dev进行安装(以ubuntu为例)

编译环境无法联网导致编译失败?

编译过程,会调用scripts/bootstrap.sh联网下载opencv、openssl,以及yaml依赖包,如无法联网,用户按照下操作手动下载

  1. 根据系统版本,点击右侧链接下载不同版本的opencv依赖 Ubuntu 16.04/Ubuntu 18.04
  2. 解压下载的opencv依赖(解压后目录名为opencv3.4.6gcc4.8ffmpeg),创建目录PaddleX/deploy/cpp/deps,将解压后的目录拷贝至该创建的目录下
  3. 点击下载yaml依赖包,无需解压
  4. 修改PaddleX/deploy/cpp/cmake/yaml.cmake文件,将URL https://bj.bcebos.com/paddlex/deploy/deps/yaml-cpp.zip中网址替换为第3步中下载的路径,如改为URL /Users/Download/yaml-cpp.zip
  5. 如果开启加密,点击下载openssl,将解压后的目录拷贝至跟opencv同级目录,即PaddleX/deploy/cpp/deps目录。
  6. 重新执行sh script/build.sh即可编译

Step 5. 编译结果

编译后会在PaddleX/deploy/cpp/build/demo目录下生成model_infermulti_gpu_model_inferbatch_infer等几个可执行二进制文件示例,分别用于在单卡/多卡/多batch上加载模型进行预测,示例使用参考如下文档:

如果编译时开启TensorRT, 会多成一个tensorrt_infer二进制文件示例。示例使用参考如下文档:

如果编译时开启加密, 会多成一个decrypt_infer二进制文件示例。示例使用参考如下文档:

其它文档