尝鲜Ubuntu22.04 下 PaddlePaddle-GPU安装踩坑记

简介: 尝鲜Ubuntu22.04 下 PaddlePaddle-GPU安装踩坑记

众所周知,之前飞桨一直不支持ubuntu22.04,只有比较老旧的ubuntu18.04, 16.04等老系统。


今天为了部署,特意安装ubuntu系统,装完ubuntu18.04才赫然发现,已经支持CUDA11.7了,突然想到这个版本是支持ubuntu22.04的,随即立刻下载新版本ubuntu,重新再次安装。


总结,今天安装了2次ubuntu。

  • ubuntu18.04 不自带显卡驱动,3060显卡下分辨率800*600很难搞。
  • ubuntu22.04 默认情况下不支持我的博通网卡(当年为了黑苹果特意买的)


0.硬件情况


  • 3060显卡一枚
  • 9400cpu一枚
  • 分区固态500Gb
  • 其他硬件


1.安装前系统准备


  • 装完系统,网卡不支持,通过手机USB网络共享上网(android系统自带)
  • 点击软件及更新,设置更新源为 阿里源 ,估计更新速度会快
  • 点击 “Additional Drivers”,选择nvidia-driver-520(proprietary)(英伟达显卡专用驱动)
  • 此外,选择Broadcom Wireless Network Adapter(无线网卡驱动)

更新ing,持续4个多小时,我的小水管流量心疼啊。。。。。。

image.png


2.安装 miniconda



3.安装 PaddlePaddle-GPU


打开 www.paddlepaddle.org.cn/ 官网,选择 conda、linux、2.4、cuda 11.7 。

image.png


3.1创建虚拟环境


首先根据具体的 Python 版本创建 Anaconda 虚拟环境,PaddlePaddle 的 Anaconda 安装支持 3.6 - 3.10 版本的 Python 安装环境。

conda create -n paddle_env python=YOUR_PY_VER


3.2 进入 Anaconda 虚拟环境


conda activate paddle_env


3.3 安装paddlepaddle-gpu=


  • 对于 CUDA 11.7,需要搭配 cuDNN 8.4.1(多卡环境下 NCCL>=2.7),安装命令为:
conda install paddlepaddle-gpu==2.4.0 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ 

切记:

不要按照官网:

conda install paddlepaddle-gpu==2.4.0 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

image.png

操作,要删掉  -c conda-forge, 否则安装会特别慢,说不定还会中断,切记。。。。。。


4.排除bug操作


4.1 ImportError: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

import paddle


>>> import paddle
Error: Can not import paddle core while this file exists: /home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/fluid/libpaddle.so
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/__init__.py", line 25, in <module>
    from .framework import monkey_patch_variable
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/framework/__init__.py", line 17, in <module>
    from . import random  # noqa: F401
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/framework/random.py", line 16, in <module>
    import paddle.fluid as fluid
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/fluid/__init__.py", line 36, in <module>
    from . import framework
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/fluid/framework.py", line 37, in <module>
    from . import core
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/fluid/core.py", line 304, in <module>
    raise e
  File "/home/livingbody/miniconda3/envs/p2/lib/python3.9/site-packages/paddle/fluid/core.py", line 249, in <module>
    from . import libpaddle
ImportError: libpython3.9.so.1.0: cannot open shared object file: No such file or directory


处理办法:


如下所示,各位根据自己路径进行修改。

(p2) livingbody@gaint:~/miniconda3/envs/p2/lib$ sudo cp libpython3.9.so.1.0 /usr/lib
[sudo] livingbody 的密码: 
(p2) livingbody@gaint:~/miniconda3/envs/p2/lib$ sudo cp libpython3.9.so.1.0 /usr/lib64


4.2 PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.


PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.

>>> paddle.utils.run_check()
Running verify PaddlePaddle program ... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/utils/install_check.py", line 269, in run_check
    _run_static_single(use_cuda, use_xpu, use_npu)
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/utils/install_check.py", line 173, in _run_static_single
    exe.run(startup_prog)
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/executor.py", line 1463, in run
    six.reraise(*sys.exc_info())
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/six.py", line 703, in reraise
    raise value
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/executor.py", line 1450, in run
    res = self._run_impl(program=program,
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/executor.py", line 1661, in _run_impl
    return new_exe.run(scope, list(feed.keys()), fetch_list,
  File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/executor.py", line 631, in run
    tensors = self._new_exe.run(scope, feed_names,
RuntimeError: In user code:
    File "<stdin>", line 1, in <module>
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/utils/install_check.py", line 269, in run_check
      _run_static_single(use_cuda, use_xpu, use_npu)
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/utils/install_check.py", line 159, in _run_static_single
      input, out, weight = _simple_network()
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/utils/install_check.py", line 33, in _simple_network
      weight = paddle.create_parameter(
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/layers/tensor.py", line 152, in create_parameter
      return helper.create_parameter(attr, shape, convert_dtype(dtype), is_bias,
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/layer_helper_base.py", line 381, in create_parameter
      self.startup_program.global_block().create_parameter(
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/framework.py", line 3965, in create_parameter
      initializer(param, self)
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/initializer.py", line 56, in __call__
      return self.forward(param, block)
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/initializer.py", line 184, in forward
      op = block.append_op(type="fill_constant",
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/framework.py", line 4017, in append_op
      op = Operator(
    File "/home/livingbody/miniconda3/lib/python3.9/site-packages/paddle/fluid/framework.py", line 2858, in __init__
      for frame in traceback.extract_stack():
    PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.
      [Hint: cudnn_d_handle should not be null.] (at /paddle/paddle/phi/backends/dynload/cudnn.cc:60)
      [operator < fill_constant > error]

解决办法:根据命令所知,需要的cuda、cudnn都已经安装,出现这个问题是找不到对应的动态库,所以要针对性处理。


4.2.1 mkdir


创建存放动态库的文件夹

mkdir /usr/local/cuda/lib64 -rf


4.2.2 拷贝 cuda 的 lib


拷贝动态库到lib

~/miniconda3/pkgs/cudatoolkit-11.7.0-hd8887f6_10/lib$ sudo cp * /usr/local/cuda/lib64 -rf


4.2.3 拷贝 cudnn 的 lib


覆盖性拷贝,同手动安装cudnn操作

~/miniconda3/pkgs/cudnn-8.4.1.50-hed8a83a_0/lib$ sudo cp * /usr/local/cuda/lib64/ -rf


4.2.4 设置 LD_LIBRARY_PATH 环境变量


编辑 .bahsrc


gedit ~/.bashrc

末尾添加

export LD_LIBRARY_PATH="/usr/local/cuda/lib64"


5.安装完毕


image.png

如果大家觉得有用,欢迎来个赞


相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
2月前
|
Ubuntu Linux
任何Ubuntu用户都应安装的四大Linux应用程序
当然,这款程序不需要太多介绍。我们面对的是网上最庞大最完整的多媒体中心,由于丰富的插件,我们能够高度细化地定制其每一项功能。这是我们的Linux发行版不可或缺的必备软件。 我们可以通过运行以下命令来轻松安装Kodi:sudo apt install kodi。
|
2月前
|
Ubuntu 物联网 Linux
从零安装一个Linux操作系统几种方法,以Ubuntu18.04为例
一切就绪后,我们就可以安装操作系统了。当系统通过优盘引导起来之后,我们就可以看到跟虚拟机中一样的安装向导了。之后,大家按照虚拟机中的顺序安装即可。 好了,今天主要介绍了Ubuntu Server版操作系统的安装过程,关于如何使用该操作系统,及操作系统更深层的原理,还请关注本号及相关圈子。
|
2月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
2月前
|
Ubuntu Unix Linux
在Windows上轻松安装和使用Ubuntu的方法详解
继续点击“Continue”按钮以继续安装流程,随后选择清理磁盘并安装操作系统的选项。 接下来,在安装过程中,你需要选择时区。为了与你的地理位置相匹配,请选择中国上海作为你的时区设置。 在安装过程中,你还需要设置计算机的名称以及账号密码。请务必牢记这些信息,因为它们将作为你登录系统的凭证。
|
15天前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
125 18
|
17天前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
89 15
|
17天前
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
75 14
|
18天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
207 7
|
1月前
|
消息中间件 人工智能 运维
Ubuntu环境下的 RabbitMQ 安装与配置详细教程
本文聚焦在Ubuntu下RabbitMQ安装与配置教程,旨在帮助读者快速构建稳定可用的消息队列服务。
|
2月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
111 13

热门文章

最新文章