2017-03-25 4 views
2

lief ich einen Scheck, um zu sehen, ob meine Tensorflow Installation meiner GPU wird mit dem Beispiel-Code aus den Anweisungen Tensorflow mit hereTensorflow: Uneinheitliche GPU Anerkennung

Wenn ich den Code zum ersten Mal lief, habe ich diese bekam Ausgang:

$ python gpu-test.py 

aus:

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally 
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:937] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GRID K520 
major: 3 minor: 0 memoryClockRate (GHz) 0.797 
pciBusID 0000:00:03.0 
Total memory: 3.94GiB 
Free memory: 3.91GiB 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GRID K520, pci bus id: 0000:00:03.0) 
Device mapping: 
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GRID K520, pci bus id: 0000:00:03.0 
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping: 
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GRID K520, pci bus id: 0000:00:03.0 

MatMul: (MatMul): /job:localhost/replica:0/task:0/gpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] MatMul: (MatMul)/job:localhost/replica:0/task:0/gpu:0 
b: (Const): /job:localhost/replica:0/task:0/gpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] b: (Const)/job:localhost/replica:0/task:0/gpu:0 
a: (Const): /job:localhost/replica:0/task:0/gpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] a: (Const)/job:localhost/replica:0/task:0/gpu:0 
[[ 22. 28.] 
[ 49. 64.]] 

Es ist mit der GPU, alles gut!

Mit dieser Gewissheit starte ich ein Jupyter-Notebook mit großem CNN und trainiere es, und es ist super langsam.

Ich bin verwirrt und gpu-test.py ein zweites Mal ausgeführt. Dieses Mal, obwohl sich in der Zwischenzeit nichts geändert hat, bekomme ich eine andere Ausgabe:

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally 
E tensorflow/stream_executor/cuda/cuda_driver.cc:509] failed call to cuInit: CUDA_ERROR_NO_DEVICE 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:158] retrieving CUDA diagnostic information for host: ip-172-31-19-90 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:165] hostname: ip-172-31-19-90 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189] libcuda reported version is: 375.39.0 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:363] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module 367.57 Mon Oct 3 20:37:01 PDT 2016 
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 
""" 
I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:193] kernel reported version is: 367.57.0 
E tensorflow/stream_executor/cuda/cuda_diagnostics.cc:303] kernel version 367.57.0 does not match DSO version 375.39.0 -- cannot find working devices in this configuration 
Device mapping: no known devices. 
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping: 

MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0 
b: (Const): /job:localhost/replica:0/task:0/cpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] b: (Const)/job:localhost/replica:0/task:0/cpu:0 
a: (Const): /job:localhost/replica:0/task:0/cpu:0 
I tensorflow/core/common_runtime/simple_placer.cc:827] a: (Const)/job:localhost/replica:0/task:0/cpu:0 
[[ 22. 28.] 
[ 49. 64.]] 

Ich bin jetzt völlig verwirrt.

Die einzigen zwei Dinge, die zwischen mir beim GPU-Test beim ersten und zweiten Mal passierten, waren (1) ich entzippte eine Datei und (2) lief ich das genannte Jupyter-Notebook. Nichts wurde von meiner Seite über das System installiert, aktualisiert oder in jedem Fall geändert.

Kann jemand helfen?

Wie kommt dies ganz plötzlich passiert, wenn es nicht mehr als 5 Minuten früher der Fall war:

kernel version 367.57.0 does not match DSO version 375.39.0 

Und wie kann ich die Kernel-Version aktualisieren?

Antwort

1

Ich habe herausgefunden, was passiert ist: Ein automatisches Treiberupdate, das im Hintergrund als unbeaufsichtigtes Update ausgeführt wird, hat versucht, den Treiber auf Version 375.39.0 zu aktualisieren.

Die GRID K520-GPUs auf den AWS g2.2xlarge-Instanzen sind jedoch für diese Treiberversion zu alt.

Das versuchte automatische Update lässt das System in einem inkonsistenten Zustand und bricht alles.

Die einzige Möglichkeit für mich war, eine neue AWS-Instanz zu starten und den Update-Prozess direkt nach dem Start zu beenden, um das System intakt zu halten. Sehr nerviges Problem: /.

Wenn jemand geschieht das gleiche Problem haben:

  • Starten Sie eine neue AWS g2 Instanz
  • SSH sich in sofort
  • Anzeige laufenden Prozesse durch top in das Terminal
  • überprüfen eingeben, wenn es ein beschäftigter Prozess sagt "unbeaufsichtigt ...."Und wenn ja, kopieren Sie den PID (Prozess-ID)
  • tötet es mit kill -9 PID, bevor sie versuchen kann, das Update zu installieren
1

Das bedeutet, dass Sie Ihren Cuda-Treiber auf die neueste Version aktualisieren müssen. Nicht sicher, wo die Inkonsistenz herkommen könnte.

+0

ich gefunden habe, was passiert ist: Ein automatisches Treiber-Update im Hintergrund als einen Lauf Das unbeaufsichtigte Update hat versucht, den Treiber auf die Version 375.39.0 zu aktualisieren, die GRID K520-GPUs auf den Instanzen von AWS g2.2xlarge sind jedoch für diese Treiberversion zu alt. Aus versuchter Not verlässt dieses automatische Update das System in einem inkonsistente Zustand und bricht alles. Die einzige Möglichkeit für mich war, eine neue AWS-Instanz zu starten und den Update-Prozess direkt nach dem Start zu beenden, um das System intakt zu halten. Sehr nerviges Problem: /. Vielen Dank für Ihre Hilfe! – Alex