cudaGetDevice()执行失败。状态: CUDA驱动程序版本不足以支持CUDA运行时版本。

10

当我在GPU上运行tensorflow时,出现了以下错误。

2018-09-15 18:56:51.011724: E tensorflow/core/common_runtime/direct_session.cc:158] Internal: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version
Traceback (most recent call last):
  File "evaluate_sample.py", line 160, in <module>
    tf.app.run(main)
  File "/anaconda3/envs/tf/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "evaluate_sample.py", line 123, in main
    with tf.Session() as sess:
  File "/anaconda3/envs/tf/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1494, in __init__
    super(Session, self).__init__(target, graph, config=config)
  File "/anaconda3/envs/tf/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 626, in __init__
    self._session = tf_session.TF_NewSession(self._graph._c_graph, opts)
tensorflow.python.framework.errors_impl.InternalError: Failed to create session.

以下错误是从哪里引起的?

E tensorflow/core/common_runtime/direct_session.cc:158] Internal: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version

tensorflow.python.framework.errors_impl.InternalError: 无法创建会话.

我的tensorflow版本为:1.10

cat /proc/driver/nvidia/version

NVRM版本:NVIDIA UNIX x86_64内核模块390.77,2018年7月10日星期二下午6:28:52 PDT

GCC版本:gcc版本7.3.0(Debian 7.3.0-28)

nvcc --version

nvcc: NVIDIA(R)Cuda编译器驱动程序

版权所有(c)2005-2016 NVIDIA公司

构建于Sun_Sep__4_22:14:01_CDT_2016

Cuda编译工具,版本8.0,V8.0.44


您的驱动程序安装不正确。Debian 不支持 CUDA,如果您使用 Debian 工具安装了驱动程序,那可能是问题所在。 - Robert Crovella
7个回答

8

更新nvidia驱动程序可以解决此问题。

您可以在此处检查您的CUDA工具包兼容性。然后从此处下载更新的nvidia驱动程序。


5
这个错误的原因是您安装的Cuda Toolkit版本与通常作为tensorflow-gpu依赖项安装的python包cudatoolkit的版本不匹配。
为了解决这个问题,您首先需要将tensorflow版本与已安装的Cuda Toolkit版本匹配,如此处所示。
然后您需要检查cudatoolkit软件包的版本。这需要匹配主要和次要版本,例如,如果您安装了Cuda Toolkit 9.0并且安装了cudatoolkit9_1,则需要通过您的python降级到cudatoolkit9。

4
在我刚刚解决的案例中,是将GPU驱动程序更新到最新版本并安装cuda工具包。你的错误提示你的CUDA驱动程序版本太旧了。我认为我们看到的nvcc版本是7.5,而你有7.3。
我认为你只需要执行以下操作:sudo apt install nvidia-cuda-toolkit 然后重新启动即可。
以下是我处理无法找到libcuda.so.1文件问题的步骤:
首先,添加了ppa并安装了更新的GPU驱动程序:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-390

添加ppa后,会显示驱动程序版本选项,390是最新的“稳定”版本。

然后安装cuda工具包:

sudo apt install nvidia-cuda-toolkit

然后重新启动:

sudo reboot

它将驱动程序更新到比第一步中安装的390版本更新的版本(这是在AWS上的p2.xlarge实例,版本号为410)。


谢谢,这很有帮助。顺便说一下,我按照上面的步骤,在p2.xlarge实例上操作,但我不需要重新启动。 - James Adams

1

只需更新您的Nvidia驱动程序,问题就可以解决。


1
如果可能的话,请提供特定的驱动程序版本,并提供更新驱动程序的步骤。 - pumpkin_cat

0

升级到Tensorflow 2.6.0解决了我的问题。

pip install --upgrade TensorFlow

0

同样的问题。通过更新Nvidia驱动程序解决了,因为我正在使用TensorFlow 2.1,它需要更新的驱动程序。所以,我从390更新到435,通过Ubuntu的软件管理器。


-2

针对Ubuntu 18.04和Tensorflow 1.13.1

首先确保系统是最新的:

sudo apt update
sudo apt dist-upgrade
sudo reboot now

安装更新的驱动程序:

sudo add-apt-repository ppa:graphics-drivers/ppa

打开“软件和更新”,选择“附加驱动程序”选项卡:

选择nvidia-driver-396并单击“应用更改”

现在重新启动:

sudo reboot now

验证当前是否激活 NVIDIA 驱动程序 396:

nvidia-smi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接