Nvidia官方文档上标示TensorRT的安装方法必须和cuda的安装方法一致,否则会报错,比如用.run安装的cuda,但用deb装TensorRT就会报一些包丢失的错,而且再去安装这些包也还是报错报了一大堆。
我是参照以下这篇博客来安装的:
https://blog.csdn.net/MacwinWin/article/details/80177326?utm_source=blogxgwz4
实现了博客中最终的测试结果,我就算是默认安装完成了。系统使用的是Ubuntu16.04 , cuda9.0 , TensorRT 3.0.4 。
Ubuntu16.04怎么安装可以参照:https://blog.csdn.net/qq_36780295/article/details/107999586
cuda 9.0怎么安装可以参照:https://blog.csdn.net/qq_36780295/article/details/108010344

相关文件下载地址:

不得不说,一道墙之隔,我们是离得如此遥远。光是为了下载TensorRT的安装文件,我就是煞费苦心。有时候下载失败,有时候下载下来一个32KB的损坏文件,有时候直接就是龟速下载。如果要尝试其他版本,下载地址:https://developer.nvidia.com/nvidia-tensorrt-download,另附上cuda的下载地址:https://developer.nvidia.com/cuda-toolkit-archive,下载太慢可以尝试先用浏览器下载,然后复制链接,转到迅雷下载,多试几次吧,说不定就下载成功了。

如果版本和我都一致,我已经将下载好的上传到了百度网盘。
下载链接:
TensorRT :
https://pan.baidu.com/s/1GmjwcTzpulNEmzXcM-lnnw
提取码:UZeO (版本:3.0.4版 Ubuntu16.04 and CUDA9.0 包含deb和tar两个版本的安装包,这里使用的是tar版的)
CUDA9.0补丁:
https://pan.baidu.com/s/1ZrOmYPb3CJ97CUXusTvJ6g
提取码:8o11

TensorRT官方文档地址:
开发者指南:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html
介绍文档:https://developer.nvidia.com/blog/tensorrt-3-faster-tensorflow-inference/
入门博客:https://developer.nvidia.com/blog/speeding-up-deep-learning-inference-using-tensorrt/

其他一些TensorRT资源:http://nvidia.zhidx.com/answer-107.html

开始安装:

安装补丁:

首先一开始我参照的是这篇博文:https://arleyzhang.github.io/articles/7f4b25ce/
但是由于此博文是按照deb安装的,而我是.run文件安装的,导致出现的问题比较多,且有很多地方不太适用,于是后面的没有继续采纳,但是不得不说这真的是篇好文章啊。
根据这篇文章提到的,TensorRT中有一些用到的包,在CUDA的补丁当中,我不确定是否有效,但装上总比不装的好,于是乎就去把cuda9.0的四个patch下载下来。安装时与cuda9.0的.run安装一样,先alt+ctrl+F1进入tty模式,输入用户名和密码,接着输入sudo service lightdm stop或者sudo telinit 3关闭图形界面。接着cd进入到存放补丁文件的文件夹,执行sudo chmod a+x cuda_9.0.176.1_linux.run赋予patch1执行权限,接着sudo sh cuda_9.0.176.1_linux.run,接着accept,路径要与cuda安装路径相同,4个补丁都安装完成以后,sudo reboot重启。

安装TensorRT:

接着就可以按照:https://blog.csdn.net/MacwinWin/article/details/80177326?utm_source=blogxgwz4来安装了,不过有点小问题,也不能完全按照这篇文章来。
以下是我成功安装的过程。
首先将TensorRT的安装包下好,cd进入到目录下,执行:$ tar -xzvf TensorRT-3.0.4.Ubuntu-16.04.3.x86_64.cuda-9.0.cudnn7.0.tar.gz将文件解压。执行$ vim ~/.bashrc,使用vim在末尾加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-3.0.4/lib,注意了,LD_LIBRARY_PATH后面的 ~/TensorRT-3.0.4/lib一定要按照自己的真实路径来填写,否则最后测试的时候无法调用这个变量会报错。执行$ source ~/.bashrc使之立即生效。

进入到下载好的TensorRT目录,右击,从终端打开。执行:sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorrt-3.0.4-cp35-cp35m-linux_x86_64.whl
同目录下还有一个cp27,根据自己的python版本来,我的python版本是python3.5。
如果是python3.6,或者python3.7,按照参考的博客中,可以试着修改whl文件的名字。如3.6版本则改成:
tensorrt-4.0.0.3-cp36-cp36mu-linux_x86_64.whl,改完以后再尝试运行。(由于我是3.5版本所以我也没有试)
我在这一步中报错报了一大堆,并警告找不到cuda.h和nvcc等:
linux环境 TensorRT3.0.4的安装与部署
linux环境 TensorRT3.0.4的安装与部署
linux环境 TensorRT3.0.4的安装与部署
错误原因主要还是上面的warning找不到nvcc相关,导致了下面一系列的错误,找不到nvcc,也就是找不到cuda,系统读取环境没有读到nvcc的地址,查看cuda在~/.bashrc中的环境变量路径是不是对的。
如果环境变量是对的,则尝试把sudo去掉,直接执行pip3:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorrt-3.0.4-cp35-cp35m-linux_x86_64.whl
linux环境 TensorRT3.0.4的安装与部署问题解决。
因为加sudo是使用的root用户进行pip安装,但安装cuda的是普通用户,root用户使用时无法定位,所以去掉sudo就可以了。如果安装时反过来,则这里也就反而要加上sudo。如果还是不行,则还是再看一下~/.bashrc中CUDA在PATH中的环境变量是不是对的,如果路径错了系统调用这个变量当然读取不到啦。
这个问题参考自:https://blog.csdn.net/u011337602/article/details/81238164

这里还有一种报错:
linux环境 TensorRT3.0.4的安装与部署提示gcc的错误,但是这个我也不清楚怎么解决,因为这个问题是先出现的,后来不知道改了什么,这个错又不报了,直到测试跑通了这个错也没报过了。期间我执行了一次vim ~/.bashrc,改了什么不记得了,我把~/.bashrc添加在最后的环境变量列出来,以供同样遇到这个问题的朋友参考。
linux环境 TensorRT3.0.4的安装与部署期间我还执行了一次sudo apt install python3-pip,不知道是不是这两步解决了这个问题。

TensorRT安装完以后,在终端输入$ which tensorrt,输出结果:/usr/local/bin/tensorrt,则安装成功。

安装UFF:

打开终端,执行$ cd ~/TensorRT-3.0.4/uff,进入到TensorRT目录。
执行sudo pip3 install uff-0.2.0-py2.py3-none-any.whl(安装的文件根据自己该目录下的文件名来填写)
安装完以后,执行$ which convert-to-uff,输出结果:/usr/local/bin/convert-to-uff,则安装成功。

测试

使用samples测试TensorRT是否安装成功:
打开终端,输入:$ cd ~/TensorRT-4.0.0.3/samples,接着make
如果报下列错误:
linux环境 TensorRT3.0.4的安装与部署没有找到CUDA的API(大多数出的错都围绕CUDA而来)
执行:
$ sudo make clean #清理make后产生的文件
$ meke CUDA_INSTALL_DIR=/usr/local/cuda
指定路径执行make。

接着执行:$cd ../bin(进入到 TensorRT-3.0.4/bin 目录下)
执行:./sample_mnist
输出结果:
linux环境 TensorRT3.0.4的安装与部署完成!

如果这一步报错:./sample_mnist: error while loading shared libraries: libnvinfer.so.4…
终端输入:vim ~/.bashrc
检查 LD_LIBRARY_PATH 中的 /TensorRT-3.0.4/lib 路径是否正确,我就是这一步跟着参考的博客来写,导致中间少了两个文件夹。
这一步报错参考自:https://www.cnblogs.com/huhuai/p/9596474.html

相关文章:

  • 2021-11-14
  • 2022-03-09
  • 2021-04-24
  • 2021-09-01
  • 2021-11-13
  • 2021-11-02
  • 2021-09-15
  • 2021-06-07
猜你喜欢
  • 2021-11-09
  • 2021-05-27
  • 2021-08-05
  • 2021-08-06
  • 2021-04-03
  • 2021-08-02
  • 2021-09-04
相关资源
相似解决方案