【问题标题】:no CUDA-capable device is detected (using ubuntu 12.04.4 server) [closed]未检测到支持 CUDA 的设备(使用 ubuntu 12.04.4 服务器)[关闭]
【发布时间】:2014-05-28 20:09:00
【问题描述】:

我最近安装了带有驱动程序 331.67 的 cuda 工具包 5.5(我有一个 GeForce GTX 680)。由于某种原因,我无法运行任何测试脚本:

$./NVIDIA_CUDA-5.5_Samples/1_Utilities/deviceQuery/deviceQuery 
./NVIDIA_CUDA-5.5_Samples/1_Utilities/deviceQuery/deviceQuery Starting...

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

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL

我按照此处“入门指南”中的步骤进行操作

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/

并制作了一个脚本来在启动时创建字符设备文件(因为我正在运行 Ubuntu 的服务器版本,因此默认情况下不会创建此类图形文件):

$ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Apr 11 17:29 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Apr 11 17:29 /dev/nvidiactl

执行nvidia-smi -a命令的输出是(普通用户和root用户):

Failed to initialize NVML: Unknown Error

这是有关 nvidia 模块的一些信息

$ lsmod | grep nvidia
nvidia              11335080  0 
$ modinfo nvidia
filename:       /lib/modules/3.11.0-17-generic/updates/dkms/nvidia.ko
alias:          char-major-195-*
version:        331.67
supported:      external
license:        NVIDIA
...
...

有什么建议吗?谢谢。

编辑 #1 我尝试降级到驱动程序 319.76:

$ modinfo nvidia
filename:       /lib/modules/3.11.0-17-generic/updates/dkms/nvidia.ko
alias:          char-major-195-*
version:        319.76
supported:      external
...

现在当我运行nvidia-smi -a 时,我得到以下信息:

NVIDIA: API mismatch: the NVIDIA kernel module has version 304.116,
but this NVIDIA driver component has version 319.76.  Please make
sure that the kernel module and all NVIDIA driver components
have the same version.
Failed to initialize NVML: Unknown Error

在安装驱动程序文件之前,我从 repos 中安装了 nvidia-current-updatesnvidia-settings-updates 软件包,我猜这就是发生冲突的地方。我还没有找到解决方案,但我认为这更接近一步。这是modprobe -l | grep nvidia的结果

kernel/drivers/video/nvidia/nvidiafb.ko
kernel/drivers/net/ethernet/nvidia/forcedeth.ko
updates/dkms/nvidia.ko
updates/dkms/nvidia_304_updates.k

【问题讨论】:

  • 以普通用户运行nvidia-smi -a,然后以root用户运行的结果是什么?请将结果粘贴到您的问题中,而不是 cmets 中。
  • nvidia-smi -a 的输出是什么?
  • 如果 nvidia-smi -a 在以 root 用户身份运行时显示 NVML 错误,则驱动程序未正确加载或找不到 GPU。您可能需要重新启动系统,或重新加载驱动程序。您还应该检查 lspci |grep -i nvidia 的输出是否显示 GPU(您的 GTX 680)。
  • 我也会尝试删除您的启动脚本,重新启动服务器,然后以 root 用户身份运行 nvidia-smi -a。您的脚本可能出错了。
  • lspci 显示 GPU。我尝试了您的建议(删除文件并重新启动),nvidia-smi -a 给出了与上述相同的输出。

标签: linux cuda


【解决方案1】:

所以事实证明我遇到的主要错误是由于 nvidia 内核模块和驱动程序组件之间的版本不匹配。以下是我采取的帮助我找到解决方案的步骤。

1) 降级驱动程序让我看到nvidia-smi -a 抱怨驱动程序组件不匹配。我不确定这最初会是一个问题。我只是在遵循 CUDA 工具包设置指南,其中没有提到这是一个问题。

2) 从 repos 安装内核模块后,我刚刚选择了正确版本的相应驱动程序组件。如果你不知道你安装的内核模块的版本,你可以使用 modprobe 和 modinfo。例如,在我的系统上

$ modprobe -l | grep nvidia
kernel/drivers/video/nvidia/nvidiafb.ko
kernel/drivers/net/ethernet/nvidia/forcedeth.ko
updates/dkms/nvidia.ko
updates/dkms/nvidia_304_updates.ko

模块 nvidia_304_updates 是从存储库(软件包 nvidia-updates-current)安装的。其确切版本可通过 modinfo 找到

$ modinfo /lib/modules/3.11.0-17-generic/updates/dkms/nvidia_304_updates.ko 
filename:       /lib/modules/3.11.0-17-generic/updates/dkms/nvidia_304_updates.ko
alias:          char-major-195-*
version:        304.116
supported:      external

从nvidia网站的存档中下载并安装相应的驱动组件后,

http://www.nvidia.com/Download/Find.aspx?lang=en-us

,我可以运行命令

$ nvidia-smi -a

==============NVSMI LOG==============

Timestamp                       : Mon Apr 14 15:17:44 2014
Driver Version                  : 304.116

Attached GPUs                   : 1
GPU 0000:04:00.0
    Product Name                : GeForce GTX 680
...
...

以及我尝试执行的原始脚本

$ ./deviceQuery 
./deviceQuery Starting...

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

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 680"
  CUDA Driver Version / Runtime Version          5.0 / 5.0
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 2047 MBytes (2146762752 bytes)
  ( 8) Multiprocessors x (192) CUDA Cores/MP:    1536 CUDA Cores
  ...
  ...

【讨论】:

  • 如果其他人遇到这个:在我的情况下,一个简单的重启修复了问题 XD
  • @panmari:重启就像魅力一样谢谢:)我认为这应该是一个答案而不是评论。
  • 重启对我不起作用;但是,“sudo nvidia-smi”起作用了。
猜你喜欢
  • 2012-10-31
  • 2023-01-04
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
相关资源
最近更新 更多