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

时间:2018-09-15 17:05:27

标签: python-2.7 tensorflow cuda

在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 TDT Jul 10 18:28:52 PDT 2018

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

nvcc --version

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

版权所有(c)2005-2016 NVIDIA Corporation

基于Sun_Sep__4_22:14:01_CDT_2016

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

6 个答案:

答案 0 :(得分:2)

在我刚刚解决的情况下,它是将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更新的版本(它是410;这是AWS上的p2.xlarge实例)。

答案 1 :(得分:1)

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

您可以检查cuda工具包的兼容性here。然后从here下载nvidia驱动程序。

答案 2 :(得分:0)

此错误的原因是您安装的Cuda Toolkit版本与python软件包cudatoolkit的版本不匹配,该软件包通常作为tensorflow-gpu的依赖项安装。

要解决此问题,您必须首先将tensorflow版本与已安装的Cuda Toolkit版本匹配,如图here

然后,您必须检查cudatoolkit软件包的版本。这必须匹配主要版本和次要版本,例如如果您已安装Cuda Toolkit 9.0且已安装cudatoolkit9_1,则需要通过python降级到cudatoolkit9。

答案 3 :(得分:0)

对于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

答案 4 :(得分:0)

只需更新您的nvidia驱动程序,它将解决问题

答案 5 :(得分:0)

同样的问题。解决了更新nvidia驱动程序的问题,因为我正在使用tensorflow 2.1,并且它需要更新的驱动程序。如此,我使用的是390,并通过Ubuntu的软件管理器更新为435。