Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.

2024-05-30 17:20

本文主要是介绍Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PaddleDetection 运行时报错解决方案

报错信息

Traceback (most recent call last):File "/PaddleDetection/deploy/pipeline/pipeline.py", line 1103, in <module>main()File "/PaddleDetection/deploy/pipeline/pipeline.py", line 1090, in mainpipeline.run_multithreads()File "/PaddleDetection/deploy/pipeline/pipeline.py", line 170, in run_multithreadsself.predictor.run(self.input)File "/PaddleDetection/deploy/pipeline/pipeline.py", line 488, in runself.predict_video(input, thread_idx=thread_idx)File "/PaddleDetection/deploy/pipeline/pipeline.py", line 668, in predict_videores = self.mot_predictor.predict_image(File "/PaddleDetection/deploy/pptracking/python/mot_sde_infer.py", line 478, in predict_imageinputs = self.preprocess(batch_image_list)File "/PaddleDetection/deploy/pptracking/python/det_infer.py", line 140, in preprocessinput_tensor.copy_from_cpu(inputs[input_names[i]])File "/root/.pyenv/versions/3.9.16/lib/python3.9/site-packages/paddle/fluid/inference/wrapper.py", line 38, in tensor_copy_from_cpuself.copy_from_cpu_bind(data)
RuntimeError: (PreconditionNotMet) Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.[Hint: cudnn_dso_handle should not be null.] (at /paddle/paddle/phi/backends/dynload/cudnn.cc:60)

可能的原因

在 Nvidia 驱动正常安装,nvidia-smi 正常显示的情况下,在 Anaconda 环境下跑常规的深度学习框架(如 TensorFlow, PyTorch, PaddlePaddle 等)时,一般不需要额外安装 CUDA 或 cuDNN 工具,而是直接通过 conda 安装 cudatoolkit 即可。具体的 cudatoolkit 版本选择,一般按照 nvidia-smi 的显示,选择与其一致的 cudatoolkit 版本即可。有些时候特殊的包需要特殊版本的 cudatoolkit(比如 PaddlePaddle),那么按包的要求来即可。

解决方法

第一步:检查共享库中是否有 libcudnn.so 和 libcublas.so

在终端中输入以下命令:

ls /usr/lib | grep lib

如果没有 libcudnn.solibcublas.so 文件,您需要通过以下命令找到它们的位置:

locate libcudnn.so
locate libcublas.so

在我的例子中,libcudnn.so 位于 /usr/local/cuda-12.1/targets/x86_64-linux/include/libcudnn.so.8.9.1,而 libcublas.so 位于 /usr/local/cuda-12.1/targets/x86_64-linux/lib/libcublas.so.12.1.3.1

第二步:将它们添加到共享库中

  1. 进入 /usr/lib 文件夹:

    cd /usr/lib
    
  2. 创建 libcudnn.solibcublas.so 的符号链接:

    sudo ln -s /usr/local/cuda-12.1/targets/x86_64-linux/include/libcudnn.so.8.9.1 libcudnn.so
    sudo ln -s /usr/local/cuda-12.1/targets/x86_64-linux/lib/libcublas.so.12.1.3.1 libcublas.so
    
  3. 检查它们是否已添加到共享库中:

    ls /usr/lib | grep lib
    

如果可以使用上述命令找到 libcudnn.solibcublas.so,那么您就不会再遇到此问题。

这篇关于Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016599

相关文章

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

ImportError: cannot import name ‘print_log‘ from ‘logging‘

mmcv升级到2.+后删除了很多 解决 查FAQ文档,找到 添加到mmcv.utils下即可

类的load方法和initialize方法对比

1. load方法在main()之前被调用,而initialize方法在main()之后调用 load方法实际是在load_images过程中被调用的。load_images会将当前应用依赖的所有镜像(动态库)加载到内存,在在加载中首先是对镜像进行扫描,将所有包含 load 方法的类加入列表 loadable_classes ,然后从这个列表中逐一调用其所包含的 load 方法。 +[XXCl

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

Unstructured cannot write mode RGBA as JPEG 错误解决

Unstructured cannot write mode RGBA as JPEG 错误解决 0. 错误详细1. 解决方法 0. 错误详细 Image Extraction Error: Skipping the failed imageTraceback (most recent call last):File "/root/miniconda3/envs/learn-y

Cannot read property ‘length‘ of null while opening vscode terminal

同一问题地址:Cannot read property ‘length’ of null while opening vscode terminal 问题描述 One day, 我在ubuntu 18.04下用vscode打开一个项目,并想和往常一样在vscode使用终端,发现报错Cannot read property 'length' of null。 解决 打开setting.jso

PIL Python Imaging Library (PIL)

介绍         把Python的基础知识学习后,尝试一下如何安装、加载、使用非标准库,选择了图像处理模块PIL。         Python Imaging Library (PIL)是PythonWare公司提供的免费的图像处理工具包,是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不

探索Invoke:Python自动化任务的瑞士军刀

文章目录 探索Invoke:Python自动化任务的瑞士军刀背景:为何选择Invoke?`invoke`是什么?如何安装`invoke`?简单的`invoke`库函数使用方法场景应用:`invoke`在实际项目中的使用场景一:自动化测试场景二:代码格式化场景三:部署应用 常见问题与解决方案问题一:命令执行失败问题二:权限不足问题三:并发执行问题 总结 探索Invoke:P

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver