【问题标题】:cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime versioncudaGetDevice() 失败。状态:CUDA 驱动程序版本对于 CUDA 运行时版本不足
【发布时间】:2019-02-20 03:38:09
【问题描述】:

当我在 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:创建会话失败

这就是我的版本:

张量流是:1.10

cat /proc/driver/nvidia/version

NVRM 版本:NVIDIA UNIX x86_64 内核模块 390.77 Tue 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

【问题讨论】:

  • 您的驱动程序安装不正确。 debian 不是 CUDA 支持的操作系统,如果您使用 debian 工具安装驱动程序,则可能是问题

标签: python-2.7 tensorflow cuda


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这个错误的原因是你安装的Cuda Toolkit版本和python包cudatoolkit的版本不匹配,通常是作为tensorflow-gpu的依赖安装的。

    为了解决这个问题,您必须首先将您的 tensorflow 版本与您安装的 Cuda Toolkit 版本相匹配,如 here 所示

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

    【讨论】:

      【解决方案3】:

      在我刚刚解决的情况下,它是将 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 实例)。

      【讨论】:

      • 谢谢,这很有帮助。顺便说一句,我在 p2.xlarge 实例上也遵循了上述操作,但我不需要重新启动。
      【解决方案4】:

      只需更新您的 nvidia 驱动程序即可解决问题

      【讨论】:

      • 尽可能提供更新驱动程序的步骤以及具体的驱动程序版本
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        pip install --upgrade TensorFlow
        

        【讨论】:

          【解决方案7】:

          适用于 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 并点击 Apply Changes

          现在重启:

          sudo reboot now
          

          验证哪个 NVIDIA 驱动程序 396 处于活动状态:

          nvidia-smi
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-12-31
            • 2011-03-16
            • 1970-01-01
            • 2017-05-15
            • 1970-01-01
            • 2021-02-07
            • 2017-03-07
            • 2017-04-14
            相关资源
            最近更新 更多