已安装兼容驱动但TensorFlow无法识别GPU问题求助
解决TensorFlow中cuFFT/cuDNN/cuBLAS工厂重复注册错误
问题本质
这类重复注册错误的核心原因是系统中存在多份CUDA相关库——你手动安装的系统级CUDA Toolkit,和TensorFlow通过tensorflow[and-cuda]自动安装的适配版CUDA依赖,两者加载时冲突,导致工厂类重复注册。虽然GPU能正常创建,但日志会抛出异常。
具体解决步骤
1. 清理冲突的CUDA依赖
- 卸载系统级CUDA Toolkit(TensorFlow通过pip安装的
[and-cuda]已经自带适配的CUDA库,无需系统级安装):# 针对.run文件安装的CUDA,执行卸载脚本 sudo /usr/local/cuda-12.0/bin/cuda-uninstaller # 删除残留目录 sudo rm -rf /usr/local/cuda-12.0 sudo rm -rf /usr/local/cuda - 卸载pip中重复的TensorFlow包:
pip uninstall -y tensorflow tensorflow[and-cuda] tensorflow-gpu - 重新安装官方适配的TensorFlow版本:
pip install "tensorflow[and-cuda]"
2. 修正环境变量,避免加载旧CUDA库
- 编辑你的shell配置文件(
~/.bashrc或~/.zshrc),删除所有手动添加的CUDA相关环境变量(比如export PATH=/usr/local/cuda/bin:$PATH、export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH这类)。 - 刷新环境变量:
source ~/.bashrc # 用zsh的话执行source ~/.zshrc
3. 验证修复效果
运行以下测试代码,检查日志是否正常:
import tensorflow as tf print("可用GPU设备:", tf.config.list_physical_devices('GPU')) print("GPU是否可用:", tf.test.is_gpu_available())
如果不再出现cuFFT/cuDNN/cuBLAS重复注册的错误,且GPU能被正常识别,说明修复成功。
替代方案(保留系统级CUDA)
如果需要保留系统级CUDA,可在运行TensorFlow脚本前,临时设置环境变量让Python优先加载TensorFlow自带的CUDA库:
export LD_LIBRARY_PATH=$(python -c "import tensorflow as tf; print(tf.sysconfig.get_lib())"):$LD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者Zulqarnain Bin Asif
相关产品推荐
相关产品推荐

