PaddlePaddle——在X86的Ubuntu18.04中基于C++部署Paddle Inference GPU预测库(2.1.1)

文章目录

    • 一、环境检查
    • 二、安装PaddlePaddle
      • 1.直接下载编译好的C++预测库
    • 二、测试Paddle Inference
      • 1.环境准备
      • 2.配置Paddle inference预测库
      • 3.配置路径
        • 常用组件路径
        • 配置tensorRT库文件
      • 4.测试跑通GPU预测模型

一、环境检查

  • CUDA版本
  • cudnn版本
  • gcc版本(一般来说,系统自己下的gcc都7.6左右版本,没有8.2的,所以如果要编译,一定要重装8.2版本的gcc,参考链接:ubuntu18.04 安装指定版本的gcc-8.2)
  • cmake版本

二、安装PaddlePaddle

有两种方式,因为X86环境在PaddlePaddle官方有已经编译好的预测库,所以我们直接下载就好,不用编译,当然如果JetPack版本不匹配,无法使用编译好的预测库,那么就需要编译。

1.直接下载编译好的C++预测库

下载安装Linux预测库
根据自己电脑的版本型号进行选择即可:
PaddlePaddle——在X86的Ubuntu18.04中基于C++部署Paddle Inference GPU预测库(2.1.1)_第1张图片

二、测试Paddle Inference

1.环境准备

拉取Paddle-Inference-Demo

git clone https://github.com.cnpmjs.org/PaddlePaddle/Paddle-Inference-Demo.git
  • Tips:这里用了一个Github国内镜像源的小技巧来加快git clone速度,想学的小伙伴可以参考博客:Git——git clone速度加快方法

2.配置Paddle inference预测库

进入Paddle-Inference-Demo-master中的lib文件夹:
请添加图片描述
将下载好的预测库解压到该文件夹,并将paddle_inference_install_dir改名为paddle_inference

请添加图片描述

3.配置路径

此处以yolov3为例进行介绍:

进入yolov3文件夹下:
请添加图片描述
修改compile.sh

WITH_MKL=ON # 只有Intel CPU的需要设置ON,ARM架构都是OFF
WITH_GPU=ON # 开启GPU
# tensorrt建议先OFF,如果GPU编译运行成功后,再测试tensorrt
USE_TENSORRT=OFF # TensorRT,需要另行操作

# 路径配置如下,不用修改:
LIB_DIR=${work_path}/../lib/paddle_inference # 不变
CUDNN_LIB=/usr/lib/x86_64-linux-gnu/ # 不变
CUDA_LIB=/usr/local/cuda/lib64 # 一般来说,只要装好了cuda,都不需要更改
TENSORRT_ROOT=/home/pc/Softwares/cuda/tensorRT7/TensorRT-7.2.3.4 # 必须改!!改成自己的tensorrt安装的根路径

常用组件路径

组件 路径 库文件路径设置
CUDA /usr/local/cuda/ CUDA_LIB=/usr/local/cuda/lib64
cuDNN /usr/src/cudnn_samples_v8/ CUDNN_LIB=/usr/lib/aarch64-linux-gnu/
TensorRT 你的tesorrt安装路径 TENSORRT_ROOT=/usr/src/tensorrt
Paddle Inference预测库 自行设置 LIB_DIR=${work_path}/../lib/paddle_inference/

配置tensorRT库文件

我这里用tensorRT可以编译成功,但是在运行时会报错:
PaddlePaddle——在X86的Ubuntu18.04中基于C++部署Paddle Inference GPU预测库(2.1.1)_第2张图片

该文件libnvrtc.so.10.2是存在的,就在cuda/lib64的路径下,但是报错找不到,解决方法是:

请添加图片描述
重载一下cuda动态链接库为系统所共享:

sudo ldconfig /usr/local/cuda-10.2/lib64

现在在开启tensorRT,遇到了如下问题,应该是tensorRT的版本与编译时的版本不兼容导致的,所以目前就只开启GPU吧。
PaddlePaddle——在X86的Ubuntu18.04中基于C++部署Paddle Inference GPU预测库(2.1.1)_第3张图片

4.测试跑通GPU预测模型

sudo ./run.sh

GPU预测结果:
PaddlePaddle——在X86的Ubuntu18.04中基于C++部署Paddle Inference GPU预测库(2.1.1)_第4张图片

成功运行~

参考文章:

  • libcudart.so.8.0: cannot open shared object file: No such file or directory 的解决办法
  • libiomp5.so: cannot open shared object file: No such file or directory
  • libdnnl.so.2: cannot open shared object file: No such file or directory

你可能感兴趣的:(Linux,C++,paddlepaddle,c++,paddle)