服务器安装飞桨排雷
前言
确保服务器中已经安装完成 cudnn 组件,使用 nvidia-smi
指令确定自己服务器显卡的 CUDA版本,然后到飞桨官网上看下载对应版本的指令。
conda 创建新的虚拟环境,并配置 Jupyter 新内核
我自己的服务器上,原先装的有 PyTorch,为了避免安装Paddle需要很多依赖包,破坏原来PyTorch 的运行环境,所以最好还是新建一个环境,conda和内核配置参考自博客
# conda 创建新环境
conda create -n Paddle python=3.9
conda install ipykernel
python -m ipykernel install --user --name 虚拟环境名字 --display-name "jupyter浏览器中显示的名字"
# 查看已经安装的内核
jupyter kernelspec list
# 删除内核
jupyter kernelspec remove kernelname
# 安装 paddle
python -m pip install paddlepaddle-gpu==2.4.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
进入python中,尝试检测 Paddle 的完成性:
import paddle
paddle.__version__
paddle.utils.run_check()
出现报错:
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)
cd /home/username/.conda/envs/Paddle/lib
locate libcudnn.so
ln -s 已经有的.so.8文件,可以打开的链接 libcudnn.so
locate libcublas.so
ln -s 已经有的文件.so.10.2.1.243 libcublas.so
# 指定环境变量,代表使用的GPU是哪个,但这一句并没有起到作用
export CUDA_VISIBLE_DEVICES='0'
后参考自另一篇博客
# 覆写环境变量
conda env config vars set LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/usrname/.conda/envs/Paddle/include:/home/usrname/.conda/envs/Paddle/lib
出现额外报错:
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
按照上文中的解决方法,尝试:
locate libcudnn_ops_infer.so.8
ln -s /home/usrname/.conda/pkgs/cudnn-8.2.1.32-h86fa8c9_0/lib/libcudnn_ops_infer.so.8 libcudnn_ops_infer.so.8
至此,paddle 运行检测通过
卸载paddle:
python -m pip uninstall paddlepaddle-gpu