WSL2-Ubuntu使用Conda配置百度飞浆paddlepaddle虚拟环境

本文详细描述了在Windows11的WSL2环境下,如何在Ubuntu20.04.6上使用Conda配置百度飞桨PaddlePaddle的GPU虚拟环境,包括遇到的问题(如库文件缺失、版本匹配等),并提供了详细的解决方案,确保`run_check()`的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x00 缘起

本文将介绍在WSL2-Ubuntu系统中,使用Conda配置百度飞浆paddlepaddle虚拟环境中所出现的各种问题以及解决方法,最终运行"run_check()"通过测试。

在WSL2中配置paddlepaddle不像配置Pytorch那样顺滑,会出现各种问题(如:库的文件缺失、不知道如何匹配CuDNN、CUDA和Paddle版本等),本文将全部介绍到。

本文将默认读者已经安装好WSL2-Ubuntu 20.04.6 LTS、MiniConda以及Python集成开发环境(如Pycharm),本文将在此基础至上进行介绍。

运行环境如下:

1. 系统版本:Windows 11 专业版

2. 硬件信息:CPU: i7-9750H、RAM: 32GB、GPU: GTX 1650

3. 软件要求:WSL2-Ubuntu 20.04.6 LTS

4. GPU驱动信息:552.22

5. CUDA驱动版本:12.4.131

0x01 创建虚拟环境并激活

使用Pycharm创建名为paddle-gpu的项目,并选择到WSL2中的Conda,并创建新的环境。

1. 创建新项目

2. 添加WSL2中的Conda作为解释器

3. 修改终端自动加载WSL,修改Shell路径到wsl

4. 删除本地的虚拟环境

5. 查看当前的虚拟环境为“paddle-gpu”

6. 输出测试代码

当前虚拟环境搭建完成。

7. 控制台激活当前虚拟环境

当前为base环境,输入代码:“conda activate paddle-gpu”,为当前会话激活虚拟环境。

此时已经激活虚拟环境。

0x02 Conda安装飞浆Paddle-GPU

1. 查看GPU硬件驱动版本

输入nvidia-smi,查看硬件驱动版本:

- NVIDIA-SMI 550.76.01

- Driver Version: 552.22

- CUDA Version: 12.4

即在虚拟环境中,所使用的CUDA不能高于12.4,低于或等于12.4的CUDA是可以使用的。

2. 查看系统CUDA运行时环境版本

输入nvcc -V查看版本信息:

在全局系统中的CUDA版本为12.0.76,虚拟环境可以使用该版本,也可以安装其他版本,最高版本号不高于12.4即可。

3. Conda安装Paddle-GPU

本节参照官方文档:Linux 下的 Conda 安装-使用文档-PaddlePaddle深度学习平台Anaconda是一个免费开源的 Python 和 R 语言的发行版本,用于计算科学,Anaconda 致力于简化包管理和部署。Anaconda 的包使用软件包管理系统 Conda 进行管理。Condicon-default.png?t=N7T8https://www.paddlepaddle.org.cn/documentation/docs/zh/install/conda/linux-conda.html

 

安装GPU版本的PaddlePaddle,使用CUDA 11.7和cuDNN 8.4.1的安装命令:

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

Conda将统计安装信息,并询问你是否安装,输入'y'继续。 

显示done则为安装完成

4. 使用Paddle查看虚拟环境版本信息

清除main中的代码,使用以下代码查看版本信息:

import paddle

print("paddle version", paddle.__version__)
print("cudnn: ", paddle.version.cudnn())
print("cuda: ", paddle.version.cuda())

执行结果如下:

若cudnn的版本不对,请查看以下资料,使用conda安装指定版本cudnn:

conda install cudnn=8.4.1

Anaconda虚拟环境中安装cuda和cudnn并配置pytorch/tensorflow【更新ing】_cudnn明明是8.5-优快云博客文章浏览阅读3.3k次,点赞9次,收藏31次。本来打算配置下pytorch,我的cuda版本是11.5,发现能够适配的pytorch版本比较老,希望能用比较新的版本,所以通过学习在Anaconda虚拟环境中安装cuda配置更新版本的pytorch。同时,当我们去复现其他人项目时,往往需要特定的版本的cuda,cudnn,pytorch,tensorflow等,因此,学会安装不同的CUDA版本这很重要。提示:文章以配置pytorch为例,需要配置tensorflow的同学请看文末链接(没有的话后面会补充)2023.11.2。_cudnn明明是8.5https://blog.youkuaiyun.com/2301_80501457/article/details/134191613笔者使用上述命令,重新安装“cudnn=8.4.1”进行测试:

重新运行测试:

paddle-gpu虚拟环境中:

CUDA:11.7

cuDNN:8.4.1

5. 使用run_check()测试Paddle工作状态

在main中追加代码:

paddle.utils.run_check()

运行出错:

出错信息为:

...

The third-party dynamic library (libcuda.so) that Paddle depends on is not configured correctly. (error code is libcuda.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;

...

 提示环境中确实文件“libcuda.so”,或者环境变量:“LD_LIBRARY_PATH”没有被正确配置。

0x03 排查LD_LIBRARY_PATH与libcuda.so

在终端中输入:

${LD_LIBRARY_PATH}

结果如下:

-bash: cd: /usr/local/cuda-12.0/lib64:: No such file or directory

在虚拟环境中,“LD_LIBRARY_PATH”被代理成为“CONDA_PREFIX”,在LD_LIBRARY_PATH中缺失文件,即在CONDA_PREFIX的lib库中缺失文件。

故解决方法为:在CONDA_PREFIX的lib库中补齐文件,LD_LIBRARY_PATH作为全局环境无需补齐。

进入CONDA_PREFIX的lib库中,进行查询:

cd ${CONDA_PREFIX}/lib
ll | grep libcuda

发现缺失没有文件“libcuda.so”,从系统其他位置,copy一份libcuda.so到当前位置:

1. 全局搜索libcuda.so

sudo find / -mount -name libcuda.so*

发现目标文件:/usr/local/cuda-12.0/targets/x86_64-linux/lib/stubs/libcuda.so

2. 复制目标文件到${CONDA_PREFIX}/lib中

cd ${CONDA_PREFIX}/lib
cp /usr/local/cuda-12.0/targets/x86_64-linux/lib/stubs/libcuda.so .
ll | grep libcuda

此时,文件libcuda.so已被补齐。

再次运行测试:

 此时,PaddlePaddle is installed successfully !

0x04 其他可能出现的问题

1. libtinfo.so.6: no version information available (required by bash) 

这个问题在初次配置上出现过,再初次配置后,再配置其他环境没有报错,解决方法:

rm ${CONDA_PREFIX}/lib/libtinfo*
ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 ${CONDA_PREFIX}/lib/libtinfo.so.6

问题分析:虚拟环境中的lib库中的libtinfo过失,使用文件替换到新版本。

bash: anaconda3/lib/libtinfo.so.6: no version information available (required by bash)_/usr/local/miniconda3/lib/libtinfo.so.6-优快云博客文章浏览阅读531次。我在编译安装nccl 库的时候遇到的问题。代替 Anaconda 的。_/usr/local/miniconda3/lib/libtinfo.so.6https://blog.youkuaiyun.com/Shirelle_/article/details/136838521

0x05 后记

 在虚拟环境中的操作,一般都在conda文件夹下的虚拟环境目录下进行文件替换,这种文件替换操作不对全局环境造成影响,这是一种安全的文件替换方法。

对于在全局文件夹中的操作,要慎重进行!

在配置PaddlePaddle的同时也在配置Pytorch,Pytorch一次就可以测试通过,而在PaddlePaddle的过程中的出现了很多问题,这个问题可能也是影响Paddle流行度的一个原因。

- Stay Hangry,Stay Foolish!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值