0、前言
在配置深度学习环境时,若想使用GPU加速,就需要安装CUDA、CUDNN,然而在系统中安装的话,若不同框架需要的版本不同,就会比较麻烦。因此,一种比较方便的做法是:利用conda管理不同的python虚拟环境,然后在每个虚拟环境安装所需的版本。
1、安装CUDA、CUDNN
这部分主要参考这篇博客:https://blog.csdn.net/qq_43705697/article/details/121618276
通过conda search找到所需的版本,然后以离线包的形式安装:
# 先搜索CUDA和CUDNN
conda search cudatoolkit --info
conda search cudnn --info
# 将所需要的版本包下载下来,然后安装
conda install --use-local 本地cuda包所在的路径
conda install --use-local 本地cudnn包所在的路径
2、安装paddlepaddle-gpu
按照官网提供的方式安装即可:
python -m pip install paddlepaddle-gpu==2.4.2.post117 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
安装完毕之后,通过如下方式验证:
import paddle
paddle.utils.run_check()
不出意外的话,就会出现意外~~~验证不通过!会有如下报错:
PreconditionNotMetError: 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)
[operator < fill_constant > error]
PreconditionNotMetError: The third-party dynamic library (libcublas.so) that Paddle depends on is not configured correctly. (error code is libcublas.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; (at /paddle/paddle/phi/backends/dynload/dynamic_loader.cc:305)
[operator < matmul_v2 > error]
接下来,我们只需要配置一下环境变量即可:
# 打开配置文件
sudo vim ~/.bashrc
# 添加如下命令:需要将里面的路径替换为你的安装路径
# 注意:这里四个变量的顺序不要随意变更,不然也会验证不通过(PS:一开始我是把envs/paddle/include、envs/paddle/lib放在前面的,就会提示找不到so文件,后来放到后面就正常了)
export LD_LIBRARY_PATH=/data/miniconda3/pkgs/cudatoolkit-11.7.0-hd8887f6_11/lib
export LD_LIBRARY_PATH=/data/miniconda3/pkgs/cudnn-8.4.1.50-hed8a83a_0/lib
export LD_LIBRARY_PATH=/data/miniconda3/envs/paddle/include
export LD_LIBRARY_PATH=/data/miniconda3/envs/paddle/lib
# 使之生效
source ~/.bashrc
然后,再进行验证,即可通过: