[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。
此外我按照

[TensorRT进击之旅] TensorRT 安装篇_第1张图片

路径是: /usr/lib/x86_64-linux-gnu/libcudnn.so.7 -> libcudnn.so.7.3.1

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

2. pycuda 安装

我的环境是Ubuntu16.04,因为依赖装得比较多,所以这个很简单,一条命令搞定了 pip3 install pycuda ,详细过程可以参考下面。
https://wiki.tiker.net/PyCuda/Installation/Linux/Ubuntu
另:
由于公司内部各个python版本共用一个 pip3 ,所以为了安装到指定的 python3.5 目录下,是通过
pip3.5 install -t /home/superuser/.local/lib/python3.5/site-packages pycuda 进行安装的,其中 -t 后面跟上python3.5 版本的安装路径,也就是pip3.5 的安装路径,我发现其实 pip3.5 install -t /home/superuser/.local/lib/python3.5/site-packages pycudapip3.5 install pycuda 是等价的,因为pip3 与 python3 一样,都是个软连接,而pip3.5 就已经是编译的命令了。

3. 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
结果如上。
[TensorRT进击之旅] TensorRT 安装篇_第2张图片

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

4. 在使用python API 调用 import tensorrt as trt 时,出现_py_Zero 异常:

Traceback (most recent call last):
  File "", 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)。

5. tensorflow 安装

以4中的pip3源,安装了 tensorflow :
pip3 install tensorflow==1.12.0 --user ,非root环境下记得加上 --user。

你可能感兴趣的:(TensorRT)