已安装GPU驱动与CUDA,但TensorFlow无法检测GPU的技术求助
错误信息翻译
2023-07-15 15:15:23.440924: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] 无法加载动态库'cudart64_110.dll'; 错误信息: 找不到cudart64_110.dll
2023-07-15 15:15:23.441186: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] 如果你没有设置GPU,可以忽略上述cudart加载错误。
核心问题
你遇到的问题是TensorFlow版本与CUDA版本不匹配:
- 系统安装了CUDA 12.1,但降级后的TensorFlow 2.10仅支持CUDA 11.2,因此找不到对应版本的CUDA动态链接库(cudart64_110.dll属于CUDA 11.x系列)。
解决方案
方案一:继续使用TensorFlow 2.10(Windows原生环境)
卸载当前CUDA 12.1
打开控制面板→程序和功能,卸载所有带“NVIDIA CUDA”字样的程序(包括CUDA Toolkit、CUDA Runtime等)。安装对应版本的CUDA和cuDNN
- 下载CUDA Toolkit 11.2,安装时选择自定义安装,勾选核心组件(CUDA Runtime、CUDA Samples等),路径默认即可。
- 下载cuDNN 8.1.0 for CUDA 11.2,解压后将文件夹内的
bin、include、lib三个目录,分别复制到CUDA安装目录(默认是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2)的对应文件夹中。
配置环境变量
检查系统PATH变量,确保包含以下路径,若没有则手动添加:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\binC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\libnvvp
重启验证
重启PyCharm和终端,重新运行你的GPU检测代码:gpus = tf.config.list_physical_devices('GPU') if not gpus: print("No GPUs detected") else: print("GPUs detected:") for gpu in gpus: print(gpu)
方案二:升级TensorFlow到支持CUDA 12.1的版本(需WSL2)
TensorFlow 2.11及以后版本不再支持Windows原生GPU加速,必须通过WSL2(Windows子系统Linux)运行:
启用WSL2
以管理员身份打开PowerShell,运行命令:wsl --install按照提示重启电脑,完成Ubuntu等Linux发行版的安装。
在WSL2中配置环境
- 安装Python 3.8-3.10(TensorFlow兼容版本)。
- 安装TensorFlow 2.13+版本:
pip install tensorflow>=2.13 - 安装CUDA Toolkit 12.1和对应版本的cuDNN(按NVIDIA官方步骤操作)。
PyCharm配置WSL解释器
在PyCharm中添加WSL2的Python解释器,选择对应的Linux发行版和Python路径,之后运行代码即可。
内容的提问来源于stack exchange,提问作者PeterBe

