webentwicklung-frage-antwort-db.com.de

CUDNN_STATUS_NOT_INITIALIZED beim Versuch, TensorFlow auszuführen

Ich habe TensorFlow 1.7 auf einem Ubuntu 16.04 mit Cuda 9.0 und CuDNN 7.0.5 und Vanilla Python 2.7 installiert, und obwohl sie sowohl für CUDA als auch für CuDNN laufen, läuft es einwandfrei, und TensorFlow sieht die GPU (also einige TensorFlow-Beispiele), die CuDNN verwenden (wie die meisten CNN-Beispiele) nicht. Sie schlagen mit diesen Informationsnachrichten fehl:

2018-04-10 16:14:17.013026: I tensorflow/stream_executor/plugin_registry.cc:243] Selecting default DNN plugin, cuDNN
25428 2018-04-10 16:14:17.013100: E tensorflow/stream_executor/cuda/cuda_dnn.cc:403] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
25429 2018-04-10 16:14:17.013119: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:369] driver version file contents: """NVRM version: NVIDIA UNIX x86_64 Kernel Module  384.130  Wed Mar 21 03:37:26 PDT 2018
25430 GCC version:  gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)
25431 """
25432 2018-04-10 16:14:17.013131: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:112] version string "384.130" made value 384.130.0
25433 2018-04-10 16:14:17.013135: E tensorflow/stream_executor/cuda/cuda_dnn.cc:411] possibly insufficient driver version: 384.130.0
25434 2018-04-10 16:14:17.013139: E tensorflow/stream_executor/cuda/cuda_dnn.cc:370] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
25435 2018-04-10 16:14:17.013143: F tensorflow/core/kernels/conv_ops.cc:712] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

Das Aktivieren einer Flut von VLOG-Meldungen (siehe dazu den Link unten) zeigt keine weiteren relevanten Meldungen an.

Die Schlüsselaussage hier könnte sein "Standard DNN-Plugin, cuDNN auswählen", weil ich vielleicht beim Betrachten des Codes denke, dass er die cuDNN-Bibliotheksmodule nicht laden kann, aber bei allem, was ich weiß, ist das eigentlich normal (also nicht eine Warnung) und das Problem könnte etwas anderes sein. 

Zum Beispiel scheint die Nachricht "CUDNN_STATUS_NOT_INITIALIZED" in einer früheren Version von TF zu aggressivem Speicherzuweisen vorzeitig verursacht worden zu sein (fand dies in der TF GitHub-Problemliste), sodass CuDNN die Initialisierung nicht durchführen konnte, aber ich versuchte diese Abhilfemaßnahmen GPU und Neustart), aber sie haben nicht geholfen.

Irgendwelche Ideen, was ich als nächstes probieren sollte? 

4
Mike Wise

Ok, ich habe das gefunden, weil ich die falsche Version von cuDNN installiert hatte. Daher war mein Verdacht, dass die richtige gemeinsam genutzte Bibliothek nicht gefunden wurde, richtig.

Grundsätzlich habe ich cuDNN v7.1.2 for Cuda 9.1 anstelle von cuDNN v7.1.2 for Cuda 9.0 installiert, was scheinbar dazu geführt hat, dass es im Hintergrund fehlschlug - obwohl ich an dieser Stelle eine Fehlermeldung erwartet hätte. Beachten Sie, dass ich ausführliche VLOGs ausgeführt habe (weitere Informationen dazu finden Sie in meiner Antwort in diesem Beitrag Aktivieren der TF-Protokolle ):

Als ich cuDNN v7.1.2 for Cuda 9.0 installierte, fand er es tatsächlich und beklagte sich darüber, dass diese Version nicht neu genug war - obwohl das eigentliche Problem darin bestand, dass sie nicht alt genug war, aber ich hatte zumindest einige echte Daten, mit denen ich arbeiten konnte.

Am Ende war cuDNN v7.0.5 for Cuda 9.0 das, was ich brauchte und das hat funktioniert.

7
Mike Wise

Ist Ihnen dieser Fehler schon einmal begegnet?

UnknownError (Traceback siehe oben): Fehler beim Abrufen des Faltungsalgorithmus. Dies ist wahrscheinlich darauf zurückzuführen, dass die Initialisierung von cuDNN fehlgeschlagen ist. Versuchen Sie daher zu prüfen, ob oben eine Warnmeldung ausgegeben wurde. [[Knoten 0-Convolutional_2 (definiert unter D:\Patenterkennungs-Multi-GPU\Darkflow\Darkflow\Net\Ops\Convolution.py: 71) = Conv2D [T = DT_FLOAT, _class = ["loc: @ 0- convolutional_3/cond/FusedBatchNorm_1/Switch "], data_format =" NCHW ", Erweiterungen = [1, 1, 1, 1], Abstand =" VALID ", Strides = [1, 1, 1, 1], use_cudnn_on_gpu = true, _device = "/ job: localhost/replica: 0/task: 0/device: GPU: 0"] (0-convolutional_2-0-TransposeNHWCToNCHW-LayoutOptimizer, 0-convolutional/Kernel/read)]]. [[{{Knotenausgabe/_89}} = _Recvclient_terminated = false, recv_device = "/ job: localhost/replica: 0/task: 0/Gerät: CPU: 0", send_device = "/ job: localhost/replica: 0/Task: 0/Gerät: GPU: 0 ", send_device_incarnation = 1, tensor_name =" Edge_676_output ", tensor_type = DT_FLOAT, _device ="/job: localhost/replica: 0/task: 0/device: CPU: 0 "]]

0
James