【TensorRT导入报错】OSError:[WinError 127] 无法定位程序输入点于动态链接库cublas64_11.dll

报错表现

在使用tensorrt加速推理pytorch模型过程中,出现如下报错

pycharm中导入tensorrt报错

代码:

import cv2
#import ...若干依赖库
import pycuda.driver as cuda
import pycuda.autoinit
import tensorrt as trt  #先导入trt 再导入torch
import ctypes

报错信息:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "D:\Anaconda\install\envs\ShuiFa\lib\site-packages\tensorrt\__init__.py", line 129, in <module>
    ctypes.CDLL(find_lib(lib))
  File "D:\Anaconda\install\envs\ShuiFa\lib\ctypes\__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 127] 找不到指定的程序。
python-BaseException

cmd中import tensorrt报错

在刚安装了tensorrt时,检验安装是否成功

import tensorrt

没有报错。
后来pycharm运行程序时报了以上错误,查找资料发现大多数说是版本问题之类的,然后就开始怀疑自己安装的tensorrt版本不匹配,于是想着通过torch查看cuda和cudnn版本,于是在命令行中输入了以下指令:

import torch
#...此处省略若干行
import tensorrt

然后触发了以下报错:
在这里插入图片描述
点击确定后,命令行报错信息如下:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Anaconda\install\envs\ShuiFa\lib\site-packages\tensorrt\__init__.py", line 129, in <module>
    ctypes.CDLL(find_lib(lib))
  File "D:\Anaconda\install\envs\ShuiFa\lib\ctypes\__init__.py", line 373, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 127] 找不到指定的程序。

报错原因

参考链接:https://github.com/NVIDIA/TensorRT/issues/3439
在这里插入图片描述
没看很明白。。。。翻译如下:
TensorRT 9.X要求在系统上安装cudnn和cublas。在Windows上,pytorch与cudnn捆绑在一起(可能是不同版本),这可能(取决于torch和tensorrt的相对加载顺序)导致与使用包管理器(pip或conda)安装的cudnn包发生符号冲突。这将在tensort10.0中修复。

为了解决这个问题,同时:

如果您的项目中安装了pytorch并导入了pytorch,请在安装TensorRT后卸载system cudnn包。
例如:https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT/blob/main/install.py L12-L14

在Torch之前导入TensorRT。
例如:https://github.com/NVIDIA/Stable-Diffusion-WebUI-TensorRT/blob/main/utilities.py L32-L33

解决方案

在Torch之前导入TensorRT。

import tensorrt as trt
import torch

没再报错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值