Ubuntu18.04 配置TensorRT6.0爬坑记录

首先这是一个不完美的配置,因为Cudnn版本和TensorRT的版本并没有完全对上,运行的时候会报警告。

另:如果不做第四步TensorRT的配置大家可以将这篇文章视为一篇简单的深度学习环境配置文。

列一下版本号

  • Ubuntu 18.04
  • Cuda:10.1
  • Cudnn:7.6.0
  • Miniconda3:4.7.10
  • Pycharm:2019.2.3
  • TensorRT:6.0.1.5

步骤:

  1. Nvidia驱动
  2. Cuda和Cudnn
  3. Miniconda和Pycharm
  4. 安装并在环境中配置TensorRT

安装Nvidia驱动

提到Ubuntu安装Nvidia驱动大家应该会想起被nouveau支配的恐惧,因为需要各种命令去禁用nouveau才能顺利安装上Nvidia驱动。不过在这次配置中我并没有手动禁用nouveau的操作,而是采用了官方源的方式把驱动自动安装。

ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

上面一行查询可用的驱动,下面一行进行自动安装,然后重启就好了。

Cuda和Cudnn

首先下载Cuda安装包(.runfile格式),Cudnn(只下载cuDNN Library for Linux就好)。

 

进入下载目录然后运行cuda安装文件。

sudo sh cuda_10.1.243_418.87.00_linux.run

配置环境变量。在~/.bashrc中加入如下:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

解压Cudnn包,得到的是一个名为cuda的文件夹。推荐大家用命令行,可是如果跟我一样不爱写代码可以直接右键Extract Here就好。

然后将include和lib64中的文件分别拷到/usr/local/cuda下的这两个目录中。还是推荐大家用命令行,如果不爱写代码可以用sudo nautilus在GUI中进行拖拽。

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

Miniconda和Pycharm

首先下载Miniconda(推荐清华源,Anaconda功能全面带界面,不过体积较庞大,看个人习惯)和Pycharm(有学生证的同学可以下专业版)。

然后进入安装目录运行Miniconda安装包顺着过程安装就好。注意有个是否使用conda init,没选的同学需要手动添加conda到环境变量中,选了就是使用conda初始化你的bash。

最后换源,修改conda源与pip源(yes,conda环境中也能使用pip安装管理包),方法来自清华源

conda源修改~/.condarc文件:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

pip源

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

 Pycharm的安装其实就是解压安装包,然后进入目录下的/bin中,运行pycharm.sh就好。但是每次都打开安装目录很不方便,下面介绍如何给pycharm创建一个桌面快捷方式。

首先在~/Desktop下新建一个Pycharm.desktop,输入以下内容

[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=pycharm-2019.2.3
Comment=Pycharm3:The Python IDE
Exec=sh /opt/pycharm-2019.2.3/bin/pycharm.sh
Icon=/opt/pycharm-2019.2.3/bin/pycharm.png
Terminal=false
Categories=Pycharm;

其中/opt/pycharm-2019.2.3是我的安装目录,Exec就是运行pycharm的命令。

安装并在环境中配置TensorRT

首先用conda新建一个环境

conda create -n tensorrt python=3.7
conda activate tensorrt

tensorrt是环境名,python版本为3.7

如果大家看到这里,并且不想配置TensorRT了,可以以一条Pytorch的安装命令完美结束这次配置。

conda install pytorch torchvision cudatoolkit=10.0

如果大家还想继续爬坑,先下载TensorRT安装包。(我选的是Tar包,DEB试过但安装libnvinfer那一步不成功,求大神指导)需要注意的是

 进行解压后进入目录。

 将lib目录添加到环境变量LD_LIBRARY_PATH中:(大家如果不用python API到这里可以直接跳过看Sample)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<eg:TensorRT-6.x.x.x/lib>

用Python API的朋友看这边)然后我们激活刚刚创建的conda环境,首先安装cudatoolkit10.1和cudnn7.6.0

conda install cudatoolkit=10.1
conda install cudnn

进入python文件夹

pip install tensorrt-6.0.1.5-cp37-none-linux_x86_64.whl

进入uff文件夹安装uff

pip install uff-0.6.5-py2.py3-none-any.whl

进入graphsurgeon安装graphsurgeon

pip install graphsurgeon-0.4.1-py2.py3-none-any.whl

安装onnx,numpy,Pillow,pycuda

pip install --no-binary onnx 'onnx==1.5.0'
pip install numpy
pip install Pillow
pip install pycuda

配置基本完成,下面我们运行sample来验证一下。

首先是C++ samples。进入samples文件夹,编辑Makefile.config,找到CUDA_INSTALL_DIR和CUDNN_INSTALL_DIR这一行,把问号去掉,保存关闭。在samples文件夹中make进行编译。

/opt/TensorRT-6.0.1.5/samples$ sudo make

编译成功打开bin目录,运行想运行的程序(运行前先看一眼sample中对应的readme),我试的是sample_fasterRCNN。首先在/data/faster-rcnn中下载权重文件VGG16_faster_rcnn_final.caffemodel,然后回到/bin中运行./sample_fasterRCNN即可。测试用例一共4个下面给大家贴一个。

 下面介绍Python sample。首先用Pycharm打开/samples/python文件夹。(我直接复制出来)

 其中tensorflow和pytorch的sample需要对应框架支持,我只测试了caffe的int8_caffe_mnist。

在data/mnist/目录中下载MNIST数据集,如果像我这样把整个samples/python复制出来的需要在原目录的data/mnist中拷贝文件过来。

 然后运行sample.py,注意用pycharm直接运行会报错找不到libnvinfer,需要在配置中加入环境变量LD_LIBRARY_PATH=/opt/TensorRT-6.0.1.5/lib。

 下面是运行结果。

 首先是一个警告三连(因为conda环境中最高的cudnn版本是7.6.0所以我也没有办法了,特别奇怪的是系统cudnn是7.6.3的时候会运行不下去,希望conda尽快更新cudnn的版本)。

好了这篇配置小白文就到这里,望大家多多指教。

猜你喜欢

转载自www.cnblogs.com/rickyngmo22/p/11650994.html