16

状況

Tesla C1060をGTX 670に切り替えた2 GPUサーバー(Ubuntu 12.04)があります。4.2の上にCUDA 5.0をインストールしました。その後、simpleMPI のすべてのサンプル execpt をエラーなしでコンパイルしました。しかし、実行する./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

私が試したこと

これを解決するために、 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
    
  • 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)

[アップデート]

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

CUDA 5.0インストーラーを使用してドライバーとライブラリを同時にインストールすると、どうなるでしょうか。いまだに横たわっている古い 4.2 バージョンが問題を起こす可能性はありますか?

4

5 に答える 5

14

私はこの問題に遭遇し、実行しています

nvidia-smi

API の不一致が通知されました。問題は、Linux ディストリビューションがシステムの再起動を必要とするアップデートをインストールしていたため、再起動すると問題が解決したことでした。

于 2013-06-21T13:20:31.973 に答える
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    
    
  2. とにかくUbuntu 12で実行したい場合は、rpardoの回答を参照してください。/usr/lib6464ビットライブラリをインストールしてインストールするのではなく、このディストリビューションのように見えます/usr/lib/x86_64-linux-gnu/

libcuda.soシステム上のおよびのすべてのインスタンスを検索することをお勧めしますlibnvidia-ml.so。ドライバーはこのディストリビューションをサポートしていないため、 が指していないパスにライブラリがインストールされている可能性がありますLD_LIBRARY_PATH。次に、ライブラリを移動するか、LD_LIBRARY_PATHこの場所を指すように変更します (左側の最初のパスである必要があります)。その後、再試行nvidia-smiするか、deviceQuery

幸運を

于 2012-10-25T06:23:56.197 に答える
1

GTX980 GPU を搭載した Windows マシンで cudaGetDeviceCount のエラー 38 が発生しました。NVIDIA のサイトから GTX 980 の最新のドライバーをダウンロードし、インストールして再起動した後、すべて問題ありません。CUDA インストーラーが最新のドライバーをインストールしていないようです。

于 2015-07-22T13:51:23.367 に答える
0

sudo を使用してサンプルを実行してみてください (または、「sudo su」を実行して、LD_LIBRARY_PATH を cuda ライブラリのパスに設定し、root でサンプルを実行します)。どうやら、おそらく sudo を使用して CUDA 5.0 をインストールしたため、サンプルは通常のユーザーでは実行されません。ただし、root でサンプルを実行すると、通常のユーザーでもサンプルを実行できます。再起動後、または少なくとも 1 つの CUDA アプリケーションをルートで実行する必要があるたびに、サンプルが通常のユーザーで機能するかどうかを確認するために、システムをまだ再起動していません。

sudo を使用せずに CUDA TookKit をインストールすると、問題が完全になくなる可能性があります。

于 2013-02-02T11:03:49.863 に答える
0

Debian でも非常によく似た問題がありましたが、ロードされたnvidiaモジュールのバージョンが とは異なることがわかりましたlibcuda1

インストールされているnvidiaモジュールを確認するには、次のことを行う必要があります。

  $ sudo modinfo nvidia-current | grep version
  version:        319.82

これのバージョンと一致しない場合libcuda1は、問題の原因です。

于 2014-02-15T11:08:52.163 に答える