[TensorRT进击之旅] TensorRT 安装篇

11月21、22两天参加了苏州的NVIDIA GTC 2018大会,各大厂商把TensorRT 用的神乎其神,京东无人柜在TRT的加成之下,模型能搞提升一倍,效果可观。

  1. CUDA / CUDNN 版本修改
    TensorRT5 的安装依赖 cuda 9.0 和 cuDNN 7.3.1 所以我矫枉过正,把cuda 9.2 拉回到了 cuda 9.0,并重新配置了 cuDNN。
    此外我按照

在这里插入图片描述

这个安装过程相对简单,不再赘述。

  1. pycuda 安装
    我的环境是Ubuntu16.04,因为依赖装得比较多,所以这个很简单,一条命令搞定了 pip3 install pycuda ,详细过程可以参考下面。
    https://wiki.tiker.net/PyCuda/Installation/Linux/Ubuntu

  2. TRT
    在编译好TRT 的例子之后,运行 sample_googlenet 发现报异常,缺少 libnvinfer.so.5 ,google了一下原因(link),原来是需要将 TRT 编译生成的lib 都拷贝到系统lib中:在编译好TRT 的例子之后,运行 sample_googlenet 发现报异常,缺少 libnvinfer.so.5 ,google了一下原因(link),原来是需要将 TRT 编译生成的lib 都拷贝到系统lib中:
    sudo cp TensorRT-5.XXX/targets/x86_64-linux-gnu/lib/lib* /usr/lib/
    拷贝完成后,再运行一遍,发现OK了。
    运行了一个./sample_onnx_mnist_debug
    结果如上。
    在这里插入图片描述

需要安装的小伙伴还是需要看安装手册。
重点参考一下 CUDA,CUDNN和 TRT的安装手册。

  1. 在使用python API 调用 import tensorrt as trt 时,出现_py_Zero 异常:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/xxx/anaconda3/lib/python3.6/site-packages/tensorrt/__init__.py", line 1, in <module>
    from .tensorrt import *
ImportError: /home/xxx/anaconda3/lib/python3.6/site-packages/tensorrt/tensorrt.so: undefined symbol: _Py_ZeroStruct

查了一下,问题是tensorrt 仅支持 python3.5 ,不支持 python3.6,所以使pip3 install tensorrt-5.0.2.6-py2.py3-none-any.whl 默认把 tensorrt安装在了 /home/xxx/anaconda3/bin/python3 目录下,这样是找不到的,于是我将 pip3 修改为 python3.5 所在的环境,命令如下:
python3.5 -m pip install --upgrade --force-reinstall pip,修改后 which pip3 发现指向了 /home/xxx/.local/bin/pip
在修改完之后,需要将此前的所有whl重新安装一遍,通过pip3 install tensorrt-5.0.2.6-py2.py3-none-any.whl 就可以了。
运行 python3.5 -c "import tensorrt as trt; print(trt.\_\_version\_\_)" 打印:5.0.2.6
相关链接(link)。

猜你喜欢

转载自blog.csdn.net/sinat_21720047/article/details/84447350