tensorrt安装_通过tar file来安装TensorRT

cdfdc5d74c1b58be5e3e02d758ec1656.png

本文以rangenet_lib的编译为例子,讲解如何通过tar file(而不是deb)来安装TensorRT, 这个segmentation库用到了TensorRT C++ bindings.

环境

OS: Ubuntu 16.04

NVIDIA-driver: 430.64

CUDA: 10.0

cuDNN: 7.6.5

TensorRT: 5.1.5.0

问题

由于之前CUDA是使用runfile安装的, 而不是用deb安装,因此与CUDA相关的一些依赖是没有办法通过dpkg来解决的,从而导致不能按照NVIDIA官网的要求来使用deb来安装tensorrt,这一点官网也有说明。

4fa7e6166cafc193b751d24d7b64eab5.png
注意看第三点

因此,我们只能使用官网的tar file来安装。这种方式严格上讲并不是安装,因为只是下载和解压了一个tar,而在后续的过程中,具体如何在CMake或其他构建工具中引入TensorRT的相关库,本文将进行详细说明。

1. 下载TensorRT的tar file

这里以TensorRT 5.1.X为例。

首先在官网下载对应CUDA版本和OS版本的tar file;

https://developer.nvidia.com/nvidia-tensorrt-5x-download​developer.nvidia.com

然后解压,这里我们解压得到的路径是

/home/hvt/Downloads/TensorRT-5.1.5.0

目录里有以下内容

51cd7ba45f56ae032f0a1ec645eba2c5.png

可以看到其中的inclue和lib等子目录,这个在后边配置CMake的时候会用到.

2. 建立软链接

需要将lib目录下的这几个动态库软链接到/usr/lib/x86_64-linux-gnu/下:

sudo ln -s /home/hvt/Downloads/TensorRT-5.1.5.0/lib/libnvinfer.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /home/hvt/Downloads/TensorRT-5.1.5.0/lib/libnvinfer_plugin.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /home/hvt/Downloads/TensorRT-5.1.5.0/lib/libnvparsers.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /home/hvt/Downloads/TensorRT-5.1.5.0/lib/libnvonnxparser.so /usr/lib/x86_64-linux-gnu/
sudo ln -s /home/hvt/Downloads/TensorRT-5.1.5.0/lib/libnvonnxparser_runtime.so /usr/lib/x86_64-linux-gnu/

请根据你自己的解压路径调整源目录的位置;

如果不进行这一步的话,在后边某些应用使用到了TensorRT时, ld就会报下边的错误:

1cc0c24e57edcaeca9adbef27864785d.png

这应该是ld找不到上述几个动态库的位置导致的,我尝试过在LD_LIBRARY_PATH中加入/home/hvt/Downloads/TensorRT-5.1.5.0/lib/,但是没有解决问题,因此才使用了上述的软链接方法;如果有更优雅更干净的方法,欢迎指出。

3. Python Binding安装

按照官网的tar file部分的教程安装即可。

Deep Learning SDK Documentation​docs.nvidia.com

4. 如何写CMakeList.txt

经过上述的过程TensorRT在理论上就安装完了,但是由于没有使用deb安装,在C++应用使用到TensorRT时,需要对CMakeList进行一些特殊的配置,否则仅使用find_package是找不到TensorRT的。

这里我们以rangenet_lib这个应用的编译为例,其他的应用大同小异。这个库默认是find_package能直接找到TensorRT,但这显然不适合我们的情况,需要进行以下修改:

PRBonn/rangenet_lib​github.com
1a83ae373a7e4b3e4cf1d803baca6807.png

首先在rangenet_lib/cmake下边的tensorrt-config.cmake的最前边加上这几行:

set (TENSORRT_ROOT "/home/hvt/Downloads/TensorRT-5.1.5.0")

list(APPEND CMAKE_LIBRARY_PATH "${TENSORRT_ROOT}/lib")
file(GLOB TENSORRT_LIBRARIES "${TENSORRT_ROOT}/lib/*.so")
set(TENSORRT_INCLUDE_DIRS "${TENSORRT_ROOT}/include")

其中第一行,TENSORRT_ROOT后边的路径,改成你自己机器上在第1步解压之后得到的根目录。

然后再正常编译就可以了,find_package会直接找到TensorRT。

这里tensorrt-config.cmake和一般的FindTensorRT.cmake的作用是相同的,具体怎么添加上述几行语句要看你的应用是什么样的,直接加到CMakeLists里应该也是可行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值