安装TensorRT及ONNX_tensorrt

本文详细记录了在Ubuntu16.04系统中安装TensorRT 7.0.0.11、CUDA 10.0和CUDNN 7.6.4的过程,包括查看系统和CUDA版本、TensorRT的下载与安装、Python支持的安装。同时,还介绍了如何安装ONNX-TensorRT并解决在编译过程中遇到的protobuf版本过低和cmake版本过低的问题。最后,文章提供了设置环境变量的方法以及安装和验证pycuda的步骤。

查看自身系统及相关软件版本

  • 查看服务器系统: cat /proc/version

  • 查看cuda版本: nvcc -version

  • 查看cudnn版本: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

安装TensorRT

官方地址下载合适版本的TensorRT,基于此,本系统是ubuntu 16.04, cuda版本是10.0, cudnn版本是7.6.4. 因此,下载文件TensorRT 7.0.0.11 for Ubuntu 1604 and CUDA 10.0 DEB local repo package debTensorRT 7.0.0.11 for Ubuntu 16.04 and CUDA 10.0 TAR package 这里下载两种格式的,deb和tar文件,如果之前安装cuda是使用deb进行安装的,这里可以直接使用deb进行安装,但是如果cuda不是通过deb进行安装的,那只能通过tar文件进行安装:
在这里插入图片描述

# 解压缩
tar -xf TensorRT-7.0.0.11.Ubuntu-16.04.x86_64-gnu.cuda-10.0.cudnn7.6.tar.gz

# 添加环境变量 
vim ~/.bashrc
export TRT_PATH=/xxxxxx/TensorRT-7.0.0.11
export PATH=$PATH:$TRT_PATH/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_PATH/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_PATH/targets/x86_64-linux-gnu/lib
ex
source ~/.bashrc

# 安装Python支持,选择对应python版本的whl进行安装
cd /xxxx/TensorRT-7.0.0.11/python
pip install tensorrt-7.0.0.11-cp37-none-linux_x86_64.whl

测试
在这里插入图片描述

安装ONNX_tensorrt

git clone --recurse-submodules https://github.com/onnx/onnx-tensorrt.git
cd onnx-tensorrt
# 值得注意的是,这个版本必须要和tensorrt的版本对应
git checkout 7.0

之后再去./third_party/onnx项目下载对应的onnx版本,onnx1.6 针对的是TensorRT7 
mkdir build
cd build
# cmake .. -DTENSORRT_ROOT=<tensorrt_install_dir> -DGPU_ARCHS='xxx'
# 从https://developer.nvidia.com/cuda-gpus这里查看你GPU的计算能力,替换上面的'xxx'
cmake .. -DTENSORRT_ROOT=/xxxx/TensorRT-7.0.0.11 -DGPU_ARCHS="70"
make -j 12

中间会出现的问题:

  • 问题1:protobuf的版本过低
# 命令 whereis `protoc` 可以查看哪些路径下安装了protoc
# 命令 which protoc 可以查看默认选用protoc的路径
# 命令 protoc--version 可以查看当前protoc版本

.[  ~]$ protoc--version
libprotoc 2.5.0

这个时候需要重新编译protoc,操作过程(参考https://askubuntu.com/questions/1072683/how-can-i-install-protoc-on-ubuntu-16-04/1072684)为:

官方地址下载最新的安装包,例如我这里下载的为protobuf-all-3.17.3.tar.gz

tar -xf protobuf-all-3.17.3.tar.gz
# 更改安装路径
cd protobuf-3.17.3/
./configure
make -j 12
make check
sudo make install
sudo ldconfig # refresh shared library cache

# 设置环境变量,注意将$PATH放在后面
export PATH="/xxxx/protobuf/bin:$PATH"

查看版本
protoc --version

在这里插入图片描述

这里附一个附录,是关于怎么添加各种环境变量的

#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
  • 问题2:cmake的版本过低

    首先从官方地址下载最新的cmake安装包。然后执行如下操作:

wget https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.tar.gz
tar xf cmake-3.13.0-Linux-x86_64.tar.gz
sudo mv cmake-3.13.0-Linux-x86_64 /opt/cmake-3.13.0
sudo ln -sf /opt/cmake-3.13.0/bin/*  /usr/bin/
 
# 验证
cmake --version

或者可以直接执行下面语句完成cmake升级

sudo pip install --upgrade cmake==3.13.2
  • 问题3: TensorRT cmake时出现Could NOT find TENSORRt library

声明变量路径即可

export PATH="$PATH:/xxxx/software/TensorRT-7.0.0.11"

然后这个时候,重新回到onnx-tensorrt/build,执行如下操作:

cd onnx-tensorrt/build
rm -r *
cmake .. -DTENSORRT_ROOT=/xxxx/software/TensorRT-7.0.0.11 -DGPU_ARCHS="70"
make -j 12
sudo make install

# 设置环境变量
 vim ~/.bashrc
 # 这个环境变量是我自己猜着写的,没想到还真的work了
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/xxxx/software/onnx-tensorrt/lib
 export PATH=$PATH:/xxx/software/onnx-tensorrt/bin
 
 source ~/.bashrc
 
 # 测试,输入下面指令看是否有输出
 onnx2trt

在这里插入图片描述

安装pycuda

pip install 'pycuda>=2017.1.1'

验证

import onnx
import tensorrt
import onnx_tensorrt

参考

<think>首先,用户的问题是:“我想在安装TensorRT 8.6.1时遇到ONNX GraphSurgeon安装失败的问题,希望找到解决方法。请问TensorRT 8.6.1 安装 ONNX GraphSurgeon 失败 解决方法。” 用户引用了几个来源: - [^1]: 关于ONNX GraphSurgeon的优势。 - [^2]: 在Win10上安装TensorRT的步骤。 - [^3]: 在Ubuntu上安装TensorRT 8.6.1的步骤,包括安装ONNX GraphSurgeon。 - [^4]: 安装TensorRT并配置环境变量。 这些引用提供了安装TensorRTONNX GraphSurgeon的背景信息,但用户的问题是安装失败的具体解决方法。 我的回答需要遵循系统级指令: 1. 行内数学表达式使用$...$,例如变量。 2. 独立公式使用$$...$$并单独成段。 3. LaTeX语法正确。 4. 使用中文回答。 5. 生成相关问题。 6. 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 用户可见层的指令: - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 用户的问题是关于安装ONNX GraphSurgeon失败的具体解决方法。我需要参考提供的引用,但引用中没有直接提到失败的原因或解决方法。引用[^3]提到在Ubuntu上安装ONNX GraphSurgeon的命令:`sudo apt install onnx-graphsurgeon`。引用[^2]提到在Windows上使用pip安装。 可能的失败原因: - 依赖问题:ONNX GraphSurgeon可能需要特定的Python版本或库。 - 环境变量问题:如引用[^4]所示,需要设置环境变量。 - 平台特定问题:用户可能在Windows或Linux上安装。 用户没有指定操作系统,所以我应该覆盖常见情况。 步骤式解决方法: 1. **确认操作系统**:因为安装方法不同。引用[^2]是Windows,[^3]是Ubuntu。 2. **检查依赖**:确保Python、pip、CUDA等已安装。 3. **尝试不同安装方法**: - 在Linux上,使用`apt`安装(如引用[^3])。 - 在Windows上,使用pip安装(如引用[^2])。 4. **手动安装**:如果包管理器失败,尝试下载whl文件手动安装。 5. **设置环境变量**:如引用[^4]所示。 6. **错误日志**:查看安装失败的错误信息以诊断问题。 生成相关问题: - 基于用户的问题,生成相关的问题,如优化安装、常见错误等。 回答结构: - 引言:理解问题并提供概述。 - 逐步解决方法。 - 总结。 - 相关问题。 在回答中,自然地添加引用标识。例如,提到引用[^3]时添加[^3]。 确保使用中文。</think>### TensorRT 8.6.1 安装 ONNX GraphSurgeon 失败的解决方法 在安装 TensorRT 8.6.1 时,ONNX GraphSurgeon 安装失败是一个常见问题,通常由依赖冲突、环境变量未正确设置或平台特定问题引起。ONNX GraphSurgeon 是 TensorRT 部署模型的关键工具,用于优化 ONNX 模型图结构[^1]。以下我将基于您的引用信息和常见实践,提供结构化的解决方法。请逐步操作,并根据您的操作系统(Linux 或 Windows)选择相应步骤。操作前,请确保您已下载 TensorRT 8.6.1 安装包(如引用[^3]和[^4]所述),并安装了 CUDA 和 cuDNN。 #### 步骤 1: 确认安装环境 - **检查操作系统**:ONNX GraphSurgeon 安装方法因系统而异。 - **Linux (如 Ubuntu)**:推荐使用 `apt` 或 `pip` 安装(参考引用[^3])。 - **Windows**:只能通过 `pip` 安装(参考引用[^2])。 - **验证依赖**: - Python 版本:ONNX GraphSurgeon 需要 Python 3.6+。运行 `python --version` 检查。 - CUDA 版本:TensorRT 8.6.1 要求 CUDA 11.x 或 12.x(如引用[^4]所示)。运行 `nvcc --version` 确认。 - 确保 pip 已更新:`pip install --upgrade pip`。 - **查看错误日志**:安装失败时,终端会输出错误信息。例如: - 如果提示 "Could not find a version",可能是网络问题或包名错误。 - 如果提示 "Permission denied",需使用管理员权限。 #### 步骤 2: 分平台安装方法 根据您的系统,尝试以下方法。如果一种方法失败,切换到另一种。 - **Linux (Ubuntu) 安装**: 1. **使用 apt 安装(推荐)**:TensorRT 的官方仓库通常包含 ONNX GraphSurgeon。运行以下命令(参考引用[^3]): ```bash sudo apt update sudo apt install onnx-graphsurgeon ``` 如果失败,添加 NVIDIA 仓库密钥: ```bash sudo cp /var/nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-11.8/nv-tensorrt-local-D7BB1B18-keyring.gpg /usr/share/keyrings/ sudo apt update sudo apt install onnx-graphsurgeon ``` 2. **使用 pip 安装**:如果 `apt` 不可用,下载 whl 文件手动安装(参考引用[^2])。首先,找到匹配的 whl 文件(如 `onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl`),然后运行: ```bash pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl ``` 如果网络问题,添加国内镜像源: ```bash pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ``` - **Windows 安装**: 1. **使用 pip 安装**:Windows 不支持 `apt`,必须通过 pip(参考引用[^2])。下载 whl 文件(如从 NVIDIA 官网),然后运行: ```cmd pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl ``` 如果遇到权限问题,以管理员身份运行 CMD。 2. **检查路径**:确保 whl 文件路径正确,或直接使用在线安装: ```cmd pip install onnx-graphsurgeon==0.3.12 ``` #### 步骤 3: 解决常见错误 - **依赖冲突**:ONNX GraphSurgeon 依赖于 `onnx` 和 `numpy`。如果版本不匹配,运行: ```bash pip uninstall onnx numpy onnx-graphsurgeon # 卸载旧版本 pip install onnx==1.14.0 numpy==1.23.5 # 安装兼容版本 pip install onnx-graphsurgeon==0.3.12 # 重新安装 ``` - **环境变量问题**:TensorRT 和 CUDA 路径必须设置(参考引用[^4])。编辑 `.bashrc` 或系统环境变量: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/TensorRT-8.6.1.6/lib export PATH=$PATH:/path/to/TensorRT-8.6.1.6/bin ``` 运行 `source ~/.bashrc`(Linux)或重启(Windows)生效。 - **权限问题**:在 Linux 上,使用 `sudo`;在 Windows 上,以管理员运行 CMD。 - **网络问题**:使用国内镜像源(如豆瓣源),或下载 whl 文件离线安装。 #### 步骤 4: 验证安装 安装成功后,运行 Python 脚本验证: ```python import onnx_graphsurgeon print(onnx_graphsurgeon.__version__) # 应输出 0.3.12 ``` 如果报错 "ModuleNotFoundError",检查 Python 环境是否匹配(例如,使用 `python -m pip install` 确保安装到正确环境)。 #### 总结 ONNX GraphSurgeon 安装失败通常由系统依赖或配置问题引起。优先尝试官方 `apt` 或 `pip` 方法,并确保环境变量正确[^3][^4]。如果问题持续,提供错误日志以便进一步诊断。安装成功后,您可以使用 ONNX GraphSurgeon 优化模型图结构,提升 TensorRT 部署效率[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值