Ubuntu18.04 配置TensorRT6.0爬坑記錄


首先這是一個不完美的配置,因為Cudnn版本和TensorRT的版本並沒有完全對上,運行的時候會報警告。

另:如果不做第四步TensorRT的配置大家可以將這篇文章視為一篇簡單的深度學習環境配置文。

列一下版本號

  • Ubuntu 18.04
  • Cuda:10.1
  • Cudnn:7.6.0
  • Miniconda3:4.7.10
  • Pycharm:2019.2.3
  • TensorRT:6.0.1.5

步驟:

  1. Nvidia驅動
  2. Cuda和Cudnn
  3. Miniconda和Pycharm
  4. 安裝並在環境中配置TensorRT

安裝Nvidia驅動

提到Ubuntu安裝Nvidia驅動大家應該會想起被nouveau支配的恐懼,因為需要各種命令去禁用nouveau才能順利安裝上Nvidia驅動。不過在這次配置中我並沒有手動禁用nouveau的操作,而是采用了官方源的方式把驅動自動安裝。

ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

上面一行查詢可用的驅動,下面一行進行自動安裝,然后重啟就好了。

Cuda和Cudnn

首先下載Cuda安裝包(.runfile格式),Cudnn(只下載cuDNN Library for Linux就好)。

 

進入下載目錄然后運行cuda安裝文件。

sudo sh cuda_10.1.243_418.87.00_linux.run

配置環境變量。在~/.bashrc中加入如下:

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

解壓Cudnn包,得到的是一個名為cuda的文件夾。推薦大家用命令行,可是如果跟我一樣不愛用命令行可以直接右鍵Extract Here就好。

然后將include和lib64中的文件分別拷到/usr/local/cuda下的這兩個目錄中。還是推薦大家用命令行,如果不愛用命令行可以用sudo nautilus在GUI中進行拖拽。

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

Miniconda和Pycharm

首先下載Miniconda(推薦清華源,Anaconda功能全面帶界面,不過體積較龐大,看個人習慣)和Pycharm(有學生證的同學可以下專業版)。

然后進入安裝目錄運行Miniconda安裝包順着過程安裝就好。注意有個是否使用conda init,沒選的同學需要手動添加conda到環境變量中,選了就是使用conda初始化你的bash。

最后換源,修改conda源與pip源(yes,conda環境中也能使用pip安裝管理包),方法來自清華源

conda源修改~/.condarc文件:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

pip源

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

 Pycharm的安裝其實就是解壓安裝包,然后進入目錄下的/bin中,運行pycharm.sh就好。但是每次都打開安裝目錄很不方便,下面介紹如何給pycharm創建一個桌面快捷方式。

首先在~/Desktop下新建一個Pycharm.desktop,輸入以下內容

[Desktop Entry]
Type=Application
Name=Pycharm
GenericName=pycharm-2019.2.3
Comment=Pycharm3:The Python IDE
Exec=sh /opt/pycharm-2019.2.3/bin/pycharm.sh
Icon=/opt/pycharm-2019.2.3/bin/pycharm.png
Terminal=false
Categories=Pycharm;

其中/opt/pycharm-2019.2.3是我的安裝目錄,Exec就是運行pycharm的命令。

安裝並在環境中配置TensorRT

首先用conda新建一個環境

conda create -n tensorrt python=3.7
conda activate tensorrt

tensorrt是環境名,python版本為3.7

如果大家看到這里,並且不想配置TensorRT了,可以以一條Pytorch的安裝命令完美結束這次配置。

conda install pytorch torchvision cudatoolkit=10.0

如果大家還想繼續爬坑,先下載TensorRT安裝包。(我選的是Tar包,DEB試過但安裝libnvinfer那一步不成功,求大神指導)需要注意的是

 進行解壓后進入目錄。

 將lib目錄添加到環境變量LD_LIBRARY_PATH中:(大家如果不用python API到這里可以直接跳過看Sample)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<eg:TensorRT-6.x.x.x/lib>

用Python API的朋友看這邊)然后我們激活剛剛創建的conda環境,首先安裝cudatoolkit10.1和cudnn7.6.0

conda install cudatoolkit=10.1
conda install cudnn

進入python文件夾

pip install tensorrt-6.0.1.5-cp37-none-linux_x86_64.whl

進入uff文件夾安裝uff

pip install uff-0.6.5-py2.py3-none-any.whl

進入graphsurgeon安裝graphsurgeon

pip install graphsurgeon-0.4.1-py2.py3-none-any.whl

安裝onnx,numpy,Pillow,pycuda

pip install --no-binary onnx 'onnx==1.5.0'
pip install numpy
pip install Pillow
pip install pycuda

配置基本完成,下面我們運行sample來驗證一下。

首先是C++ samples。進入samples文件夾,編輯Makefile.config,找到CUDA_INSTALL_DIR和CUDNN_INSTALL_DIR這一行,把問號去掉,保存關閉。在samples文件夾中make進行編譯。

/opt/TensorRT-6.0.1.5/samples$ sudo make

編譯成功打開bin目錄,運行想運行的程序(運行前先看一眼sample中對應的readme),我試的是sample_fasterRCNN。首先在/data/faster-rcnn中下載權重文件VGG16_faster_rcnn_final.caffemodel,然后回到/bin中運行./sample_fasterRCNN即可。測試用例一共4個下面給大家貼一個。

 下面介紹Python sample。首先用Pycharm打開/samples/python文件夾。(我直接復制出來)

 其中tensorflow和pytorch的sample需要對應框架支持,我只測試了caffe的int8_caffe_mnist。

在data/mnist/目錄中下載MNIST數據集,如果像我這樣把整個samples/python復制出來的需要在原目錄的data/mnist中拷貝文件過來。

 然后運行sample.py,注意用pycharm直接運行會報錯找不到libnvinfer,需要在配置中加入環境變量LD_LIBRARY_PATH=/opt/TensorRT-6.0.1.5/lib。

 下面是運行結果。

 首先是一個警告三連(因為conda環境中最高的cudnn版本是7.6.0所以我也沒有辦法了,特別奇怪的是系統cudnn是7.6.3的時候會運行不下去,希望conda盡快更新cudnn的版本)。

好了這篇配置小白文就到這里,望大家多多指教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM