[踩坑记] CUDA环境下bitsandbytes安装报错/异常解决

在部署大模型LLaMA时遇到bitsandbytes安装和使用异常,问题源于CUDA环境不纯净。通过删除所有CUDA版本,重新安装cuDNN和CUDA11.7,然后在conda环境下安装bitsandbytes,最终成功解决报错问题。

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

关键词:模型量化,bitsandbytes,bitsandbytes报错,大模型环境,CUDA环境

1. 问题描述

在部署大模型LLaMA的过程中,需要安装量化工具包bitsandbytes,环境如下:
操作系统:Ubuntu 18.04
GPU:4xA100 40G
CUDA:11.7
cuDNN:8.4
bitsandbytes: 0.38.0
github库

conda python环境下,通过pip install bitsandbytes直接安装,或是按源码编译安装,在python -m bitsandbytes检测时均出现异常。详见ISSUES),主要异常内容如下:

File 'bitsandbytes/cextension.py', line 20, in <module> raise RuntimeError('''
RuntimeError:
CUDA Setup failed despite GPU being available. Inspect the CUDA SETUP outputs above to fix your environment!
''')

在环境变量LD_LIBRARY_PATH中增加CUDA的lib路径,问题依旧。重新编译出现异常内容如下:

nvcc fatal: Unsupported gpu architecture 'compute_75'

在环境变量中增加CUDA_HOME,编译成功,但执行模块加载后出依然出现问题:

RuntimeError:
CUDA Setup failed despite GPU being available. Please run the following command to get more information: 

python -m bitsandbytes

Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them to your LD_LIBRARY_PATH. ...

bitsandbytes仓库中发布ISSUES,无论是增加环境变量,还是重新编译,均没有解决。

2. 过程分析

新环境安装:在另外一台GPU测试机GTX TITAN X(lspci | grep -i nvidia)上安装CUDA11.7和cuDNN,并安装bitsandbytes(python -m bitsandbytes),一切正常。

确定问题出在系统环境上,咨询OP环境情况,原来系统中安装了CUDA10后来没有删除又安装了CUDA11,删除CUDA10后,可能系统中有信息残留,导致上述各种问题的出现,总之就是CUDA环境不干净!

3. 解决方法 ISSUES

删除系统中的所有的CUDA程序,包括源码安装的和工具安装的CUDA(apt-get uninstall),确保nvidia-smi, nvcc不再可用。

重新在干净的系统上依次安装cuDNNCUDA,之后重启系统,在conda python环境下通过pip install bitsandbytes安装bitsandbytes,通过python -m bitsandbytes验证,安装成功。

-------- END --------

### 解决CUDA版本显示不正确的问题 当遇到CUDA版本显示不正确的情况时,通常是因为某些环境变量配置不当或软件包之间的依赖关系冲突所致。针对bitsandbytes库检测到较低版本的CUDA问题,可以采取以下措施来解决问题[^1]。 #### 修改`PATH`和`LD_LIBRARY_PATH` 确保系统的`PATH`以及`LD_LIBRARY_PATH`环境变量指向的是最新版CUDA工具链的位置而非旧版本路径。可以通过编辑`.bashrc`文件或其他shell初始化脚本来调整这些设置: ```bash export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 上述命令假设CUDA安装到了默认位置 `/usr/local/` 下面,并且当前使用的版本号为 `11.6` 。如果实际情况不同,则需相应修改路径中的版本号部分。 #### 更新或重新编译相关Python扩展模块 有时第三方库可能基于特定版本构建而成,在这种情况下即使系统上存在更高版本也可能无法正常识别。对于这种情况建议尝试更新该库至支持新版本CUDA的新发行版;或者自行下载源码并按照官方文档说明进行本地化定制编译操作以适应现有开发环境需求。 另外值得注意的一点是在使用PyTorch框架时也需要确认其是否与所期望运行的目标硬件平台相兼容。可通过查阅官方发布的适配表单选择合适的预编译二进制包来进行安装[^3]。 #### 验证更改后的效果 完成以上步骤后重启终端会话使新的环境变量生效,接着再次测试程序能否正确报告预期的CUDA版本信息: ```python import torch print(f"CUDA Version: {torch.version.cuda}") ``` 通过执行这段简单的Python代码片段能够直观地验证问题是否得到妥善处理。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值