报错1
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)
报错2:
W0312 20:57:52.832906 33873 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 11.7, Runtime API Version: 11.7
Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory
已放弃 (核心已转储)
报错3:
Could not load library libcudnn_ops_infer.so.8. Error: libcublas.so.11: cannot open shared object file: No such file or directory
解决方法:
1、先查看自己的cuda版本,下载对应cuda版本的paddle-gpu
- 查看cuda版本:nvcc -V
- 查看paddle-gpu版本:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html#gpu
2、查看自己有无安装cudnn库,如果有,本地会有一个下载好的文件
- cudnn下载链接:cuDNN Archive | NVIDIA Developer
- 下载的cudnn库文件路径:cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib
3、查找下上述报错缺失的库【libcudnn_ops_infer.so.8、libcublas.so.11】在哪
发现:
- libcudnn_ops_infer.so.8:在这里/home/用户名/cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib
- libcublas.so.11:在这里/home/用户名/project/dm/venv_38/lib/python3.8/site-packages/nvidia/cublas/lib 【这个是自己用virtualenv创建的python虚拟环境中安装的一个python库】
3、把找到的路径放在export LD_LIBRARY_PATH
冒号在linux中的意思是分隔符,PATH: HOME/bin表示在保留原来的PATH环境变量的基础上,再增加HOME/bin这个路径作为新的$PATH环境变量,用多个冒号隔开多个路径,让系统运行命令时会逐个在路径下找对应的so共享库。
把缺失文件的库所在的lib路径,补充到LD_LIBRARY_PATH环境变量里面,用冒号隔开新旧路径。如:
- 原来路径:****export LD_LIBRARY_PATH=.:/usr/local/cuda-11.7/lib64:
- 新增路径:****export LD_LIBRARY_PATH=.:/usr/local/cuda-11.7/lib64:/home/用户名/cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib
- 继续新增路径:export LD_LIBRARY_PATH=.:/usr/local/cuda-11.7/lib64:/home/用户名/cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib:/home/用户名/project/dm/venv_38/lib/python3.8/site-packages/nvidia/cublas/lib
gedit ~/.bashrc
在文件最下面补充这个:
export LD_LIBRARY_PATH=.:/usr/local/cuda-11.7/lib64:/home/用户名/cudnn-linux-x86_64-8.6.0.163_cuda11-archive/lib:/home/用户名/project/dm/venv_38/lib/python3.8/site-packages/nvidia/cublas/lib
source ~/.bashrc
然后重新运行paddle-gpu相关程序,问题消失
版权归原作者 贝叶斯巴达 所有, 如有侵权,请联系我们删除。