TensorRT7 + Onnx_TensorRT 安装过程记录

TensorRT + Onnx_TensorRT 安装步骤

我个人是将TRT和Onnx_TensorRT安装在docker的container中, 因为云都是提供的docker环境, 实际使用起来跟一般没有区别

安装TensorRT

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

  1. 下载对应cuda版本的cudnn

    tar -xvzf cudnn-10.0-linux-x64-v7.6.5.32.tgz -C 目的path
    #解压缩出来会是一个cuda资料夹
    cd 到cuda下
    
    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 #测试
    
  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

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

      之后记得source ~/.bashrc一下

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

    • pip install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl 依照python环境选择相应的安装

中途遇见的问题

问题1

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环境选错了, 例如python3.5 则安装3.6的

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

ONNX_tensorrt 安装步骤

确认环境

TensorRT7

  1. 依照以下官方步骤下载到本地
  • git clone --recurse-submodules https://github.com/onnx/onnx-tensorrt.git

  • cd onnx-tensorrt

  • mkdir 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"

  • make -j8 (记得是在onnx-tensorrt目录下执行)

  • sudo make install

  • 安装完成后指令输入 onnx2trt 确认一下

中途遇见的问题

问题1

Tensorrt 装在DL的conda环境中, 但是要编译onnx的时候遇到 /usr/bin/cmake: 没有那个文件或目录

必须退出当前的conda 环境才能使用cmake 但是用cmake的时候又找不到tensorrt环境,因为装在conda dl的环境中

问题2

cmake的时候会找不到TensorRT library

报错如下

-- Found TensorRT headers at /input/TensorRT-6.0.1.5/include
-- Find TensorRT libs at /input/TensorRT-6.0.1.5/lib/libnvinfer.so;/input/TensorRT-6.0.1.5/lib/libnvinfer_plugin.so;TENSORRT_LIBRARY_MYELIN-NOTFOUND
-- Could NOT find TENSORRT (missing: TENSORRT_LIBRARY)
ERRORCannot find TensorRT library.
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
TENSORRT_LIBRARY_MYELIN
    linked by target "nvonnxparser_static" in directory /input/onnx-tensorrt
    linked by target "nvonnxparser" in directory /input/onnx-tensorrt

-- Configuring incomplete, errors occurred!
See also "/input/onnx-tensorrt/build/CMakeFiles/CMakeOutput.log".
See also "/input/onnx-tensorrt/build/CMakeFiles/CMakeError.log".

解决2

只是因为onnx1.6只支持tensorrt7的版本, 碰到这个问题是安装成6.0的TensorRT

问题3

make -j8 的时候 出现 onnx_utils.hpp文件的报错

报错如下

numeric_limits’ is not a member of ‘std’

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

#include <stdexcept>
#include <limits>

解决

只要vim 进去加上两个头文件就可以

无法pip install 的方式 可以进入python shell import pip查看

import pip or import pip._internal 
print(pip._internal.pep425tags.get_supported())

[('cp36', 'cp36m', 'manylinux1_x86_64'), 
('cp36', 'cp36m', 'linux_x86_64'), 
('cp36', 'abi3', 'manylinux1_x86_64'), 
('cp36', 'abi3', 'linux_x86_64'), 
('cp36', 'none', 'manylinux1_x86_64'), 
('cp36', 'none', 'linux_x86_64'), 
('cp35', 'abi3', 'manylinux1_x86_64'), 
('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值