Latent-diffusion GPU运行异常:TensorRT库加载失败求助
解决Latent-diffusion在RTX4090+openSUSE Tumbleweed下无法使用GPU的问题
问题核心原因
- TensorRT版本冲突:同时存在
nvidia-tensorrt 99.0.0(NVIDIA占位包,无实际功能)和tensorrt 8.6.1,导致TF-TRT库加载路径混乱 - CUDA版本混杂:环境中同时安装了cu11和cu12系列库,RTX4090原生适配cu12,版本混杂会引发兼容性问题
- TensorFlow版本不匹配:
nvidia-tensorflow 1.15.5与tensorflow 2.11.0共存,二者API和CUDA适配逻辑冲突
分步解决方案
1. 彻底清理旧环境
- 退出并删除现有conda环境:
conda deactivate conda remove --name your_env_name --all -y rm -rf ~/miniconda3/envs/your_env_name # 替换为你的conda环境实际路径
2. 创建全新适配环境
- 创建指定Python版本的conda环境(Latent-diffusion推荐3.9版本):
conda create -n ld_gpu_env python=3.9 -y conda activate ld_gpu_env
3. 统一CUDA/TensorRT依赖
- 卸载所有冲突的TensorRT包:
pip uninstall -y nvidia-tensorrt tensorrt tensorrt-bindings tensorrt-libs - 安装适配cu12的TensorRT 8.6.1:
pip install tensorrt==8.6.1 --index-url https://pypi.nvidia.com - 安装cu12系列核心CUDA库:
pip install nvidia-cuda-runtime-cu12 nvidia-cudnn-cu12 nvidia-cublas-cu12
4. 修复TensorFlow版本
- 卸载冲突的TensorFlow包:
pip uninstall -y tensorflow nvidia-tensorflow - 安装适配cu12的TensorFlow 2.11.0:
pip install tensorflow==2.11.0 - 验证GPU识别:
输出应包含RTX4090设备信息,否则检查CUDA驱动是否正常。python -c "import tensorflow as tf; print('GPU设备列表:', tf.config.list_physical_devices('GPU'))"
5. 重新安装Latent-diffusion
- 进入项目目录并安装依赖:
cd ../imageGenerator/latent-diffusion-main pip install -e . - 补充PyTorch相关依赖(确保与CUDA版本兼容):
pip install pytorch-lightning==1.4.2 torch==2.0.1 torchvision==0.15.2
6. 配置环境变量
- 临时生效(当前终端):
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH # 替换为你的CUDA安装路径 export CUDA_VISIBLE_DEVICES=0 - 永久生效(加入
~/.bashrc):echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc echo 'export CUDA_VISIBLE_DEVICES=0' >> ~/.bashrc source ~/.bashrc
验证运行
执行Latent-diffusion的生成脚本,查看控制台输出是否包含GPU相关日志,确认GPU加速已启用。
内容的提问来源于stack exchange,提问作者Oscko
相关产品推荐
相关产品推荐

