GPU服务器上的tensorrt环境搭建

2023-11-13

GPU服务器上的tensorrt环境搭建


在生产实际中,我们通常通过在GPU服务器上docker镜像环境搭建用于加速深度学习图像识别推理的tensorrt的环境。

1.拉取docker服务器上的支持cuda、cudnn的镜像文件

Docker Hub上拉取适合服务器的镜像

docker pull nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04

运行拉取的镜像并将GPU挂载到该容器上:

docker run --name tensorrt --gpus all -v $PWD:/home -it nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 /bin/bash

2.设置环境变量并下载相关依赖

更新环境源变量:

apt-get update
apt-get upgrade
apt-get install software-properties-common
apt-get upgrade

设置python3为默认python执行器:

update-alternatives --install /usr/bin/python python /usr/bin/python2 100
update-alternatives --install /usr/bin/python python /usr/bin/python3 150
update-alternatives --config python

也可以通过建立软连接的方式将输入python指令为调用python3:
首先查找python3 的位置, 然后通过软连接将python和python3连接,当存在其他软连接时,可以将其先删除,如图,在/usr/bin查看所有文件:
在这里插入图片描述

whereis python3
# 软连接
ln -s /usr/bin/python3.6 /usr/bin/python

修改后:
在这里插入图片描述
安装相关依赖:

apt-get install -y python3-pip
apt-get install -y vim
apt-get install -y wget
apt-get install unzip
pip3 install pyyaml
apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
apt-get install -y curl
apt-get install -y libgtk-3-dev

2.1安装cuda和cudnn

查看自己显卡可支持的版本:

nvidia-smi

在这里插入图片描述
Nvidia官网下载像对应的cuda版本,可以下载低于自己系统支持的版本,下载之前可以看看pytorch官网中历史版本中对应的cuda和cudnn所需要的版本,以免后续安装pytorch时出现版本不符合的情况。在cuda下载选项中选择自己系统合适的版本,建议选择cuda的runfile[local]安装包。

安装cuda,将下载好的cuda文件复制到镜像挂载目录下,执行sh命令进行安装。

sh cuda_*.run

安装过程中输入 accept 接受条款,再通过上下键进行选择安装。
安装cudnn,该步骤需要注册Nvidia账号,再在cudnn下载地址中选择所安装的cuda所对应的cudnn,我安装的为cuda10.2,建议选择对应的cudnn8.0.4
注:在配置tensorrt7.*版本时,建议配置为cuda10.2和cudnn8.0.4,配置8.0.2会出现一下的警告,虽然可以依旧能够完成推理,但建议安装配套的版本。

[TensorRT] WARNING: TensorRT was linked against cuDNN 8.0.4 but loaded cuDNN 8.0.2

cudnn建议下载对应版本的Runtime 、Developer 、Code Samples 这三个文件,下载完成后复制到容器挂载的目录下,在分别执行以下指令:

dpkg -i libcudnn8_8.0.4.*+cuda10.2_amd64.deb
dpkg -i libcudnn8-dev_8.0.4.*+cuda10.2_amd64.deb
dpkg -i libcudnn8-doc_8.0.4.*+cuda10.2_amd64.deb

2.2 pytorch和torchvision安装

相关版本可以在pytorch历史稳定版本查找自己安装对应的python、cuda和cudnn、系统为linux的版本,我安装的是(cu102/torch-1.7.1-cp36-cp36m-linux_x86_64.whl和cu102/torchvision-0.8.2-cp36-cp36m-linux_x86_64.whl),将下载好的文件复制到容器挂载的目录下,通过pip install …命令执行安装如:

pip install torch-1.7.1-cp36-cp36m-linux_x86_64.whl
pip install torchvision-0.8.2-cp36-cp36m-linux_x86_64.whl

2.3 编译安装opencv4.4

百度云链接
提取码:cb0s
执行下面命令,完成编译前准备工作:

# 解压相关文件
tar -zxvf opencv_contrib-4.4.0.tar.gz
unzip opencv-4.4.0.zip
unzip xfeatures2d.zip
mv opencv_contrib-4.4.0/ opencv_contrib/
# 将xfeatures2d中的文件复制到opencv_contrib/modules/xfeatures2d/src文件夹下
cp -r xfeatures2d/* opencv_contrib/modules/Xfeatures2d/src
# 进入opencv-4.4.0文件夹内,并创建build文件夹,并进入build文件夹内
cd opencv-4.4.0 && mkdir build
cd build
# 将 opencv-4.4.0文件夹内的modules/features2d/拷贝到build目录下
cp -r ../modules/features2d/ .

开始安装编译:

cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.1" \ 
-D CUDA_ARCH_PTX=""  \ 
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ 
-D WITH_GSTREAMER=ON \ 
-D WITH_LIBV4L=ON \ 
-D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON \ 
-D BUILD_TESTS=OFF \ 
-D BUILD_PERF_TESTS=OFF \ 
-D BUILD_EXAMPLES=OFF \ 
-D CMAKE_BUILD_TYPE=RELEASE \  
-D CMAKE_INSTALL_PREFIX=/usr/local ..

make -j3
make instal

注:cmake最后一行中的CMAKE_INSTALL_PREFIX=为opencv编译安装的保存位置

2.4 安装pycuda

安装依赖:

apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

安装pycuda

pip3 install pyzmq==17.0.0
pip3 install pycuda

2.5 tensorrt安装

Nvidia官网选择下载的安装包,我下载的是 —> TensorRT-7.2.1.6.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz,首先解压安装包,然后再选择合适的python版本进行安装:

tar -zxvf TensorRT-7.2.1.6.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.0.tar.gz
cd TensorRT-7.2.1.6/python
pip install tensorrt-7.2.1.6-cp36-none-linux_x86_64.whl

为避免在编译过程中找不相关库文件,建议将Tensorrt部分文件拷贝到系统路径下:

# TensorRT-7.2.1.6路径下
cp -r lib/* /usr/lib
cp -r include/* /usr/include

2.6 添加系统环境变量

将tensorrt 、 cuda 、 opencv4 的安装路径加入环境变量

vim ~/.bashrc
#添加以下在.bashrc文件的末尾
export PATH=/home/TensorRT-7.2.1.6/include:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/TensorRT-7.2.1.6/lib

export CUDA_HOME=/usr/local/cuda-10.2
export PATH=$PATH:$CUDA_HOME/bin
export CUDA_INSTALL_DIR=/usr/local/cuda-10.2
export CUDNN_INSTALL_DIR=/usr/local/cuda-10.2
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH

export PATH=/usr/local/include/opencv4:$PATH

最后在source以下.bashrc

source ~/.bashrc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GPU服务器上的tensorrt环境搭建 的相关文章

随机推荐

  • Intra ERC Scheme

    Iterative Method First initial the corrupted MB with neighboring MB information then use iterative techniques to conceal
  • 机器学习中梯度下降法和牛顿法的比较

    在机器学习的优化问题中 梯度下降法和牛顿法是常用的两种凸函数求极值的方法 他们都是为了求得目标函数的近似解 在逻辑斯蒂回归模型的参数求解中 一般用改良的梯度下降法 也可以用牛顿法 由于两种方法有些相似 我特地拿来简单地对比一下 下面的内容需
  • Linux日志分析工具之AWStats

    Linux日志分析工具之AWStats 博客主页 微笑的段嘉许博客主页 欢迎关注 点赞 收藏 留言 本文由微笑的段嘉许原创 CSDN首发时间 2023年2月3日 坚持和努力一定能换来诗与远方 作者水平很有限 如果发现错误 一定要及时告知作者
  • python单元测试之pytest

    前提 需要安装pytest和pytest html 安装pytest 在控制台输入 命令 pip install pytest 进行下载安装 安装pytest html 在控制台输入 命令 pip install pytest html 进
  • syntax error near unexpected token `newline'脚本无法执行

    问题描述 执行run sh脚本是报错 报错信息如下 data app information provider No such file or directory command not found run sh line 4 syntax
  • python 多并发竞争微信token刷新问题的解决方案

    看日志 正常时候的日志 2017 09 24 07 35 30 723 views py line 34 INFO GetToken from Redis 2017 09 24 07 35 31 342 views py line 24 I
  • Windows Visual Studio Fortran MS-MPI配置

    0 Visual Studio及 Intel Fortran版本信息 Windows版本为Windows11 visual studio 版本采用的是Visual Studio 2019 版本 16 11 Intel Fortran 采用的
  • Unity2018.3 笔记 ——prefab解除绑定

    Unity2018 3可以对Prefab 进行嵌套操作 并且许多操作都要在Prefab Editor下进行 但是在Prefab的操作会影响到所有预制体 如果只是想对某一个Prefab删除特定的对象 就要解除对其原有Prefab的内容进行解绑
  • 电脑或网页打开很慢是什么原因?

    网页打开很慢是什么原因 一 电脑的配置太低会 电源里调为高性能 电脑配置太低是导致打开网页速度过慢的一个根本的原因 首先我们可以查看自己电脑配置到底如何 这样就可以查看到电脑的CPU和内存两者所占用率是怎样的 如果两者占有的比例都是很高的
  • java——多线程

    文章目录 Java 的并发基础知识 1 创建线程 2 同步方法和同步代码块 3 线程安全的容器 4 volatile 关键字 5 Lock 和 Condition 接口 Java 多线程编程的基本框架 1 创建和启动线程 2 线程的状态转换
  • 深入了解struts中的struts-config.xml

    弄清楚struts config xml中各项元素的作用 对于我们构建web项目有莫大的好处
  • 拉取Docker镜像时提示 no space left on device 问题解决

    问题原因 出现此问题一般是 docker 根目录空间不足导致 解决方法 修改其 Docker Root Dir 的值 指向一个更大空间的目录 方法一步骤 使用软链接 我们知道在操作系统当中 默认情况下 Docker 容器的存放位置在 var
  • Maven打包详解(“There are test failures”)

    Maven打包详解 There are test failures 以下操作都是在IDEA软件内进行的 第一步 idea界面中选择右边的Maven projects 界面 第二步 选择目标项目文件下的Lifecycle目录下的clean 双
  • 请用前端写一段计算请假时间的代码

    当然可以 首先 我们需要先确定请假时间所需要的信息 比如请假的开始时间和结束时间 然后我们可以使用 JavaScript 的 Date 对象来获取这些信息 并使用 Date getTime 方法来获取它们的毫秒表示形式 接下来就可以计算出两
  • 购物H5商城架构运维之路

    一 引言 公司属于旅游行业 需要将旅游 酒店 购物 聚合到线上商城 通过对会员数据进行聚合 形成大会员系统 从而提供统一的对客窗口 二 业务场景 围绕更加有效地获取用户 提升用户的LTV Life Time Value 生命周期总价值 的整
  • 软件设计师笔记之操作系统基础知识

    操作系统基础知识 考点梳理 操作系统作为计算机科学最为基本的理论基础和分支领域之一是软考中必须重点掌握的知识 1 操作系统的内核 2 操作系统的五大管理功能 进程管理 存储管理 设备管理 文件管理 作业管理 3 网络操作系统和嵌入式操作系统
  • 2020-11-07 layui图片层实现查看大图效果

    之前主要使用element ui和 ant design 框架来实现前端页面 后来在公司需要使用layui开发 一开始接触这个框架感觉美观程度不如之前用的element ui和antd 觉得layui不好用 比较抵触这个框架 后来用多了发现
  • 部署代码生成模型CodeGeeX2

    模型下载 大家需要从huggingface下载CodeGeex2的模型文件 可以直接下载到本地 也可以git clone 这里给huggingface的地址 大家自行下载 THUDM codegeex2 6b Hugging Face 模型
  • pytorch加载保存查看checkpoint文件

    參考以下 https blog csdn net joyce peng article details 104133594 ps 有大佬有CSDN转发博客的实操经验的麻烦分享下
  • GPU服务器上的tensorrt环境搭建

    GPU服务器上的tensorrt环境搭建 文章目录 GPU服务器上的tensorrt环境搭建 1 拉取docker服务器上的支持cuda cudnn的镜像文件 2 设置环境变量并下载相关依赖 2 1安装cuda和cudnn 2 2 pyto