Arch Linux运行StableTuner时CUDA路径缺失及显存不足问题求助
问题1:libcudart.so 缺失 & bitsandbytes 加载CPU版本的解决方案
由于你通过conda安装了带cu116的PyTorch,CUDA runtime文件并不在系统/opt目录,而是存放在你的ST conda环境内部。
1. 定位CUDA runtime文件路径
先激活你的conda环境:
conda activate ST
执行以下命令查找libcudart.so的位置:
find $CONDA_PREFIX -name "libcudart.so" -type f
输出路径通常类似:/home/你的用户名/miniconda3/envs/ST/lib/python3.9/site-packages/torch/lib/libcudart.so,我们需要取该文件的父目录(即/home/你的用户名/miniconda3/envs/ST/lib/python3.9/site-packages/torch/lib/),注意替换路径中的python3.9为你环境实际的Python版本。
2. 配置LD_LIBRARY_PATH环境变量
临时生效(仅当前终端会话)
激活环境后执行:
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.x/site-packages/torch/lib/:$LD_LIBRARY_PATH
永久生效(每次激活环境自动配置)
创建并编辑环境激活脚本:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d touch $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
在env_vars.sh中加入以下内容(替换python3.x为实际版本):
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.x/site-packages/torch/lib/:$LD_LIBRARY_PATH
重新安装适配的bitsandbytes
确保bitsandbytes版本与cu116兼容,执行:
pip install bitsandbytes==0.37.2 --force-reinstall
问题2:torch.cuda.OutOfMemoryError 显存不足的解决方案
针对StableTuner训练,可通过以下方式降低显存占用:
- 启用梯度检查点:在训练配置中设置
gradient_checkpointing=True,以少量训练时间为代价减少显存消耗。 - 调小batch size:将脚本中的
batch_size参数降低至1或2,根据你的显存容量调整。 - 开启FP16混合精度训练:启用
fp16=True,PyTorch会自动使用半精度计算,大幅降低显存占用。 - 减少训练负载:缩小训练数据集规模,或降低训练图像分辨率(如从512x512改为256x256)。
- 关闭非必要功能:训练期间关闭验证步骤,降低日志保存频率,减少额外显存开销。
内容的提问来源于stack exchange,提问作者6010fd12
相关产品推荐
相关产品推荐

