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

相关文章

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

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