大三AI课作业要用到百度飞桨,按官网说的装了一下,没想到出一堆问题,整了一夜。ddl赶不上了,摆烂了,先记下问题的解决过程。

我的环境:

  • Ubuntu 22.04
  • cuda 11.8
  • 最终安装的飞桨版本:paddlepaddle-gpu 2.4.1.post117

问题一,用pip安装之后,cuda报错

按官网的
官网
安装之后,执行run_check检查是否安装成功

import paddle
paddle.utils.run_check()

我先是遇到Error: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion的问题,检查了cuda的版本和环境变量之后,依旧没有解决。在此期间我将cuda更新为了11.8,cudnn更新为了8.6.0,但报同样的错误。

期间,我的~./bashrc多了设环境变量的三两句,之后证明并非无用:

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME

参考了https://blog.csdn.net/qq451882471/article/details/106967942之后,将.so文件软连接过去,报错变成了
ExternalError: CUBLAS error(7). [Hint: Please search for the error code(7) on website (https://docs.nvidia.com/cuda/cublas/index.html#cublasstatus_t) to get Nvidia’s official solution and advice about CUBLAS Error.] (at /paddle/paddle/phi/kernels/funcs/blas/blas_impl.cu.h:35)

之后不了了之,最后改用conda建立新的虚拟环境来安装飞桨。

conda create -n pp python==3.9
conda activate pp
conda install paddlepaddle-gpu==2.4.1 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

期间解决了conda换源的问题,但依旧比pip慢很多。装好后进python,import paddle说找不到模块,要再次conda activate才行。

显示PaddlePaddle is installed successfully!表示安装成功
在这里插入图片描述

问题二,用jupyter notebook,说没有cuda环境变量

在pycharm的jupyter notebook中,运行官网代码,说input出错,运行run_check说LD_LIBRARY_PATH没有设置,但我在安装cuda时已经设过,而且用env也能看见。
在这里插入图片描述
在这里插入图片描述
查到是jupyter notebook没有继承环境变量,参考了https://github.com/jupyter/notebook/issues/1290,手动在jupyter运行之前的配置脚本里将路径加上,最终解决了问题

生成配置文件:

jupyter notebook --generate-config

查看文件路径,一般是~/.jupyter/jupyter_notebook_config.py

jupyter --config-dir

添加到文件开头:

import os
os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda/lib64'

再运行jupyter,没有报错了,可以跑模型了
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐