前言:咱首先来看一下报错信息好吧,如下:
Running verify PaddlePaddle program …
I1112 19:27:37.248370 2615955 interpretercore.cc:237] New Executor is Running.
W1112 19:27:37.248539 2615955 gpu_resources.cc:119] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 12.2, Runtime API Version: 11.7
W1112 19:27:37.249217 2615955 gpu_resources.cc:149] device: 0, cuDNN Version: 8.9.
W1112 19:27:38.075939 2615955 dynamic_loader.cc:303] The third-party dynamic library (libcuda.so) that Paddle depends on is not configured correctly. (error code is libcuda.so: cannot open shared object file: No such file or directory)
Suggestions:
1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed.
2. Configure third-party dynamic library environment variables as follows:
- Linux: set LD_LIBRARY_PATH by
export LD_LIBRARY_PATH=...
- Windows: set PATH by `set PATH=XXX;
简而言之,就是说缺少这个东西 libcuda.so
(好像是属于CUDA的一个文件什么的),好,那我们开始步入正题:
一、不断的 尝试/试错 之路(真的!踩了好多坑!!)
1、最开始我一直以为是CUDA的版本 与 PaddlePaddle的版本不适配造成的
因为我的环境显卡驱动是CUDA12.2 ,然后 PaddlePaddle的官方最多只支持到 CUDA12.0。(如下图所示)这让我一度非常的头疼,难道我就只能降低CUDA的版本这一唯一的办法?
后面还是根据报错信息查了好多博客,看根据报错的信息进行操作能否解决问题:结果试了几天,用了Export
以及 cp libsuda.so
的一些命令,都是无济于事,于是又开始纠结应该是版本的适配问题。
2、既然还认为是版本不适配的问题,那就把与PaddlePaddle适配的其他CUDA版本都试一遍
把CUDA11.7, CUDA10.2,CUDA11.2…等都试了一遍,结果还是不行,并且发现下载适配较低版本的CUDA,报的错还不一样,服了,那就只有停滞一段时间了
3、但是过几天就要展示实验了,用CPU跑速度慢就算了,还经常出现中断的问题
就是完成跑不了一点,然后去请教了实验室的师姐,看她有没有安装过,他说CUDA的高版本是兼容低版本的,大概率不是版本的适配问题,于是听了她的话后又开始重新振作起来了,继续搞!!
4、这里附上几个我参考的连接,我也是认真研读分析了
(1)The third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctly
(2)The third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctly(第2个版本)
(3)Paddle is not configured correctly cannot open shared object file: No such file or directory
(4)The third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctly.(error code is /usr/local/cuda/lib64/libcudnn.so: cannot open shared object file: No such file or directory)
(5)The third-party dynamic library #7089
(6)【解决paddle运行错误-libcuda.so软链接问题】The third-party dynamic library (libcuda.so) that Paddle depends
5、结果发现(1)-(4) 全部在说少了 libcudnn.so
, 而我少的是 libcuda.so
!!!这里一定要看清楚啊
然后他们做的无非也就是 find
和 Export
操作,那么我想, 同样的问题也可以用到 libcuda.so
上吧,于是也折磨了一番,NO!还是不行啊
6、然后找到(5),(6)两篇博客,他们与我的问题是一致的,按照他们的来呗,那就。结果就是(5)不行,(6)行,哇塞!成功后的样子如下:
二、属于我的正确的,解决问题的操作流程如下(大家的造成报错的原因可能不同,所以用我的流程不一定正确)
1、首先查看本地的 libcuda.so
的路径
使用如下命令:
locate libcuda.so
得到如下结果:
2、开始进行软链接(按照以上博客(6)中的操作)
我这边输入的命令如下:
sudo ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so
然后问题得到了完美的解决!!!(这张成功的图片再播放一遍)