CUDA运行时API错误38:未检测到支持CUDA的设备

Fra*_*ter 15 cuda nvidia

情况

我有一个2 gpu服务器(Ubuntu 12.04),我用一台GTX 670切换了特斯拉C1060.比我在4.2上安装了CUDA 5.0.然后我编译了所有execpt for simpleMPI的例子而没有错误.但是当我运行时,./devicequery我收到以下错误消息:

foo@bar-serv2:~/NVIDIA_CUDA-5.0_Samples/bin/linux/release$ ./deviceQuery
./deviceQuery Starting...

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

cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Run Code Online (Sandbox Code Playgroud)

我试过了什么

为了解决这个问题,我尝试了所有CUDA功能设备推荐的思路,但无济于事:

  • /dev/nvidia* 是,并且权限是666(crw-rw-rw-)和所有者root:root

     foo@bar-serv2:/dev$ ls -l nvidia*
     crw-rw-rw- 1 root root 195,   0 Oct 24 18:51 nvidia0
     crw-rw-rw- 1 root root 195,   1 Oct 24 18:51 nvidia1
     crw-rw-rw- 1 root root 195, 255 Oct 24 18:50 nvidiactl
    
    Run Code Online (Sandbox Code Playgroud)
  • 我尝试用sudo执行代码

  • CUDA 5.0同时安装驱动程序和库

PS这里是lspci | grep -i nvidia:

foo@bar-serv2:/dev$ lspci | grep -i nvidia
03:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 670] (rev a1)
03:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)
04:00.0 VGA compatible controller: NVIDIA Corporation G94 [Quadro FX 1800] (rev a1)
Run Code Online (Sandbox Code Playgroud)

[更新]

foo@bar-serv2:~/NVIDIA_CUDA-5.0_Samples/bin/linux/release$  nvidia-smi -a
NVIDIA: API mismatch: the NVIDIA kernel module has version 295.59,
but this NVIDIA driver component has version 304.54.  Please make
sure that the kernel module and all NVIDIA driver components
have the same version.
Failed to initialize NVML: Unknown Error
Run Code Online (Sandbox Code Playgroud)

怎么可能,如果我使用CUDA 5.0安装程序同时安装驱动程序和库.可能旧的4.2版本,仍然在乱七八糟的东西?

cra*_*ica 11

我遇到了这个问题并且正在运行

nvidia-smi
Run Code Online (Sandbox Code Playgroud)

告诉我一个API不匹配.问题是我的Linux发行版安装了需要重新启动系统的更新,因此重新启动解决了这个问题.


Prz*_*ych 3

请参阅此堆栈溢出问题在 Ubuntu 12.10 中安装 cuda 5 示例

  1. Ubuntu 12 还不是受支持的 Linux 发行版。有关参考,请参阅CUDA 5.0 工具包发行说明和勘误表

    ** 目前支持的发行版

    Distribution       32 64  Kernel                 GCC         GLIBC        
    -----------------  -- --  ---------------------  ----------  -------------
    Fedora 16          X  X   3.1.0-7.fc16           4.6.2       2.14.90      
    ICC Compiler 12.1     X                                                   
    OpenSUSE 12.1         X   3.1.0-1.2-desktop      4.6.2       2.14.1       
    Red Hat RHEL 6.x      X   2.6.32-131.0.15.el6    4.4.5       2.12         
    Red Hat RHEL 5.5+     X   2.6.18-238.el5         4.1.2       2.5          
    SUSE SLES 11 SP2      X   3.0.13-0.27-pae        4.3.4       2.11.3       
    SUSE SLES 11.1     X  X   2.6.32.12-0.7-pae      4.3.4       2.11.1       
    Ubuntu 11.10       X  X   3.0.0-19-generic-pae   4.6.1       2.13         
    Ubuntu 10.04       X  X   2.6.35-23-generic      4.4.5       2.12.1    
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果你想在 Ubuntu 12 上运行它,请参阅rpardo的答案。看起来这个发行版不是安装 64 位库而是将/usr/lib64它们安装到/usr/lib/x86_64-linux-gnu/

我建议搜索系统上libcuda.so的所有实例。libnvidia-ml.so由于驱动程序不支持此发行版,因此它可能已将库安装到LD_LIBRARY_PATH. 然后移动库和/或更改LD_LIBRARY_PATH指向此位置(它应该是左侧的第一个路径)。然后重试nvidia-smideviceQuery

祝你好运