【问题标题】:Ubuntu 16.04, CUDA 8 - CUDA driver version is insufficient for CUDA runtime versionUbuntu 16.04, CUDA 8 - CUDA 驱动程序版本对于 CUDA 运行时版本不足
【发布时间】:2017-05-15 13:23:22
【问题描述】:

我手动安装了最新的 nvidia 驱动程序 (375.26),并使用 cuda_8.0.44_linux.run 安装了 CUDA(跳过那里安装驱动程序,因为捆绑的驱动程序较旧,我认为是 367)。

但是,在 CUDA 示例中运行 deviceQuery 会产生以下错误:

~/cudasamples/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery$ ./deviceQuery 
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

cudaGetDeviceCount returned 35
-> CUDA driver version is insufficient for CUDA runtime version
Result = FAIL

版本信息:

$ nvcc --version

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

$ nvidia-smi
Sat Dec 31 17:25:03 2016       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 0000:01:00.0      On |                  N/A |
|  0%   39C    P8    11W / 230W |    464MiB /  8110MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0       974    G   /usr/lib/xorg/Xorg                             193MiB |
|    0      1816    G   compiz                                         172MiB |
|    0      2178    G   ...ignDownloads/Enabled/MaterialDesignUserMa    96MiB |
+-----------------------------------------------------------------------------+

$  cat /proc/driver/nvidia/version 
NVRM version: NVIDIA UNIX x86_64 Kernel Module  375.26  Thu Dec  8 18:36:43 PST 2016
GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 

类似问题的解决方案是更新 nvidia 显示驱动程序,但在我的情况下,这已经完成。有没有人有任何想法?谢谢。

【问题讨论】:

  • 您的机器上可能有一些以前安装的旧驱动程序组件。您可能还没有正确删除nouveau 驱动程序。我相信还有其他可能性。 cuda 8 linux install guide 涵盖了使 CUDA 在操作系统的干净负载上工作的所有必要信息。

标签: ubuntu cuda


【解决方案1】:

在我的实验中(Ubuntu 18.04 LTS - 在 Thinkpad 470s 上 - NVIDIA GeForce 940MX),我了解到网站 (https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html) 的此发行说明部分中的表 2.CUDA 工具包和兼容驱动程序版本是最安装 CUDA 驱动程序时需要牢记的重要信息。

另外,您可以通过命令检查来比较您的NVIDIA驱动程序版本和表是否同步

$nvidia-smi

最新的输出看起来像这样

NVIDIA-SMI 450.66 驱动程序版本:450.66 CUDA 版本:11.0

一切就绪后,您可以通过复制示例并按如下方式运行它们来使其正常工作,

$ cp -r /usr/src/cudnn_samples_v8/ .
$ cd cudnn_samples_v8/
$ cd mnistCUDNN/
$ make clean && make
$ ./mnistCUDNN

你会得到结果...

执行:mnistCUDNN cudnnGetVersion():8003,来自 cudnn.h 的 CUDNN_VERSION:8003 (8.0.3) 主机编译器版本:GCC 9.3.0

您的机器上有 1 个支持 CUDA 的设备: 设备 0:sms 3 功能 5.0,SmClock 1189.0 Mhz,MemSize (Mb) 2004,MemClock 2505.0 Mhz,Ec​​c=0,boardGroupID=0 使用设备 0 ..........

Softmax 得到的权重: 0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000 加载图像数据/five_28x28.pgm 执行前向传播... 从 Softmax 得到的权重: 0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006

分类结果:1 3 5

测试通过!

在我意识到 NVIDIA 驱动程序和 CUDA 版本之间的相关性之前,我必须尝试至少 5-6 次,然后在下一次尝试中一切正常。但让它运作起来还是一个非常愉快的结局。

【讨论】:

    【解决方案2】:

    我也遇到过类似的问题,我用的是anaconda,通过conda安装keras-gpu后,自动取了最新版本的cuda,和我的系统不兼容。

    您可以通过

    查看anaconda中已安装包的列表
    conda list
    

    在我的情况下,支持的版本是 10.0,但 anaconda 安装了最新版本 10.1。 如果是这种情况,您需要在 anaconda 环境中重新安装支持版本的 cuda。

    【讨论】:

      【解决方案3】:

      首先,检查here中的“CUDA Toolkit and Compatible Driver Versions”,并确保您的cuda toolkit版本与您的cuda-driver版本兼容,例如如果你的驱动版本是nvidia-390,你的cuda版本必须低于CUDA 9.1
      然后,回到这个问题。此问题是由于“您的 cuda-driver 版本与您的 cuda 版本不匹配,并且您的 CUDA 本地版本也可能与 CUDA 运行时版本不同(某些特定虚拟环境中的 cuda 版本)。”
      当我尝试在 conda 创建的“tensorflow_gpuenv”环境下运行 tensorflow-gpu 并尝试测试“gpu:0”设备是否工作时,我遇到了同样的问题。我的驱动程序版本是nvidia-390,我已经安装了cuda 9.0,所以提出这个奇怪的问题是没有意义的。终于找到了原因,conda虚拟环境中的cuda版本是cuda 9.2,和nvidia-390不兼容。我通过ubuntu 18.04中的步骤解决了这个问题:

      • 检查cuda驱动版本
        ~$ nvidia-smi~$ cat /proc/driver/nvidia/version
      • 检查本地cuda版本
        ~$ nvcc --version~$ cat /usr/local/cuda/version.txt
      • 检查本地cudnn版本
        ~$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2


      • 检查 虚拟环境中的 cuda 版本
        ~$ conda list 你可以看到类似这样的内容:
        cudatoolkit      9.2       0
        cudnn        7.3.1      cuda9.2_0
        您可能会发现虚拟环境中的cuda版本与本地cuda版本不同,并且与驱动版本nvidia-390不兼容。

      所以在虚拟环境中重新安装cuda:

      • 重新安装 cuda:~$ conda install cudatoolkit=8.0
        (将版本号'8.0'更改为与您的驱动程序版本匹配的其他版本号,您的cudnn版本将自动更新以匹配新版本的cuda)

      【讨论】:

      • 在 cudnn 版本 8 中我不得不使用 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 | head -3
      【解决方案4】:

      我遇到了同样的问题。我在 Ubuntu 18.04.2 LTS 上安装了 nvidia-390 版本。我的显卡是 GeForce GTX 1080,使用的是 tensorflow 1.12.0。 我通过删除旧版本成功解决了这个问题:

      sudo apt-get purge nvidia-*

      然后安装418版本

      sudo apt-get install nvidia-driver-418 nvidia-settings

      【讨论】:

        【解决方案5】:

        参考#Fabiano-Tarlao 的回答,如果您已经安装了所需的 NVidia 驱动程序,您可以使用以下命令从 Linux 命令行中选择它:

        sudo prime-select nvidia

        【讨论】:

          【解决方案6】:

          我的分,

          问题可能与所选的 GPU 模式(性能/省电模式)有关。性能模式使用 Nvidia GPU,省电模式更改为 Intel Integrated GPU。当您选择(使用 nvidia-settings 实用程序,在“PRIME 配置文件”配置中)省电模式(集成 Intel GPU)并执行 deviceQuery 脚本时...您会收到此错误:

          -> CUDA driver version is insufficient for CUDA runtime version
          

          但这个错误具有误导性, 通过使用 nvidia-settings 实用程序选择返回性能模式(NVIDIA GPU),问题就消失了。

          就我而言我没有驱动程序版本问题,但我只需要重新启用 Nvidia GPU。

          问候

          P.s: 安装 Prime 相关的东西后选择可用(您需要 Nvidia 专有驱动程序)。更多详情:https://askubuntu.com/questions/858030/nvidia-prime-in-nvidia-x-server-settings-in-16-04-1

          【讨论】:

          • 如何访问“NVIDIA(性能模式)”设置?当我运行 nvidia-settings 时,我没有看到这个选项
          • 在省电模式下,我有来自 nvidia-settings 菜单的三个页面:PRIME Profiles、Application Profiles、nvidia-settings-conf; PRIME Profiles 将您带到选择开关。我正在使用 Mint 并手动安装了专有驱动程序。我不知道周围所有的主板是否都支持 PRIME,也许你也必须安装 Prime 相关的东西。在这里您可以找到有关以下内容的屏幕截图和一些说明:askubuntu.com/questions/858030/…
          • 我更新了答案,我忘记了 Prime 不是默认功能。
          • 另一个相关问题:askubuntu.com/questions/805199/…
          • 我收到了一些反对意见。有什么我可以忽略的地方吗?
          【解决方案7】:

          我已按照此页面上的说明进行操作,并且对我有用。

          https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=debnetwork

          首先,下载适用于 Linux Ubuntu 16.04 x86_64 的安装程序。

          接下来,按照以下步骤安装 Linux Ubuntu:

          1. sudo dpkg -i cuda-repo-ubuntu1604_9.2.148-1_amd64.deb

          2. sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

          3. sudo apt-get update

          4. sudo apt-get install cuda

          【讨论】:

          • 这看起来太简单了,但在尝试了所有其他方法之后它确实有效。谢谢
          【解决方案8】:

          我在 Ubuntu 16.04 上遇到了这个错误,因为我仍在使用开源 X.Org 视频驱动程序。当我切换到 NVIDIA 二进制驱动程序时,错误消失了。

          我通过打开系统设置找到驱动程序设置,然后单击软件和更新。视频驱动程序位于“附加驱动程序”选项卡上。

          【讨论】:

            【解决方案9】:

            跑步

            sudo apt-get purge nvidia-*
            

            并使用

            重新安装驱动程序

            sudo apt-get install nvidia-375

            解决了。仅作记录,我第一次使用 GUI 更新驱动程序(软件和更新中的附加驱动程序选项卡)。

            【讨论】:

            • 谢谢,遇到了完全相同的情况,这行得通。也许是因为过渡 367 包。
            • 一枪准确,奇怪的降级行为
            猜你喜欢
            • 2019-12-31
            • 2011-03-16
            • 2017-04-14
            • 1970-01-01
            • 2017-03-07
            • 2021-02-07
            • 2019-02-20
            • 2016-02-13
            相关资源
            最近更新 更多