尝试运行TensorFlow时CUDNN_STATUS_NOT_INITIALIZED

Mik*_*ise 5 python gpu tensorflow cudnn

我已经在Ubuntu 16.04上使用Cuda 9.0和CuDNN 7.0.5以及vanilla Python 2.7安装了TensorFlow 1.7,虽然他们的CUDA和CuDNN样本运行良好,而TensorFlow看到了GPU(因此运行了一些TensorFlow示例),那些使用CuDNN (像大多数CNN的例子一样)没有.他们失败了这些信息性消息:

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)
Run Code Online (Sandbox Code Playgroud)

打开大量VLOG消息(请参阅下面的链接以了解如何执行此操作)并未产生任何其他相关消息.

这里的关键信息可能是 "选择默认DNN插件,cuDNN",因为查看代码我可能认为它无法加载cuDNN库模块,但是对于所有我知道它实际上是正常的(所以不是警告)和问题可能是别的.

例如,"CUDNN_STATUS_NOT_INITIALIZED"消息似乎是早期版本由TF过于积极地提前分配内存引起的(在TF GitHub问题列表中发现)因此CuDNN无法初始化,但我尝试了这些补救措施(包括重置GPU和重启),但他们没有帮助.

关于我接下来应该尝试什么的任何想法?

Mik*_*ise 12

好吧,我发现了这个,这是因为我安装了错误版本的cuDNN,所以我怀疑它实际上并没有找到正确的共享库是真的.

基本上我安装cuDNN v7.1.2 for Cuda 9.1而不是cuDNN v7.1.2 for Cuda 9.0,这似乎导致它无声地失败 - 虽然我原本期望在这一点上出现错误信息.请注意,我有运行,(见我对这个职位的答案如何做到这一点的详细信息详细视频博客打开TF日志):

当我安装cuDNN v7.1.2 for Cuda 9.0它确实找到它并抱怨该版本不够新 - 实际上真正的问题是它不够老,但至少我有一些真正的数据可以使用.

最终cuDNN v7.0.5 for Cuda 9.0是我需要的,也是有效的.