一. 实验环境
ubuntu20.04: NVIDIA GeForce RTX 3080
二. 安装方法
11.2.0-cudnn8-devel-ubuntu20.04
拉取命令
docker pull nvidia/cuda:11.2.0-cudnn8-devel-ubuntu20.04
(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点击立即下载,如下图所示。
4.2 选择对应的版本
4.3 选择同意,选择对应的版本,如下图所示。
4.4 选择对应的tar包进行下载,如下图所示。
下载选择的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需要用到。
(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接口
出现下图就表示安装成功。
3. 全自动安装
优点:一次成功,可以拿着 Dockerfile 到处跑,即使后期 NVIDIA 更新了新版本的 TensorRT,只需要对 Dockerfile 做微小改动即可;
缺点:要求较高,需要你熟悉 Dockerfile 的定制,熟悉对 TensorRT 的各种安装方式及注意事项;
总结
第一种 tar 包全手动安装不推荐,想尝试一下也可以,但是如果一天还没有解决建议放弃;
第二种半自动安装适合大多数人,尤其是时间紧、对 docker 操作熟悉的朋友;
第三种需要你熟悉定制Dockerfile,同时对 TensorRT 的各种安装方式及注意事项比较熟悉;