Ubuntu18.04+CUDA11安装bitsandbytes出现的问题

文章讲述了在Ubuntu18.04系统中安装bitsandbytes库时遇到的CUDA版本不匹配问题,涉及确认动态库路径、设置BNB_CUDA_VERSION环境变量以及正确安装的步骤。
摘要由CSDN通过智能技术生成

背景

模型训练使用use_8bit_adam参数时,发现需要安装bitsandbytes库,于是直接pip install bitsandbytes 安装了,运行发现使用这个库还需要与cuda版本匹配, 于是根据报错内容逐步进行解决。
主要的报错和解决思路以下逐渐列出。

1. 确认系统查找动态库libcudart.so的路径

一开始报的错误是:

CUDA Setup failed despite GPU being available. (省略一些无关紧要的warning)
You might need to add them to your LD_LIBRARY_PATH...

关键词是LD_LIBRARY_PATH这个变量。于是首先用sudo find / -name "libcudart.so*" 查找了一下需要的动态库是否存在于系统中,发现在系统中能够查找到之后,echo $LD_LIBRARY_PATH 查看了一下当前系统查找动态库的路径,发现的确不存在,将查找到的路径添加进去便解决这个问题了。

2. 确认系统CUDA版本和bitsandbytes是否匹配

解决问题1之后,又运行python -m bitsandbytes 进行确认,依然发生了问题:

/opt/conda/lib/python3.9/site-packages/bitsandbytes/cuda_setup/main.py:167: 

UserWarning: 
Found duplicate ['libcudart.so', 'libcudart.so.11.0', 'libcudart.so.12.0'] 
files: {PosixPath('/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudart.so'), PosixPath('/usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudart.so.11.0')}.. 

We select the PyTorch default libcudart.so, which is {torch.version.cuda},but this might missmatch with the CUDA version that is needed for bitsandbytes.

To override this behavior set the BNB_CUDA_VERSION=<version string,
e.g. 122> environmental variableFor example, 
if you want to use the CUDA version 122BNB_CUDA_VERSION=122 python ...OR set the environmental variable in your .bashrc: export BNB_CUDA_VERSION=122
In the case of a manual override, make sure you set the LD_LIBRARY_PATH, e.g.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.2

大意是bitsandbytes库在环境中找到了libcudart.so, 但是这与bitsandbytes需要使用的不一致。
于是,按照报错中的提示,首先nvcc -V找到系统使用的CUDA版本, 然后配置BNB_CUDA_VERSION变量,例如cuda 是11.6的话:

export BNB_CUDA_VERSION=116

最后重新安装bitsandbytes,运行python -m bitsandbytes 再次确认即可。

3. 成功的标识

成功后会输出在系统中找到的多个动态库路径等信息,输出的结尾中会显示SUCCESS,如下图所示:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steptoward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值