CUDA対応デバイスが検出されない(ubuntu 12.04.4サーバーを使用)


1

この投稿をスタックオーバーフローから移行しましたが、役に立ちましたのでクローズしました

私は最近ドライバ331.67を使ってcuda toolkit 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

私はインストールしました nvidia-current-updates そして nvidia-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

回答:


1

この答えはスタックオーバーフローから移行しました

したがって、私が遭遇した主なエラーは、nvidiaカーネルモジュールとドライバコンポーネントの間にバージョンの不一致があったことが原因であることがわかります。これは私が決心を見つけるのを助けた私が取ったステップです。

1)運転手を降格して見た nvidia-smi -a ドライバコンポーネントの不一致について文句を言う。私はこれがもともと問題になるかどうかわからなかった。私は単にCUDAツールキットセットアップガイドに従っていました。

2)リポジトリからカーネルモジュールをインストールしたので、正しいバージョンの対応するドライバコンポーネントを選びました。インストールしたカーネルモジュールのバージョンがわからない場合は、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 Webサイトのアーカイブから対応するドライバコンポーネントをダウンロードしてインストールした後、

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
  ...
  ...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.