Ubuntu 20.04下使用TensorRT遇libnvinfer_plugin.so.8加载失败求助
针对你遇到的Unable to open library: libnvinfer_plugin.so.8 due to libcublas.so.11: cannot open shared object file: No such file or directory错误,以下是具体排查和解决步骤:
确认CUDA 11.x版本是否安装完整
运行nvcc --version查看当前CUDA版本,确保是11.x系列(libcublas.so.11属于CUDA 11分支)。然后检查CUDA安装目录(通常是/usr/local/cuda-11.x)下的lib64文件夹是否存在目标文件,命令:ls /usr/local/cuda-11.x/lib64/libcublas.so.11如果文件不存在,说明CUDA toolkit安装不完整,需重新下载对应版本的CUDA安装包,安装时勾选
cuBLAS组件。验证LD_LIBRARY_PATH环境变量的正确性
运行echo $LD_LIBRARY_PATH,查看是否包含CUDA的lib64路径(比如/usr/local/cuda-11.x/lib64)。如果没包含,执行临时设置命令:export LD_LIBRARY_PATH=/usr/local/cuda-11.x/lib64:$LD_LIBRARY_PATH若要永久生效,将上述命令添加到
~/.bashrc或/etc/profile文件末尾,然后运行source ~/.bashrc(当前用户)或source /etc/profile(全局)使其生效。检查TensorRT与CUDA的版本兼容性
TensorRT 8.x系列需要搭配CUDA 11.0~11.8版本使用,确保你安装的TensorRT版本和CUDA版本匹配。版本不兼容会导致库加载失败,需更换对应版本的TensorRT或CUDA。刷新系统动态链接库缓存
系统可能未识别新添加的库路径,运行以下命令刷新缓存:sudo ldconfigconda环境下的额外处理
如果你在conda虚拟环境中使用TensorRT,可在环境内单独设置LD_LIBRARY_PATH,或直接通过conda安装对应版本的CUDA toolkit:conda install cudatoolkit=11.x
内容的提问来源于stack exchange,提问作者TechXpert

