Ubuntu在docker中安装TensorRT7

本文以TensorRT7.2.3.4为例。

Environment

  1. 硬件环境:CPU:英特尔X86处理器 GPU:GeForce 2080Ti
  2. 软件环境:Ubuntu16.04/Ubuntu18.04
  3. 虚拟环境:Docker 19.03以上版本

NVIDIA Driver

参考TensorRT7.2.3安装准备,TensorRT7最低需要CUDA10.2以上版本,所以要求你的驱动所支持的CUDA最高版本要不低于10.2。

宿主机下

1. 卸载原驱动:

$ sudo apt remove --purge nvidia-*

2. 安装新驱动:

进入英伟达驱动下载,按类型搜索下载驱动安装包。
本文选用支持CUDA11.2的460.91.03版本
运行$ sudo sh NVIDIA-Linux-x86_64-460.91.03.run按提示安装即可。

3. 更新docker

若使用容器,还需相应更新nvidia-docker-runtime,运行命令:

$ sudo apt install nvidia-docker-runtime

注: 若apt未能索引到nvidia-docker-runtime,可以尝试更换为:

$ sudo apt install nvidia-container-runtime

Docker

$ docker run -itd --name=tensorrt_test -h tensorrt_test -v /home/nas:/home/data nvidia/cuda:10.2-devel-ubuntu16.04 bash
  • --name:容器名
  • -h:容器的host名
  • -v:目录映射。主机目录:容器目录
  • nvidia/cuda:10.2-devel-ubuntu16.04:公共镜像,可自行到docker-hub中拉取需要的镜像。
    进入容器$ docker exec -it tensorrt_test bash

CUDA

TensorRT7.2.3.4支持10.2, 11.0 update 1, 11.1 update 1, and 11.2 update 1,自己选择合适版本下载安装。本文使用11.0update1。

1. 下载CUDA安装包

Installer Type推荐选择runfile(local)
$ wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run

2. 安装cuda

$ sudo sh cuda_11.0.3_450.51.06_linux.run

#..一堆协议说明...
accept/decline/quit: accept  #接受协议

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64?
(y)es/(n)o/(q)uit: n  #是否安装显卡驱动,由于已经安装显卡驱动,选择n

Install the CUDA 11.0 Toolkit?(y)es/(n)o/(q)uit: y #是否安装CUDA工具包,选择y

Enter Toolkit Location
[ default is /usr/local/cuda-11.0 ]: #工具包安装路径,默认回车即可,也可根据自己情况修改路径

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y #添加软链接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里建议选no,因为指定该链接后会将cuda指向这个新的版本。

Install the CUDA 11.0 Samples?
(y)es/(n)o/(q)uit: n #安装样例,这里看自己情况

Enter CUDA Samples Location
 [ default is /root ]:  #如果上面选择n则无需管该项,否则样例安装地址自己选择

# ***安装信息***
Installing the CUDA Toolkit in /usr/local/cuda-11.0 ...

Finished copying samples.

===========
= Summary =
===========
Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-11.0
Samples:  Not Selected

Please make sure that
 -   PATH includes /usr/local/cuda-11.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.0/lib64, or, add /usr/local/cuda-11.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-11.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-11.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver.

To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:

    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_6388.log
# ***安装完成***

若安装过程中出现Missing recommended library错误,运行下面命令安装相关依赖:
$ sudo apt install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3. 配置CUDA环境变量

修改~/.bashrc文件在文件末尾添加环境变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

保存后还需使其生效: $ source ~/.bashrc

注意: 上面在设置环境变量时,使用的是cuda,而不是cuda-11.0,这主要是为了方便我们切换cuda版本,可以让我们不用每次都去该环境变量的值。当我们想使用其他版本时,只需要删除该软链接,然后重新建立指向另一版本CUDA的软链接即可(注意软连接名称还是cuda,因为要与~/.bashrc文件里设置的保持一致)

$ sudo rm -rf cuda
$ sudo ln -s /usr/local/cuda-10.2 /usr/local/cuda

4. 安装cudnn

  • 进入cudnn下载选择8.1版本安装包下载。
  • 解压$ tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
  • 将cudnn库文件复制到cuda相应目录:
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda/include 
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64 
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

注意: 命令里使用的软链接地址,如果软链接指向的不是所需目标路径请修改命令为具体的绝对路径。

TensorRT

1. 下载TensorRT7安装包

进入TensorRT7.2.3下载选择合适版本下载安装包,推荐选择TAR package。本文选择TensorRT-7.2.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.1.tar.gz

2. 解压

$ version=7.2.3.4
$ os=Ubuntu-16.04
$ arch=$(uname -m)
$ cuda=cuda-11.0
$ cudnn=cudnn8.1
$ tar xzvf TensorRT-${version}.${os}.${arch}-gnu.${cuda}.${cudnn}.tar.gz

3. 配置环境变量

在~/.bashrc末尾增加export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:TensorRT-7.2.3.4/lib
使其生效$ source ~/.bashrc

4. 安装python包

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

5. 安装graphsurgeon

$ cd TensorRT-${version}/graphsurgeon
$ sudo pip3 install graphsurgeon-0.4.5-py2.py3-none-any.whl

6. 安装onnx-graphsurgeon

$ cd TensorRT-${version}/onnx_graphsurgeon
$ sudo pip3 install onnx_graphsurgeon-0.2.6-py2.py3-none-any.whl

7. 安装UFF(可选)

如果你需要使用带有转换tensorflow模型的tensorrt还需安装UFF

$ cd TensorRT-${version}/uff
$ sudo pip3 install uff-0.6.9-py2.py3-none-any.whl

检查安装which convert-to-uff

8. 安装pycuda并验证tensorrt

$ sudo pip3 install pycuda==2020.1

进入python环境

import tensorrt
import pycuda

如果均能正常导入则安装成功

Guess you like

Origin blog.csdn.net/wq_0708/article/details/119545760