运行NVIDIA的TensorRT5.0.2.6的例子sample_uff_ssd遇到的坑

本文详细记录了使用TensorRT 5.0进行模型转换和运行过程中遇到的问题及解决方法,包括从TensorFlow的ckpt模型转换到pb,再转为uff格式,以及解决NVIDIA错误和libcuBLAS.so.9.0问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NVIDIA错误:ERROR: UFFParser: Graph error: Cycle graph detected
ERROR: sample_uff_ssd: Fail to parse
sample_uff_ssd: sampleUffSSD.cpp:540: int main(int, char**): Assertion `tmpEngine != nullptr' failed.

tensorflow错误:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

解决办法:https://blog.csdn.net/qq_34374211/article/details/81018320

好久没写博客了,最近也是在搞tensorrt,真的是一个大坑,这个5.0,本例子针对了tensorRT的5.0,其他的版本不知道,运行sample_uff_ssd例子的时候真的是遇到坑了,之所以采坑是因为想用tensorRT加速tensorflow模型,思路是先将tensorflow训练出来的ckpt模型(现在的tensorflow模型训练出来的模型可能不是ckpt了,但是还是那个格式),将ckpt模型转换成pb模型(这一个步骤被称为freeze,冻结)意思是将tensorflow的图文件中主要的结构摘出来,然后利用tensorrt的convert-to-uff命令将pb转成uff,tensorRT可以直接将uff加速,但是inference的过程需要自己写(c++ or python)。

本着先运行例子,然后看懂,最后加载自己的uff模型的思路开始探索tensorRT的坑。。。。。。。。。。。

先说说本人及其配置 ubuntu16.04 cuda9.0 cudnn7.0.5(tensorRT5.0需要7.3的cudnn,我的是7.0的,没改也能运行),convert-to-uff用的是python3的,这个就是个坑,先前不知道怎么安装的就将tensorRT的whl文件都安装在了python3底下,具体安装步骤参考https://blog.csdn.net/xulei_Tao/article/details/90339694,这真是最大一个坑,后面会介绍。

一、例子的运行步骤

按照例子下面的readme步骤:1、首先安装uff转换,上面的链接有安装步骤,一定要用pip2安装,不要用pip3或者pip

                                                 2、下载模型文件ssd_inception_v2_coco,下载地               址 http://download.tensorflow.org/models/object_detection/ssd_inception_v2_coco_2017_11_17.tar.gz

                                                 3、将上面的文件进行解压,然后将加压后的文件夹中的frozen_inference_graph.pb复制到sampleuffssd文件夹中运行转换命令convert-to-uff --input-file frozen_inference_graph.pb -O NMS -p config.py

                                                 4、这个时候将转换好的uff模型剪切到data文件夹下并重命名为sample_ssd_relu6.uff

                                                 5、编译sampleuffssd下的cpp文件,会在bin文件夹下产生一个可执行文件

                                                 6、执行./sample_uff_ssd会发生以下错误

于是开始baidu和google,baidu出的东西大都是没这个错误,google还可以,直接将错误定位到了NVIDIA的官网论坛里, https://devtalk.nvidia.com/default/topic/1046206/tensorrt/tensorrt5-sample_uff_ssd-can-t-run/下面解答的解决方案就是可能是某些节点导致,反正没搞明白啥意思。

二、解决方法

1、搜索了一顿错误后没有发现解决方案,以为这个就是个bug或者什么的,让同事运行了下该例子,一下就成功了。开始郁闷,是不是自己显卡问题,不兼容么,本人显卡k80;觉得NVIDIA不会这么坑

2、将k80机器上的cudnn版本换了,换成了7.3.1,最后结果还是一样

3、中间再搜索解决方案的时候还搜到了一个博主的博客https://www.cnblogs.com/sdu20112013/p/10702173.html这个博客也是从安装tensorRT到如何运行该例子,也说了例子的模型 有问题,但是最后人家运行成功了,还莫名其妙。

4、周一的时候开始在另外一台机器上尝试,因为另外一台机器上没有安装tensorRT于是又重新来过一遍,或者这台机器还装的是cuda9.1的版本,tensorRT还没有这一版本的支持,于是又重新安装了cuda9.0,cudnn7.3.1,还重新安装了python3-pip,tensorflow,我晕,要不是之前都安装过,这些的弄好久,附,安装连接

                  cudnn https://blog.csdn.net/xs1102/article/details/81666663

                  cuda   https://blog.csdn.net/mtllyb/article/details/79505012

                   tensorflow的安装 sudo pip2 install tensorflow-gpu==1.8.0

                  tensorflow错误解决:https://blog.csdn.net/qq_34374211/article/details/81018320

                  因为pip3不好用,于是用了pip2安装完成按照上面步骤,例子运行正常,分析原因

convert-to-uff这个不一样,其他一样,一个用的是python2底下的convert-to-uff一个用的是convert-to-uff,也就是说必须用python2去做转换模型的操作

运行成功界面:

 

 

 

<think>我们正在处理用户的问题:在Windows11上安装WSL2(Ubuntu20.04)并配置TensorRT-8.6.1.6、CUDA11.6、cuDNN环境以运行和训练RAGFlow模型。根据提供的引用,我们有以下信息:引用[1]:提供了Win10自定义路径安装WSL2并配置CUDA的教程。引用[2]:提供了基于Windows11配置深度学习环境,包含WSL2配置Ubuntu20.04,并安装CUDA和cuDNN。引用[3]:提供了在Ubuntu20.04(WSL2)中安装TensorRT-8.6.1.6、CUDA11.6、cuDNN的步骤和版本展示。注意:用户要求的是Windows11,但引用中包含了Win10和Win11的参考。我们主要参考引用[2]和引用[3]。由于引用[3]中提到了安装步骤参考另一个链接,但我们没有那个链接的内容,因此我们将基于已有的引用信息以及通用步骤来回答。步骤概述:1.在Windows11上启用WSL2并安装Ubuntu20.04。2.在WSL2的Ubuntu中安装NVIDIA驱动(实际上,WSL2使用Windows的NVIDIA驱动,但需要确保Windows已安装正确驱动)。3.在Ubuntu中安装CUDA11.6和cuDNN(注意版本对应)。4.安装TensorRT-8.6.1.6。注意:由于RAGFlow模型训练需要,我们确保环境正确配置。详细步骤:一、准备Windows11环境1.确保Windows11版本满足要求(例如,版本21H2或更高)。2.启用虚拟化和WSL功能:-以管理员身份打开PowerShell,运行:```powershelldism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe/online/enable-feature/featurename:VirtualMachinePlatform /all /norestart```-重启计算机。3.将WSL默认版本设置为WSL2:```powershellwsl --set-default-version2```4.安装Ubuntu20.04 LTS:-打开MicrosoftStore,搜索并安装“Ubuntu20.04LTS”。-安装后,从开始菜单启动Ubuntu,完成初始设置(创建用户名和密码)。二、安装Windows端的NVIDIA驱动-前往NVIDIA官网下载并安装适用于Windows11的显卡驱动(确保驱动支持WSL2和CUDA11.6)。-安装完成后,重启计算机。三、在WSL2的Ubuntu中安装CUDA11.6和cuDNN1.更新Ubuntu系统:```bashsudo aptupdate &&sudo aptupgrade -y```2.安装CUDA11.6:-根据引用[3],CUDA11.6的安装可以通过下载runfile或deb文件进行。由于在WSL2中,推荐使用deb方式。-前往NVIDIACUDAToolkit11.6下载页面(https://developer.nvidia.com/cuda-11-6-0-download-archive),选择Linux ->x86_64-> WSL-Ubuntu->2.0 ->deb(local)并下载。-按照官方说明安装:```bashwget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pinsudomv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600wgethttps://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.debsudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.debsudo apt-key add/var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pubsudoapt-getupdatesudoapt-get-y installcuda```-设置环境变量(将以下内容添加到~/.bashrc):```bashexport PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}```然后运行:`source ~/.bashrc`-验证安装:`nvcc -V`,应输出类似引用[3]中的版本信息。3.安装cuDNN:-前往NVIDIAcuDNN下载页面(需要注册),下载与CUDA11.6对应的cuDNN版本(例如,cuDNNv8.6.0for CUDA11.x)。-将下载的cuDNN压缩包(例如,cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz)复制到WSL2的Ubuntu中(可以通过/mnt/目录访问Windows文件)。-在Ubuntu中解压并安装:```bashtar-xvfcudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xzsudocp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/includesudocp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64sudo chmod a+r /usr/local/cuda/include/cudnn*.h/usr/local/cuda/lib64/libcudnn*```四、安装TensorRT8.6.1.6-前往NVIDIA TensorRT下载页面(需要注册),下载TensorRT8.6.1.6 forLinuxx86_64和CUDA11.6的tar包。-将下载的TensorRT压缩包(例如,TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.6.tar.gz)复制到WSL2的Ubuntu中。-解压并安装:```bashtar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.6.tar.gzexportTRT_PATH=/path/to/TensorRT-8.6.1.6#替换为实际路径exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TRT_PATH/lib#将TensorRT库路径永久添加到环境变量(添加到~/.bashrc)echo'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'$TRT_PATH/lib>> ~/.bashrcsource~/.bashrc```-安装PythonTensorRT wheel文件(假设使用Python):```bashcd $TRT_PATH/pythonpip installtensorrt-*-cp3x-none-linux_x86_64.whl#选择与Python版本对应的whl文件```-安装其他依赖包(uff和graphsurgeon):```bashcd$TRT_PATH/uffpip installuff-0.6.9-py2.py3-none-any.whlcd $TRT_PATH/graphsurgeonpipinstall graphsurgeon-0.4.6-py2.py3-none-any.whl```五、验证安装-验证CUDA:`nvcc -V`,应输出CUDA11.6。-验证cuDNN:`cat/usr/local/cuda/include/cudnn_version.h |grep CUDNN_MAJOR-A2`,应显示cuDNN版本(如8.6.0)。-验证TensorRT:在Python中运行`import tensorrt`,没有错误。六、安装RAGFlow模型所需的其他依赖-根据RAGFlow的文档,安装Python依赖(如PyTorch、transformers等)。注意PyTorch需要与CUDA11.6兼容。注意:由于在WSL2中,GPU资源是通过Windows的驱动暴露的,因此确保Windows端的驱动安装正确。引用说明:我们参考了引用[2]和引用[3]的安装步骤,特别是CUDA和TensorRT的版本选择。注意:以上步骤可能需要根据实际情况调整,例如下载链接和文件版本。最后,生成相关问题:</think>### 在Windows 11上安装WSL2(Ubuntu 20.04)并配置TensorRT-8.6.1.6/CUDA 11.6/cuDNN环境 以下是完整配置步骤,参考NVIDIA官方文档和社区实践[^1][^2][^3]: #### 一、启用WSL2并安装Ubuntu 20.04 1. **启用Windows功能** 以管理员身份运行PowerShell: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --install wsl --set-default-version 2 ``` 重启计算机后继续。 2. **安装Ubuntu 20.04** - 打开Microsoft Store安装[Ubuntu 20.04 LTS](https://apps.microsoft.com/detail/ubuntu-2004/9n6svws3rx71) - 启动Ubuntu完成初始化(创建用户名/密码) #### 二、安装Windows端NVIDIA驱动 1. 下载[最新GeForce Game Ready驱动](https://www.nvidia.cn/Download/index.aspx)(需≥510.xx) 2. 安装时勾选 **"GPU加速的WSL支持"** 组件[^2] #### 三、在WSL2中配置CUDA 11.6 ```bash # 在Ubuntu终端执行 wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub sudo apt update sudo apt install cuda-11-6 ``` **环境变量配置**(添加到`~/.bashrc`): ```bash export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 验证:`nvcc -V` 应返回 `release 11.6`[^3] #### 四、安装cuDNN 1. 从[NVIDIA官网](https://developer.nvidia.com/cudnn)下载 **cuDNN v8.6.0 for CUDA 11.x**(需注册) 2. 在Ubuntu中安装: ```bash tar -xzvf cudnn-linux-x86_64-8.6.0.163_cuda11-archive.tar.xz sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn* ``` #### 五、安装TensorRT 8.6.1.6 ```bash wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.6.tar.gz tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-11.6.tar.gz cd TensorRT-8.6.1.6 export TRT_PATH=$(pwd) echo "export LD_LIBRARY_PATH=$TRT_PATH/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc # 安装Python支持(需先安装pip) cd python && pip install tensorrt-*-cp3x-none-linux_x86_64.whl cd ../uff && pip install uff-0.6.9-py2.py3-none-any.whl cd ../graphsurgeon && pip install graphsurgeon-0.4.6-py2.py3-none-any.whl ``` 验证:`python -c "import tensorrt; print(tensorrt.__version__)"` 应返回 `8.6.1` #### 六、配置RAGFlow训练环境 ```bash # 安装Miniconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh # 创建RAGFlow环境 conda create -n ragflow python=3.10 conda activate ragflow # 安装PyTorch(匹配CUDA 11.6) pip install torch==2.0.1+cu116 torchvision==0.15.2+cu116 -f https://download.pytorch.org/whl/torch_stable.html # 安装RAGFlow依赖 git clone https://github.com/infiniflow/ragflow.git cd ragflow && pip install -r requirements.txt ``` #### 七、验证GPU加速 ```python # 测试脚本 import torch print(f"CUDA可用: {torch.cuda.is_available()}") print(f"cuDNN版本: {torch.backends.cudnn.version()}") print(f"设备: {torch.cuda.get_device_name(0)}") ``` 预期输出: ``` CUDA可用: True cuDNN版本: 8600 设备: NVIDIA GeForce RTX xxxx ``` > **关键注意事项** > 1. Windows主机需安装WSL2专用NVIDIA驱动 > 2. CUDA/cuDNN/TensorRT版本必须严格匹配 > 3. WSL2内存限制:在`%USERPROFILE%\.wslconfig`中添加: > ```ini > [wsl2] > memory=16GB # 根据GPU显存调整 > swap=8GB > ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值