TensorRT安装 & 环境配置

TensorRT安装&环境配置

环境:

ubuntu14.04, Tesla P4, Python3.4, Cuda8.0, Cudnn7.1.3python

概述:

从装有Ubuntu14.04和Python3.4的服务器上实现环境的配置。本文记录了在配置各个必要组件的环节中遇到的问题。linux

1. 配置Nvidia驱动

服务器显卡是Tesla的P4显卡,在2019.6.13这一天Nivida官网适用Linux-64bit,cuda tookit 8.0的对应驱动(这里指的只有runfile方式)
也只有一个能够下载,即NVIDIA-Linux-x86_64-384.66.run。在下载安装过程当中遇到了如下几个问题。web

  1. 第一个问题是下载问题。
    Nvidia-Linux-~.run文件下载下来后,显示的文件大小和官网那个上标识的97m不一样,我下载了两次都是95.55m和103m,在安装的时候都遇到了错误。
    具体就是执行 ./Nvidia-Linux-~.run --no–opengl-- 以后,系统会进行check,报错提示我check Error,并返回两串数字串(多是.run的错误位置)。
    这里的解决办法就是从新下载驱动,这里的问题就是驱动受损,我从新下载第三次后成功。
  2. 第二个问题是意外。
    若是lspci | grep NVIDIA 没有显示NVIDIA卡,又肯定把卡插在了电脑里,那就说明,插卡的卡槽出了问题或者卡出了问题。
  3. 第三个问题是驱动瓦特问题
    若是前面的步骤都没有问题,就是驱动瓦特了,重装一遍便可。

#卸载原来的驱动(残留在服务器里,还没办法用)
$sudo apt-get remove --purge nvidia*
# 到指定位置寻找Nvidia驱动
cd /root/yanxu/runner/
# 执行安装(要改成x权限)
./NVIDIA-Linux-x86_64-384.66.run -no-opengl-files
# 检测
nvidia-smi
打印了显卡信息,成功。


我使用的服务器,不用考虑图形界面问题。另外,服务器自己就已经禁止了nouveau,因此看了其余教程后以为我不用作nouveau的禁用。
ubuntu

#2.配置Cuda8.0服务器

驱动配置好了以后,根据须要配置cuda和cudnn,在cuda8.0的基础上安装最低版本的cudnn。ide

  1. cudnn的版本选择很重要,看了官网的Support Matrix Guide
    以后,发现cudnn最低也要使用7.x。尝试安装果cudnn5.x,在使用的时候会报错提示找不到lib~.so.7 ,因此仍是要安装cudnn7.x.
  2. cuda8.0安装没什么问题,跟着网上教程,记得更改环境变量便可。(不太了解linux使用root或者各个用户安装有什么不一样,我安装到了/usr/local/cuda-8.0里面)

#3. 安装tensorrt
官方的安装有两种主流方法,基于debian的安装方法和基于tar的安装方法。svg

  1. Debian方法安装

前提:
svn

  1. 要利用root权限才能安装
  2. TensorRT只能安装到固定的路径下
  3. CUDA也要用debian package来安装
  1. Tar方法能够安装到任何路径下,可是须要提早本身安装好全部的依赖(cuda,cudnn等)



    #####具体的命令参考Installation-Guide的第四章,介绍了C++和Python两种接口的tensorRT安装。

#4. 安装pycuda
暂时选择python接口,须要安装对应版本的pycuda。按照网上教程直接安装了pycuda,而后跑demo代码,遇到了一些问题,下面简单介绍遇到的问题。ui

  1. 跑caff_mnist.py的时候,pycuda报错


    Traceback (most recent call last):

    File “caffe_mnist.py”, line 74, in

    import pycuda.driver as cuda

    File “/usr/local/lib/python3.4/dist-packages/pycuda/driver.py”, line 5, in
    from pycuda._driver import * # noqa

    ImportError: libnvidia-fatbinaryloader.so.367.57: cannot open shared object file: No such file or directory

    就是提示找不到这个.so文件,可是,首先我前一天晚上装好的是Nvidia.384的驱动,并非367。我就考虑到这个报错可能有两个缘由:
  1. 服务器上安装过其余版本的Nvidia367驱动,在我自动pip3 install pycuda==2018.1的时候,pycuda配置的那个版本。
  2. 我在反复安装pycuda的过程当中误删了相关的.so文件,可能也会致使显卡驱动瓦特掉(不能用了)。


    果真,检查了nvidia-smi以后,出现了错误,输入命令lspci | grep NVIDIA发现显卡还在,因此就是驱动挂了。决定重装一下驱动,https://blog.csdn.net/weixin_38570251/article/details/80001291. 后来装完驱动重启以后,跑脚本就解决了这个问题。

#5. Pillow安装过程当中的一个小问题
由于第一个demo要使用PIL,因此要在python3.4上安装Pillow,发现直接pip3 install Pillow以后会报错,具体返回 AttributeError parallel,
而后查阅资料发现可能最新版本的Pillow和python3.4不兼容,偷懒费大事实锤了,最后 pip3 install Pillow==4.0.0,而后跑demo发现能跑通了。.net