Could not load library libcudnn_ops_infer.so.8.

使用onnx模型进行推理时,提示如下报错:

Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory

看了很多网上的方案都无法解决,尝试了找到环境中libcudnn_ops_infer.so.8文件的位置,并将其加入 ~/.bashrc 环境配置文件中,依然提示报错。

如果你也是在修改了cuda版本之后突然无法运行之前的代码,不妨试试我的解决方案。

先说结论:该错误会由于cudnn和cuda版本不匹配造成。

解决方案:

一.确保cuda版本安装正确

使用nvcc检查当前cuda版本

nvcc -V

得到结果

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0

cuda tookit历史版本下载链接:cuda download

二.下载对应版本的cudnn

1.下载:

以我的为例,我系统为Ubuntu 系统版本为18.04,下载cudnn 8.6.0对应的版本。cudnn历史版本下载链接: cudnn download
在这里插入图片描述

2.上传

下载好之后上传至服务器后,cd进存放的路径,这里存放路径任意,都可以
我这里下载的文件名为: cudnn-local-repo-ubuntu1804-8.6.0.163_1.0-1_amd64.deb
在命令行执行:

sudo dpkg -i cudnn-local-repo-ubuntu1804-8.6.0.163_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu1804-8.6.0.163/cudnn-local-77B32ECB-keyring.gpg /usr/share/keyrings/
sudo apt-get update

第一条命令执行完会提示你第二条命令需要的路径是什么
紧接着,如果你根据官网提示的最后一条命令执行:

sudo apt-get -y install cudnn-cuda-11

如果报了如下提醒:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cudnn-cuda-11

则可以手动进行安装:
a.首先进入到刚才的目录下:

cd /var/cudnn-local-repo-ubuntu1804-8.6.0.163

在这里插入图片描述
会发现这三个.deb的文件
b.手动安装这三个文件

sudo dpkg -i libcudnn8_8.6.0.163-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8-dev_8.6.0.163-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8-samples_8.6.0.163-1+cuda11.8_amd64.deb

c.以上完成,验证一下是否安装成功:

whereis cudnn_version.h

返回:

cudnn_version: /usr/include/cudnn_version.h
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

返回:

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 0
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

可以看到,cudnn 8.6.0成功安装。

接下来再重新运行刚才的代码,Could not load library libcudnn_ops_infer.so.8.报错就不会出现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值