Ubuntu16.04 安装tensorRT 全过程

目前学习tensorRT,因此需要在Ubuntu上配置tensorRT,折腾了一天才装好,整理了一下步骤,以便可以帮助其他人。

安装NVIDIA的驱动

安装驱动是最恶心的一个地方,由于和Ubuntu系统兼容性不好的原因,会出现各种神奇的错误,下面是我成功安装好的流程。

1. 删除旧的驱动

sudo apt-get purge nvidia*

2.下载NVIDIA的驱动安装包(一个.run的文件)

首先进入官网,下载和你系统符合的安装包
Ubuntu16.04 安装tensorRT 全过程_第1张图片

3. nouveau禁止命令写入文件

sudo vim /etc/modprobe.d/blacklist.conf   # 如果没有vim,可以使用gedit
#创建(或打开)了一个blacklist.conf文件
#在里面填充下列代码
blacklist nouveau 
blacklist lbm-nouveau 
options nouveau modeset=0 
alias nouveau off 
alias lbm-nouveau off

再输入,命令激活

sudo update-initramfs -u

4. 建立新的内核并重启

sudo update-initramfs -u
sudo reboot

5. 调用指令禁止nouveau

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

确认下Nouveau是已经被禁用:

lsmod | grep nouveau 

如果没有输出什么东西,则说明已经成功禁用

6. 进入tty 模式

在登入界面进入tty模式

ctrl + alt+ F1

tty模式为命令行模式,此部分无图片,进去后输出用户名和密码,然后进入命令行,关闭x server

sudo service lightdm stop 
sudo init 3

7. 安装NVIDIA驱动

cd NVIDIA安装包指定目录
chmod +x nvidia-----.run
sudo sh nvidia-----.run --no-opengl-files

安装默认yes,直到安装完成,系统会进入登入界面,检查是否成功

nvidia-smi

如果为以下显示,则安装成功
Ubuntu16.04 安装tensorRT 全过程_第2张图片

安装cuda9.0

1. 下载cuda9.0

首先去官网下载cuda9.0,下载完就开始安装cuda9.0.
Ubuntu16.04 安装tensorRT 全过程_第3张图片

2. 安装

输入安装命令

sudo sh cuda_9.0.176_384.81_linux.run 

(1)按q键跳过安装须知,输入accept 接受
(2)第一个选择,是否安装驱动,输入n,因为上面安装过了
(3)后面的选择都选择y,就好
(4)安装好界面如下,会有一个warning,可以不用管,没有影响,如果按照网上部分的解决方案可能会出现未知崩溃

3. 添加路径库以及打补丁

打开bashrc

sudo vim ~/.bashrc

在里面添加路径

export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"

使之生效

source .bashrc #此时终端在用户名目录下 ~

检查是否添加成功

echo $PATH
echo $LD_LIBRARY_PATH

补丁为刚才下载界面下面那些小的文件,可装可不装,一半开始使用影响不大,如果后面遇到问题可以再装

sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run

最后检查cuda是否安装好

nvcc -V

显示以下,即为成功。
Ubuntu16.04 安装tensorRT 全过程_第4张图片
这里可能会出现一个问题——显示的版本为cuda7.5,与安装的版本号不一致
解决方案如下:

  1. 卸载7.5版本
sudo apt-get autoremove nvidia-cuda-toolkit
  1. 查看/usr/local/cuda/bin下是否有nvcc可执行程序,如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步
  2. 添加环境变量,打开~/.bashrc ,添加环境变量export PATH=$PATH:/usr/local/cuda/bin
  3. 再在终端输入nvcc -V ,即可发现问题已修正。

安装cudnn 7.5

1.下载cudnn

在官网上下载cudnn,需要注册NVIDIA开发者账号,选择与cuda和系统版本号对应的cudnn文件,下载tgz文件,然后解压文件

tar -xzvf cudnn---------.tgz

2. 复制文件

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d 

3. 添加权限:

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

查看cudnn版本是否安装好

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果出现下列显示,则安装成功
Ubuntu16.04 安装tensorRT 全过程_第5张图片

安装tensorRT

在装完cuda和cudnn,即可以安装tensorRT

下载安装包

下载tar版本的安装包,同样需要登入NVIDIA的开发者账号。

解压并添加环境变量

tar -xzvf TensorRT-XXX.tar.gz
$ vim ~/.bashrc # 打开环境变量文件
# 将下面三个环境变量写入环境变量文件并保存
export LD_LIBRARY_PATH=TensorRT解压路径/lib:$LD_LIBRARY_PATH
export CUDA_INSTALL_DIR=/usr/local/cuda-9.0
export CUDNN_INSTALL_DIR=/usr/local/cuda-9.0
# 使刚刚修改的环境变量文件生效
$ source ~/.bashrc

安装python的tensorRT包

进入tensorRT目录下的Python目录

# 对于python2
$ sudo pip2 install tensorrt-XXX-cp27-cp27mu-linux_x86_64.whl
# 对于python3
$ sudo pip3 install tensorrt-XXX-cp35-cp35m-linux_x86_64.whl

测试TensorRT 是否安装成功,进入python编辑器加载tensorrt:

>>>import tensorrt

这里在加载库时可能就会报错

In file included from src/cpp/cuda.cpp:1:0:
    src/cpp/cuda.hpp:14:18: fatal error: cuda.h: No such file or directory
    compilation terminated.
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

原因是找不到cuda.h ,问题是由于在root下,环境变量的地址没有包含cuda
解决方案:
将cuda的安装路径添加到root的环境变量中,在root角色下安装Python的TensorRT包

$ sudo vim /etc/profile.d/cuda.sh
添加:export PATH=/usr/local/cuda-9.0/bin:$PATH
# 这里有个问题就是可能bin下没有cuda.h,所以要查找一下cuda.h在哪,我安装时,它在cuda的include文件夹内,而不是在cuda-9.0下,此处可以随机应变
$ sudo su
$ pip3 install tensorrt-XXX-cp35-cp35mu-linux_x86_64.whl 
$ exit

如果还不行,关闭终端再打开就好。

安装uff

进入uff目录下安装uff包

# 对于python2
$ sudo pip2 install uff-0.1.0rc0-py2.py3-none-any.whl
# 对于python3
$ sudo pip3 install uff-0.1.0rc0-py2.py3-none-any.whl

测试

$ which convert-to-uff

此处会输出uff的安装路径
再次测试TensorRT

$ python3
>>>import tensorrt
>>>tensorrt.__version__

输出TensorRT的版本号,即安装成功。

验证相关项目

$ cd TensorRT-XXX/samples/sampleMNIST
$ make clean
$ make
$ cd /TensorRT-XXX/bin(转到bin目录下面,make后的可执行文件在此目录下)
$ ./sample_mnist

出现数字识别结果即安装成功

到此为止,终于安装完了tensorRT,不过学习tensorRT的道路才刚刚开始。

你可能感兴趣的:(安装教程)