找了很多的教程,针对这些教程和碰到的问题,整理了一下。
按照这个主教程一步一步的走,其中没有说gcc 8.2.0的安装教程,推荐一个:https://blog.csdn.net/fpcc/article/details/99698783
注:我使用的是anaconda的虚拟环境,创建的python3.7,所以其中的 pip install pycuda 操作 和 python setup.py install 操作都是在 conda activate tensorrt 之后进行的。如果你没有用anaconda虚拟环境,直接用原生的python环境也没有问题,但是总之要有一个python环境。
cuda-10.2 + cudnn-7.6.5 + TensorRT-7.0.0.11 + protobuf-3.8.0 + gcc-8.2.0
显卡版本:RTX 2080 Ti
尝试过:cuda-10.1 + cudnn-7.6.3 + TensorRT-6.0.1.5 + protobuf-3.8.0 + gcc-8.2.0失败了。
尝试过:在 RTX 1080上想尝试一下cuda-10.0,但是支持不了gcc-8.2.0,所以直接拉胯。
如果你成功了,并且版本跟我的不一样,希望在评论区写出来,为其他人提供更多的选择,毕竟版本问题真是令人头秃的问题,十分感谢。
主教程的作者是使用的 "/path/to" 泛指安装路径,记得修改为自己的路径。尤其是下面这个地方,因为没注意,搞了好半天,大家要注意点。
比如改成:
解决方案如下:
参考教程:https://blog.csdn.net/weixin_39558227/article/details/104780434
简单说:找到onnx-tensorrt文件夹下的NvOnnxParser.h文件,在顶部加一行:#define TENSORRTAPI
如下图:
原因可能是autogen.sh没有执行权限,执行:chmod a+x autogen.sh
解决方案如下:
原因:没有安装automake工具,安装方式:apt-get install autoconf automake libtool
因为windows上是docs格式,Linux上是unix格式,你可以查看一下你的文件格式,很有可能是docs的。
如果你的git操作,比如下面这个git操作:
git clone --recursive https://github.com/onnx/onnx-tensorrt.git
是先下载到windows上,然后又传到Linux上的话,你的文件格式可能会有问题,你需要对文件执行操作:find . -type f -print0 | xargs -0 dos2unix,比如你从windows上上传了protobuf文件夹到Linux上,需要执行操作:
cd protobuf
find . -type f -print0 | xargs -0 dos2unix
dos2unix 是需要安装的,安装指令:sudo apt-get install dos2unix
你会发现,我们需要指定版本的protobuf和onnx-tensorrt,但是如果你直接执行下面的指令,下载的版本应该是最新版的,所以我们不能直接git clone,需要加参数来指定版本。
git clone https://github.com/protocolbuffers/protobuf.git
git clone --recursive https://github.com/onnx/onnx-tensorrt.git
指定版本的推荐教程:https://chinese.freecodecamp.org/news/git-clone-branch-how-to-clone-a-specific-branch/
简单来说,举个例子:下载onnx-tensorrt 7.0
git clone -b 7.0 --single-branch --recursive https://github.com/onnx/onnx-tensorrt.git
-b :分支参数,可以通过下面的方式确定:
附加:、
.bashrc文件,对于tensorrt的环境配置如下,这样可以避免最后面出现冒号。
export LD_LIBRARY_PATH=/usr/local/TensorRT-7.0.0.11/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LIBRARY_PATH=/usr/local/TensorRT-7.0.0.11/lib${LIBRARY_PATH:+:${LIBRARY_PATH}}