libonnxruntime_providers_cuda.so with error: libcudnn_adv.so.9

在安装了 onnxruntime-gpu 后,使用 CUDA 时报错:

shell 复制代码
2025-01-02 11:40:03.935340441 [E:onnxruntime:Default, provider_bridge_ort.cc:1862 TryGetProviderInfo_CUDA] /onnxruntime_src/onnxruntime/core/session/provider_bridge_ort.cc:1539 onnxruntime::Provider& onnxruntime::ProviderLibrary::Get() [ONNXRuntimeError] : 1 : FAIL : Failed to load library libonnxruntime_providers_cuda.so with error: libcudnn_adv.so.9: cannot open shared object file: No such file or directory

2025-01-02 11:40:03.935371734 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:993 CreateExecutionProviderInstance] Failed to create CUDAExecutionProvider. Require cuDNN 9.* and CUDA 12.*. Please install all dependencies as mentioned in the GPU requirements page (https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements), make sure they're in the PATH, and that your GPU is supported.

很明显,cudnn 并为正确配置。

首先需要说明:

PyTorch 的许多预编译版本(如通过 pip 或 conda 安装)会自带 CUDA 和 cuDNN。它会直接使用打包的版本,而不是依赖系统中全局安装的库。
ONNX Runtime 需要系统中明确安装且可用的 cuDNN 动态库

安装 cudnn,注意版本对应:

https://developer.nvidia.com/cudnn-downloads

shell 复制代码
proxychains4 wget https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-x86_64/cudnn-linux-x86_64-9.1.0.70_cuda12-arch
ive.tar.xz

解压下载的文件:

shell 复制代码
tar -xvf cudnn-linux-x86_64-9.1.0.70_cuda12-archive.tar.xz

解压后,会看到一个名为 cuda 的目录,包含以下子目录:

  • include/: 包含头文件,如 cudnn.h
  • lib/: 包含动态库,如 libcudnn.so

将解压出来的文件复制到系统的 CUDA 安装路径(默认路径是 /usr/local/cuda/):

shell 复制代码
sudo cp ./cudnn-linux-x86_64-9.1.0.70_cuda12-archive/include/* /usr/local/cuda-12.4/include/

sudo cp ./cudnn-linux-x86_64-9.1.0.70_cuda12-archive/lib/* /usr/local/cuda-12.4/lib64/

更新动态链接库缓存,以确保系统可以正确找到 cuDNN 的动态库文件:

检查 LD_LIBRARY_PATH 是否包含 /usr/local/cuda/lib64:

shell 复制代码
echo $LD_LIBRARY_PATH

如果没有包含,编辑 ~/.bashrc 文件,添加以下内容:

shell 复制代码
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
shell 复制代码
source ~/.bashrc

更新动态库缓存:

shell 复制代码
sudo ldconfig

验证 cuDNN 是否正确安装:

shell 复制代码
ls /usr/local/cuda/lib64 | grep libcudnn

输出:

shell 复制代码
libcudnn_adv.so
libcudnn_adv.so.9
libcudnn_adv.so.9.1.0
libcudnn_adv_static.a
libcudnn_adv_static_v9.a
libcudnn_cnn.so
...

检查 cuDNN 版本:

shell 复制代码
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

输出:

shell 复制代码
#define CUDNN_MAJOR 9
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 0
相关推荐
acstdm2 小时前
DAY 48 CBAM注意力
人工智能·深度学习·机器学习
澪-sl2 小时前
基于CNN的人脸关键点检测
人工智能·深度学习·神经网络·计算机视觉·cnn·视觉检测·卷积神经网络
羊小猪~~3 小时前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
视觉语言导航5 小时前
RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
人工智能·深度学习·机器人·具身智能
羊小猪~~6 小时前
【NLP入门系列五】中文文本分类案例
人工智能·深度学习·考研·机器学习·自然语言处理·分类·数据挖掘
李师兄说大模型6 小时前
KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
人工智能·深度学习·机器学习·语言模型·自然语言处理·大模型·deepseek
锅挤7 小时前
深度学习5(深层神经网络 + 参数和超参数)
人工智能·深度学习·神经网络
网安INF7 小时前
深层神经网络:原理与传播机制详解
人工智能·深度学习·神经网络·机器学习
喜欢吃豆7 小时前
目前最火的agent方向-A2A快速实战构建(二): AutoGen模型集成指南:从OpenAI到本地部署的全场景LLM解决方案
后端·python·深度学习·flask·大模型
喜欢吃豆8 小时前
快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
服务器·人工智能·python·深度学习·大模型·github·fastmcp