ubuntu安装TensorRT

ubuntu18.04+cuda11.2+cudnn8.0.5+Tensorrt7.2.2.3安装

环境

系统:ubuntu 18.04

编译器:gcc 7.5

如果之前安装过deb格式的tensorrt,需要卸载

卸载tensorrt

sudo apt-get purge "libnvinfer*"
sudo apt-get purge graphsurgeon-tf onnx-graphsurgeon
sudo apt-get purge uff-converter-tf

如果用pip安装过对应的包(根据自己安装过的包卸载)

sudo pip3 uninstall tensorrt
sudo pip3 uninstall uff
sudo pip3 uninstall graphsurgeon
sudo pip3 uninstall onnx-graphsurgeon

删除key

由于之前安装过其他版本的tensorrt,安装新的tensorrt时会默认安装key中最新版本的tensorrt,因此想要安装老版本的tensorrt需要删除其他版本的key。

查看key

sudo apt-key list

查看key列表

ls /etc/apt/source.list.d

删除key

sudo rm /etc/apt/source.list.d/nv-tensorrt-ubuntu1804-cuda11.3-trt8.0.0.3-ea-20210423.list

删除安装包

sudo rm -rf /var/nv-tensorrt-repo-cuda11.3-trt8.0.0.3-ga-20201211

安装tensorrt

官网教程

deb版本

cuda和cudnn也要是deb安装

os="ubuntuxx04"
tag="cudax.x-trt8.x.x.x-ea-yyyymmdd"
sudo dpkg -i nv-tensorrt-repo-${os}-${tag}_1-1_amd64.deb
sudo apt-key add /var/nv-tensorrt-repo-${tag}/7fa2af80.pub

sudo apt-get update
sudo apt-get install tensorrt

验证

dpkg -l | grep TensorRT

进入/var/nv-tensorrt-repo-ubuntu1804-cuda11.1-trt7.2.3.4-ga-20210226

安装剩下的包,eg:uff

sudo apt-get install uff-converter-tf

如果要安装python接口,下载压缩包版本的tensorrt,在解压后的目录中通过pip安装对应的whl

sudo pip3 install TensorRT-${version}/python/tensorrt-*-cp3x-none-linux_x86_64.whl

可能会遇到部分包缺失依赖

libnvinfer-bin : Depends: libnvinfer-plugin7 (= 7.2.2-1+cuda11.1) but it is not going to be installed
                  Depends: libnvparsers7 (= 7.2.2-1+cuda11.1) but it is not going to be installed
                  Depends: libnvonnxparsers7 (= 7.2.2-1+cuda11.1) but it is not going to be installed

安装对应的依赖

sudo apt-get install libnvinfer-plugin7 (= 7.2.2-1+cuda11.1

验证

cp /usr/src/tensorrt ~/
cd ~/tensorrt/sample/sampleMNIST
make
cd ~/tensorrt/bin
./sample_mnist

如果提示数据不存在,进入data/mnist目录,运行download_pgms.py下载数据

编译好的压缩包安装

解压压缩包

version="8.x.x.x"
arch=$(uname -m)
cuda="cuda-x.x"
cudnn="cudnn8.x"
tar xzvf TensorRT-${version}.Linux.${arch}-gnu.${cuda}.${cudnn}.tar.gz

写入路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<TensorRT-${version}/lib>

如果要安装python接口,在解压后的目录中通过pip安装对应的whl

sudo pip3 install TensorRT-${version}/python/tensorrt-*-cp3x-none-linux_x86_64.whl

验证

cp /usr/src/tensorrt ~/
cd ~/tensorrt/sample/sampleMNIST
make
cd ~/tensorrt/bin
./sample_mnist

如果提示数据不存在,进入data/mnist目录,运行download_pgms.py下载数据

可能遇到的问题

libm.so.6: version `GLIBC_2.27‘ not found

问题libm.so.6: version `GLIBC_2.27‘ not found的解决方法

终端输入strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_

ubuntu16.04会得到:GLIBC_2.2.5GLIBC_2.4GLIBC_2.15GLIBC_2.18GLIBC_2.23

ubuntu18.04会得到:GLIBC_2.2.5GLIBC_2.4GLIBC_2.15GLIBC_2.18GLIBC_2.23GLIBC_2.24GLIBC_2.25GLIBC_2.26GLIBC_2.27

本质上是ubuntu16.04安装成了ubuntu18.04的版本

原文地址:https://www.cnblogs.com/xiaowk/p/15205508.html