百度Paddlepaddle-GPU运行时出现Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion

目录

  • 错误信息
  • 问题分析
  • 解决方案
    • 第一步 查看shared library中有没有libcudnn.so和libcublas.so
    • 第二步 找到libcudnn.so和libcublas.so的位置
    • 第三步 在shared library中创建libcudnn.so和libcublas.so
      • 1、进入/usr/lib文件夹
      • 2、创建libcudnn.so和libcublas.so
      • 3、检查是否创建成功并运行程序

错误信息

W0622 15:00:12.455324 5194 device_context.cc:252] Please NOTE: device: 0, CUDA Capability: 50, Driver API Version: 10.1, Runtime API Version: 10.0
W0622 15:00:12.457255 5194 init.cc:216] Warning: PaddlePaddle catches a failure signal, it may not work properly
W0622 15:00:12.457265 5194 init.cc:218] You could check whether you killed PaddlePaddle thread/process accidentally or report the case to PaddlePaddle
W0622 15:00:12.457269 5194 init.cc:221] The detail failure signal is:

W0622 15:00:12.457274 5194 init.cc:224] *** Aborted at 1592809212 (unix time) try "date -d @1592809212" if you are using GNU date ***
W0622 15:00:12.458534 5194 init.cc:224] PC: @ 0x0 (unknown)
W0622 15:00:12.458623 5194 init.cc:224] *** SIGSEGV (@0x0) received by PID 5194 (TID 0x7fe6aeb1e740) from PID 0; stack trace: ***
W0622 15:00:12.459789 5194 init.cc:224] @ 0x7fe6ae70c890 (unknown)
W0622 15:00:12.460836 5194 init.cc:224] @ 0x0 (unknown)
...
----------------------
Error Message Summary:
----------------------
Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion at (/paddle/paddle/fluid/platform/dynload/cudnn.cc:63)

问题分析

cuda和cudnn的版本是没问题的,估计是安装它们的时候有些步骤跳过所以引发这个Bug。根据Error的描述可以知道是libcudnn和libcublas的软连接没有添加到shared library中。

解决方案

第一步 查看shared library中有没有libcudnn.so和libcublas.so

在终端中输入ls /usr/lib |grep lib,可以看到shared library中并没有libcudnn.so和libcublas.so。
百度Paddlepaddle-GPU运行时出现Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion_第1张图片

第二步 找到libcudnn.so和libcublas.so的位置

输入locate libcudnn.solocate libccublas.so
百度Paddlepaddle-GPU运行时出现Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion_第2张图片
百度Paddlepaddle-GPU运行时出现Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion_第3张图片

第三步 在shared library中创建libcudnn.so和libcublas.so

注意创建软连接的时候源文件地址一定不能填错,根据第二部所得的路径创建它们的软连接。

1、进入/usr/lib文件夹

cd /usr/lib

2、创建libcudnn.so和libcublas.so

sudo ln -s /home/haoluo/Downloads/cuda/lib64/libcudnn.so.7.6.4 libcudnn.so
sudo ln -s /home/haoluo/anaconda3/lib/libcublas.so.10.2.1.243 libcublas.so

在这里插入图片描述

3、检查是否创建成功并运行程序

ls /usr/lib |grep lib

百度Paddlepaddle-GPU运行时出现Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion_第4张图片
程序正常运行:
在这里插入图片描述

如果对您有帮助的话,希望大家点个赞鼓励鼓励,嘻嘻!

你可能感兴趣的:(Bug解决方案)