2014-04-14 12 views
9

Ich habe vor kurzem das Cuda Toolkit 5.5 mit Treiber 331.67 installiert (ich habe eine GeForce GTX 680). Aus irgendeinem Grund kann ich keine der Test scrips laufen:kein CUDA-fähiges Gerät erkannt (mit Ubuntu 12.04.4 Server)

$./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 

folgte ich die Schritte auf der „Erste Schritte“ hier

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

und machte ein Skript, um die Zeichengerät zu erstellen bei Startdateien (wie ich die Server-Edition von Ubuntu solche Grafikdateien leite werden nicht standardmäßig erstellt):

$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 

der Ausgang für executin g der Befehl nvidia-smi -a ist (sowohl für normale Benutzer und Root-Benutzer):

Failed to initialize NVML: Unknown Error 

Hier

$ 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 
... 
... 

Irgendwelche Vorschläge einige Informationen über das nvidia Modul ist? Vielen Dank.

EDIT # 1 Ich habe versucht, die Herabstufung des Fahrers 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 
... 

Nun, wenn ich nvidia-smi -a betreibe ich folgendes erhalten:

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 

Ich installierte die nvidia-current-updates und nvidia-settings-updates Pakete von der Repos vor der Installation der Treiberdatei und ich vermute, dass dort der Konflikt entstand. Ich habe keine Lösung gefunden, aber das ist einen Schritt näher, denke ich. Hier ist das Ergebnis von 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 
+0

Was ist das Ergebnis der Ausführung von 'nvidia-smi -a' als normaler Benutzer und dann als root-Benutzer? Bitte fügen Sie die Ergebnisse in Ihre Frage ein, nicht in die Kommentare. –

+0

Was ist die Ausgabe von 'nvidia-smi -a'? – cklin

+0

Wenn "nvidia-smi -a" einen NVML-Fehler zeigt, wenn er als root-Benutzer ausgeführt wird, ist der Treiber nicht richtig geladen oder kann die GPU nicht finden. Möglicherweise müssen Sie das System neu starten oder den Treiber neu laden. Sie sollten auch überprüfen, dass die Ausgabe von 'lspci | grep -i nvidia' eine GPU (Ihre GTX 680) als vorhanden anzeigt. –

Antwort

13

So stellt sich der Hauptfehler heraus, dass ich war aufgrund der Tatsache, wurde begegnet, dass ein Versionskonflikt zwischen dem nvidia Kernelmodul und der Treiber-Komponente war. Hier sind die Schritte, die ich unternommen habe, die mir geholfen haben, eine Lösung zu finden.

1) Downgrade des Treibers erlaubte mir zu sehen, nvidia-smi -a beschweren sich über eine Treiberkomponente nicht übereinstimmen. Ich war mir nicht sicher, ob das ursprünglich ein Problem war. Ich folgte einfach einem CUDA Toolkit Setup Guide, der nicht erwähnt, dass dies ein Problem ist.

2) Nachdem ich die Kernelmodule aus den Repos installiert habe, habe ich einfach die entsprechende Treiberkomponente mit korrekter Version ausgewählt. Wenn Sie die Version Ihres installierten Kernel-Moduls nicht kennen, können Sie modprobe und modinfo verwenden. Zum Beispiel auf meinem System

$ 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 

Das Modul nvidia_304_updates wurde aus der repos (Paket nvidia-Updates-Strom) installiert.Seine genaue Version mit 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 

Nach dem Download und die Installation der entsprechenden Treiber-Komponente aus dem Archiv auf der nvidia Website gefunden wird,

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

, konnte ich den Befehl

laufen
$ 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 
... 
... 

Und das ursprüngliche Skript, das ich versuchte auszuführen

$ ./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 
    ... 
    ... 
+10

Nur, wenn jemand anderes stößt: Ein einfacher Neustart behoben Dinge in meinem Fall XD – panmari

+1

@panmari: Neustart arbeitete wie Charme Danke :) Dies sollte eine Antwort sein kein Kommentar, denke ich. – Kocik

+1

Neustart funktionierte nicht für mich; "sudo nvidia-smi" hat jedoch funktioniert. – Sevenless

Verwandte Themen