TensorRT7 + Onnx_TensorRT 安装过程记录

依照CUDA版本下载相对应的CUDNN

下载对应cuda版本的cudnn

tar -xvzf cudnn-10.0-linux-x64-v7.6.5.32.tgz -C 目的path

#解压缩出来会是一个cuda资料夹

cdcuda

sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 #测试

下载适合环境的TensorRT版本以及安装

官方 https://developer.nvidia.com/tensorrt

解压缩

tar -xzvf TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz -C /指定你要的路径

添加环境变量

vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<eg:TensorRT-6.x.x.x/lib
source ~/.bashrc

例如: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/你安装的路径/TensorRT-7.0.0.11/lib

进入 TensorRT-7.x.x.x/python 到TRT目录下的python文件夹

pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl 依照python环境选择相应的安装
中途遇见的问题
pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl 的时候出问题

报错如下

ERROR: tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl is not a supported wheel on this platform

基本上是 python 环境对应的 tensorrt 的版本选错了

注意如果使用conda可能会遇到该问题, 在conda下安装请使用pip install, 不要用pip3

ONNX_tensorrt 安装步骤

确认环境为 TensorRT7

依照以下官方步骤下载到本地

git clone --recurse-submodules https://github.com/onnx/onnx-tensorrt.git

cd onnx-tensorrt
mkdir build
cd build

cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir>
或是
cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir> -DGPU_ARCHS="61"

例如: cmake .. -DTENSORRT_ROOT=/path/to/TensorRT-7.x.x.x -DGPU_ARCHS="61"

sudo make -j8 (记得是在 build 目录下执行)
sudo make install

之后再安装一下 onnx

pip install onnx==1.6.0

安装完成后指令输入 onnx2trt 确认一下,输出以下内容则安装成功

ONNX to TensorRT model parser
Usage: onnx2trt onnx_model.pb
                [-o engine_file.trt]  (output TensorRT engine)
                [-t onnx_model.pbtxt] (output ONNX text file without weights)
                [-T onnx_model.pbtxt] (output ONNX text file with weights)
                [-m onnx_model_out.pb] (output ONNX model)
                [-b max_batch_size (default 32)]
                [-w max_workspace_size_bytes (default 1 GiB)]
                [-d model_data_type_bit_depth] (32 => float32, 16 => float16)
                [-O passes] (optimize onnx model. Argument is a semicolon-separated list of passes)
                [-p] (list available optimization passes and exit)
                [-l] (list layers and their shapes)
                [-g] (debug mode)
                [-F] (optimize onnx model in fixed mode)
                [-v] (increase verbosity)
                [-q] (decrease verbosity)
                [-V] (show version information)
                [-h] (show help)

确认python接口正常调用:

python >>
import onnx
import onnx_tensorrt.backend as backend

如果不报错 ~ 那么恭喜 !!!

问题总结

1 python 导入 tensorrt 的时候出现的问题

python >> 
import tensorrt

ImportError: libnvinfer.so.7: cannot open shared object file: No such file or directory

原因:没有修改 ~./bashrc

2 sudo make -j8 的时候出现的和 protobuf 有关问题

 fatal error: google/protobuf/port_def.inc: 没有那个文件或目录

解决办法:重新安装protobuf

3 有关cudalib库引用问题
会报一大串这样的问题

对‘cudaMalloc@libcudart.so.10.0’未定义的引用
.......

解决办法:
sudo vim ~/.bashrc 修改环境变量

修改后如下,保存文件

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:"$LD_LIBRARY_PATH:/usr/loacl/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export PATH=/usr/local/cuda/bin:$PATH

激活环境变量 source ~/.bashrc

这个时候如果还没有好的话:

sudo vi /etc/profile.d/cuda.sh

把以下内容复制进去并保存

export PATH=$PATH:/usr/local/cuda/bin
export CUDADIR=/usr/local/cuda

这一个位置也要新建一个文件,如果你装了10.1可能里面会已经有一个cuda10.1.conf不用管它

sudo vi /etc/ld.so.conf.d/cuda.conf

文件里面有这一句

/usr/local/cuda/lib64

应用设置

sudo ldconfig

4 出现 onnx_utils.hpp文件的报错

报错如下

numeric_limits’ is not a member of ‘std’

原因:表示出错的onnx_utils.hpp头文件没有包含

解决方案:在文件的开头添加如下include

#include <stdexcept>
#include <limits>

REFERENCE

https://github.com/onnx/onnx-tensorrt

TensorRT7 + Onnx_TensorRT 安装过程记录

解决Could not load dynamic library 'libcudart.so.10.0’的问题

linux升级cmake

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值