TensorRT8.2.1.8基于Docker容器快速安装

一. 实验环境
ubuntu20.04: NVIDIA GeForce RTX 3080

二. 安装方法

  1. 全手动安装
    优点:不需要掌握基本的docker操作知识,新手上手快。
    缺点:报错较多,容易出现版本冲突。
  2. 半自动安装
    这种安装方式是通过拉取官方镜像,然后创建容器,在容器内部进行安装,后面的模型转换等工作也是在容器中进行。
    优点:简单方便省心,报错少,对机器上的其他服务不会造成影响,也不会受到其他服务限制,主要是cuda与cudnn版本的限制。
    缺点:需要掌握基本的docker操作知识,对于新手不太友好。
    (1)官网下载对应版本的镜像
    打开nvidia官方的dockerhub镜像库:nvidia/cuda
    完整的镜像列表在这里:nvidia/cuda镜像列表
    根据自己的系统选择合适的镜像,我选择的是:
11.2.0-cudnn8-devel-ubuntu20.04

拉取命令

docker pull nvidia/cuda:11.2.0-cudnn8-devel-ubuntu20.04

TensorRT8.2.1.8基于Docker容器快速安装_第1张图片
(2)运行镜像、创建容器

docker run -it --name tensorrt_test --gpus all -v /home/wanglaiqi/mywork/tensorrt:/tensorrt nvidia/cuda:11.2.0-cudnn8-devel-ubuntu20.04 /bin/bash
--name tensorrt_test  # 容器的名字
-v /home/mywork/tensorrt:/tensorrt  
"
冒号前面是需要映射的外部路径,冒号后面是容器内部路径,经过映射,容器外/home/mywork/tensorrt路径下的内容就会时刻与容器内tensorrt路径下的内容保持一致,不论改动那个路径下的内容,另一个都会随之同步改变,主要是方便上传文件内容。
"

(3)查看cuda和cudnn版本

cat /usr/local/cuda-11.2/version.txt
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

(4)去官网NVIDIA TensorRT下载TensorRT tar包

下载的这个tar放在容器外/home/mywork/tensorrt路径下, 它会自动同步到容器内/tensorrt路径下,下载过程中需要用户创建开发者账号。

4.1 打开连接NVIDIA TensorRT点击立即下载,如下图所示。
TensorRT8.2.1.8基于Docker容器快速安装_第2张图片
4.2 选择对应的版本
TensorRT8.2.1.8基于Docker容器快速安装_第3张图片
4.3 选择同意,选择对应的版本,如下图所示。
TensorRT8.2.1.8基于Docker容器快速安装_第4张图片
4.4 选择对应的tar包进行下载,如下图所示。
TensorRT8.2.1.8基于Docker容器快速安装_第5张图片
下载选择的tar包放在容器外的/home/mywork/tensorrt目录下,会自动同步到容器内的/tensorrt路径下面, 也可以直接使用wget命令直接在容器内下载。

(5)回到容器内进行安装TensorRT

进入容器内的tensorrt路径下,解压刚才下载的tar包
tar -zxvf TensorRT-8.2.1.8.Linux.x86_64-gnu.cuda-11.2.cudnn8.2.tar.gz
解压之后可以 ls 看一下,应该多了一个叫 TensorRT-8.2.1.8 的文件夹

(6)安装vim

apt-get update
apt-get install vim

(7)添加环境变量

vim ~/.bashrc
export LD_LIBRARY_PATH=/tensorrt/TensorRT-8.2.1.8/lib:$LD_LIBRARY_PATH
source ~/.bashrc

(8)安装python
复制下面的所有内容到命令行

apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-dev \
python3-wheel &&\
cd /usr/local/bin &&\
ln -s /usr/bin/python3 python &&\
ln -s /usr/bin/pip3 pip

安装之后查看python版本,后面安装tensorrt需要用到。
TensorRT8.2.1.8基于Docker容器快速安装_第6张图片
(9)使用pip 安装对应的TensorRT库
注意:一定要使用pip安装tar附带的whl包

cd /TensorRT-8.2.1.8/python

这个路径下一共有 4 个whl包,对应四个不同的 python 版本,根据第 8 步得到的 python 版本选择即可。

pip3 install tensorrt-8.2.1.8-cp38-none-linux_x86_64.whl

在这里插入图片描述
(10)测试TensorRT 的python接口
出现下图就表示安装成功。
TensorRT8.2.1.8基于Docker容器快速安装_第7张图片
3. 全自动安装
优点:一次成功,可以拿着 Dockerfile 到处跑,即使后期 NVIDIA 更新了新版本的 TensorRT,只需要对 Dockerfile 做微小改动即可;
缺点:要求较高,需要你熟悉 Dockerfile 的定制,熟悉对 TensorRT 的各种安装方式及注意事项;

总结
第一种 tar 包全手动安装不推荐,想尝试一下也可以,但是如果一天还没有解决建议放弃;
第二种半自动安装适合大多数人,尤其是时间紧、对 docker 操作熟悉的朋友;
第三种需要你熟悉定制Dockerfile,同时对 TensorRT 的各种安装方式及注意事项比较熟悉;

你可能感兴趣的:(linux-shell,生活与工作,docker,容器,linux)