TensorFlow创建会话失败报错求助:CUDA驱动版本不足
Hey there! Let's break down what's going on here and fix that error.
核心问题分析
你看到的关键错误是:
E tensorflow/core/common_runtime/direct_session.cc:167] Internal: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
这是因为TensorFlow 1.7.0和你当前的CUDA版本不匹配。官方明确要求TensorFlow 1.7.0需要搭配CUDA 9.0(以及对应的CuDNN 7.0),但你现在用的是CUDA 8.0,导致CUDA runtime(工具包)和驱动版本的要求冲突了。
具体解决步骤
第一步:确认版本对应关系
TensorFlow 1.7.0的依赖要求:- CUDA Toolkit 9.0
- CuDNN v7.0
- NVIDIA驱动版本至少384.x(因为CUDA 9.0需要这个最低驱动版本)
第二步:升级CUDA Toolkit到9.0
先卸载现有的CUDA 8.0:sudo apt-get purge nvidia-cuda* # Debian/Ubuntu系统适用 # 或者使用CUDA自带卸载脚本 sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl然后下载并安装和你操作系统匹配的CUDA 9.0版本,安装时注意不要覆盖已有的符合版本要求的NVIDIA驱动。
第三步:安装对应版本的CuDNN 7.0
下载适配CUDA 9.0的CuDNN压缩包,解压后将文件复制到CUDA安装目录:tar -xzvf cudnn-9.0-linux-x64-v7.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda-9.0/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64 sudo chmod a+r /usr/local/cuda-9.0/include/cudnn*.h /usr/local/cuda-9.0/lib64/libcudnn*第四步:配置环境变量
编辑你的shell配置文件(比如~/.bashrc或~/.zshrc),添加以下内容让系统指向CUDA 9.0:export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH执行命令让配置生效:
source ~/.bashrc第五步:重新测试代码
再次运行你的test.py,应该就能正常创建Session了。
补充说明
你尝试指定GPU没用,是因为这个问题根本不是GPU选择的问题,而是整个CUDA环境和TensorFlow版本不兼容。同事能正常运行,说明他们的环境完全符合TensorFlow 1.7.0的依赖要求。
内容的提问来源于stack exchange,提问作者Jo_

