paddle-gpu的安装和错误解决
peddle-gpu的使用需要注意cuda和cudnn版本,如果是CPU版本可以直接安装使用。当我们同时安装了GPU和CPU版本paddle的时候,需要如果安装的GPU版本和CUDA版本不符合,会直接使用CPU,并且不会报错使用GPU错误。
在官网挑选合适版本
官网:
https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html
需要注意的是CUDA版本的选择,pip安装即可。如果安装paddle的版本和CUDA版本不对应,这个时候不会使用GPU(甚至都不会报错),直接使用的CPU。
验证安装
进入python交互环境,输入:
import paddle
gpu_available = paddle.device.is_compiled_with_cuda()
print("GPU available:", gpu_available)
print(paddle.utils.run_check())
当 paddle.device.is_compiled_with_cuda()是false的时候一般是paddle-gpu版本没安装对(前提是CUDA已经正常安装)
如果成功打印以下内容,则说明安装成功:
错误处理
错误一:如果出现错误,不必惊慌,报错内容多为:
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:64)
[operator < fill_constant > error]
一般多是没有将cuda相关内容导入到共享库所致。
解决方法
- 找到libcudnn.so和libcublas.so的地址
locate libcudnn.so
locate libcublas.so
locate指令使用前可以使用 updatedb来更新索引库,也可以用find指令找对应文件。
2. 进入/usr/lib,将 libcudnn.so 和 libcublas.so 软链接到目录。
cd /usr/lib
sudo ln -s /{path}/cudnn/lib/libcudnn.so.9 libcudnn.so
sudo ln -s /{path}/cublas/lib/libcublas.so.12 libcublas.so
path是对应parent路径,笔者这里的path为
/home/user1/miniconda3/envs/ai/lib/python3.11/site-packages/nvidia
3.对应的路径LD_LIBRARY_PATH加入到环境变量,让paddle能识别到:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user1/miniconda3/envs/ai/lib/python3.11/site-packages/nvidia/cudnn/lib/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user1/miniconda3/envs/ai/lib/python3.11/site-packages/nvidia/cublas/lib/
4.重新执行 验证安装 步骤,成功。
错误二:
/home/XXXXXX/anaconda3/bin/…/lib/libstdc++.so.6: version ‘GLIBCXX_3.4.30’ not found (required by …
解决方案:
官方的另一个坑,对应conda环境下输入:
conda install -c conda-forge gcc=12.2.0
参考解决方案:https://github.com/PaddlePaddle/Paddle/issues/56047
错误三:Paddle-GPU 2.6.2/2.6.1 + PaddleOCR 2.9.1内存使用错误(内存泄漏)
应该说是遇到的问题,在安装完毕后,安装paddleOCR进行ocr识别,能够完成识别。但是显存使用很高,我使用PP-OCRv4模型(14M+),并且OCR识别2M左右的PDF论文,加上paddle框架加载到显存,一共使用了5G+的显存(太夸张了),并且如果不杀掉进程无法释放显存。后续可能会导致程序挂掉的可能。
同样有P友遇到了这个问题:https://github.com/PaddlePaddle/PaddleOCR/issues/14203
解决方案
安装最新版paddle (3.0-beta) 解决问题
最后显存使用从5G-7G降到了800M~1.5G左右的占用,同时也能释放掉显存。
错误四 - paddlepaddle和paddlepaddle-gpu版本不匹配
由于paddle-gpu=3.0b,前文中安装的paddle是2.6版本,如果搭配使用可能会导致报错:
而且报错的方式很奇怪,我是使用指令将这些包安装在一个lib文件夹中:
python3 -m pip install -r requirements.txt --upgrade --no-warn-conflicts --target ./cache/lib
从文件夹中读取包然后运行,就会出现报错。
如果使用pip单个安装这些包的时候,不安装到某个文件夹就没报错(没找到原因)
解决方法
paddle-gpu=3.0b 搭配 paddle=3.0b
参考:https://github.com/PaddlePaddle/PaddleOCR/issues/13327
错误五 :报错:AssertionError: …/distutils/core.pyc
解决方案
重新安装setuptools工具:
pip install setuptools==58.0.0
最后
paddle-gpu的使用需要注意cuda和cudnn版本,如果是CPU版本可以直接安装使用。
当我们同时安装了GPU和CPU版本paddle的时候,需要如果安装的GPU版本和CUDA版本不符合,会直接使用CPU,并且不会报错使用GPU错误。
参考:
https://blog.csdn.net/qq451882471/article/details/106967942
https://blog.csdn.net/qq_37085158/article/details/132598829
更多推荐
所有评论(0)