GPU服務器上的tensorrt環境搭建
文章目錄
- GPU服務器上的tensorrt環境搭建
- 1.拉取docker服務器上的支持cuda、cudnn的鏡像檔案
- 2.設定環境變數并下載相關依賴
- 2.1安裝cuda和cudnn
- 2.2 pytorch和torchvision安裝
- 2.3 編譯安裝opencv4.4
- 2.4 安裝pycuda
- 2.5 tensorrt安裝
- 2.6 添加系統環境變數
在生產實際中,我們通常通過在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.設定環境變數并下載相關依賴
設定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
更新環境源變數:
apt-get update
apt-get upgrade
安裝相關依賴:
apt-get install software-properties-common
apt-get upgrade
apt-get install -y python3-pip
apt-get install -y vim
apt-get install -y wget
apt-get install unzip
pip 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
tar -zxvf opencv-4.4.0.zip
tar -zxvf xfeatures2d.zip
# 將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="5.3" \
-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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298457.html
標籤:其他
下一篇:EISeg分割標注軟體使用
