Paddle Inference 推理动态链接库 libnvinfer.so 问题

执行推理时会提示 TensorRT 的动态链接库缺失的问题:

TensorRT dynamic library (libnvinfer.so) that Paddle depends on is not configured correctly. (error code is libnvinfer.so: cannot open shared object file: No such file or directory) Suggestions:

  1. Check if TensorRT is installed correctly and its version is matched with paddlepaddle you installed.
  2. Configure TensorRT dynamic library environment variables as follows:
  • Linux: set LD_LIBRARY_PATH by export LD_LIBRARY_PATH=...
  • Windows: set PATH by `set PATH=XXX;———– Running Arguments ———–

其实这个问题并没有影响我们模型的推理结果,强迫症不允许有任何警告,还是解决下吧!临时解决可以采用离线安装方式。

源安装方式

参考:Install TensorRT - 4.1. Debian Installation

后面有时间会稍微整理一下!

离线包安装方式

这个方法比较适用于无法添加 nvidia 相关开发包仓库源的场景:

  • 不是唯一的方式,也不是最好的方式
  • 而且不是很灵活,具有版本针对性,针对服务器已安装 Cuda 10.0 的版本

安装相关依赖包

上面已经说了具有版本针对性是因为 Cuda 版本是10.0,下载的依赖包都是针对这个版本的,点我可下载,文件列表如下:

ls -l /data/nvidia-debs/TensorRT-debs 
总用量 255M
-rw-rw-r-- 1 tianye tianye  29M Sep 19  2018 cuda-cublas-10-0_10.0.130-1_amd64.deb
-rw-rw-r-- 1 tianye tianye 107K Sep 19  2018 cuda-cudart-10-0_10.0.130-1_amd64.deb
-rw-rw-r-- 1 tianye tianye  18K Sep 19  2018 cuda-license-10-0_10.0.130-1_amd64.deb
-rw-rw-r-- 1 tianye tianye 157M Oct 28  2019 libcudnn7_7.6.5.32-1+cuda10.0_amd64.deb
-rw-r--r-- 1 tianye tianye  66M Dec  3 12:33 libnvinfer7_7.0.0-1+cuda10.0_amd64.deb
-rw-r--r-- 1 tianye tianye 2.1M Dec  3 12:33 libnvinfer-plugin7_7.0.0-1+cuda10.0_amd64.deb
-rw-r--r-- 1 tianye tianye 588K Dec  3 12:33 libnvonnxparsers7_7.0.0-1+cuda10.0_amd64.deb
-rw-r--r-- 1 tianye tianye 761K Dec  3 12:33 libnvparsers7_7.0.0-1+cuda10.0_amd64.deb

我这里上面 deb 包下载后都是放在 /data/nvidia-debs/TensorRT-debs 下的,您可以放在其它地方,安装即可:

sudo dpkg -i /data/nvidia-debs/TensorRT-debs/*.deb

上面的相关依赖包是在 nvidia 源仓库下载的,可以在官网页面中找到相应版本的依赖包,这里需要安装的只是:

  • libnvinfer7
  • libnvinfer-plugin7
  • libnvonnxparsers7
  • libnvparsers7

安装过程中发现它们依赖于其它包,所以你看到目录下的其它包都是依赖,得安装!

deb 包仓库地址(进入页面按系统进入即可):

  1. cuda:https://developer.download.nvidia.com/compute/cuda/repos
  2. machine-learning:https://developer.download.nvidia.com/compute/machine-learning/repos

添加动态链接库软链接

上面安装后的动态链接库都在/usr/lib/x86_64-linux-gnu 下,虽然这个目录已经在 LD_LIBRARY_PATH 中了,但运行推理还是找不到的,因为名字不对,找不到,所以需要创建相应的软链接,这一步很简单,因为目录下已经有相应的带版本的软链接文件了,所以复制改名即可:

sudo cp /usr/lib/x86_64-linux-gnu/libcudnn.so.7 /usr/lib/x86_64-linux-gnu/libcudnn.so
sudo cp /usr/lib/x86_64-linux-gnu/libnvinfer.so.7 /usr/lib/x86_64-linux-gnu/libnvinfer.so
sudo cp /usr/lib/x86_64-linux-gnu/libnvinfer_plugin.so.7 /usr/lib/x86_64-linux-gnu/libnvinfer_plugin.so
sudo cp /usr/lib/x86_64-linux-gnu/libnvparsers.so.7 /usr/lib/x86_64-linux-gnu/libnvparsers.so
sudo cp /usr/lib/x86_64-linux-gnu/libnvcaffe_parser.so.7 /usr/lib/x86_64-linux-gnu/libnvcaffe_parser.so

再次推理发现就没有警告了。


paddleai

854 字

2020-12-03 13:30 +0800