Tensorflow 无法创建 cuDNN 句柄:CUDNN_STATUS_ALLOC_FAILED。

3

最近,我尝试在 Github 上重复深度学习实验。然而,每次运行该实验时,我都会收到以下错误信息。

2018-08-27 09:32:16.827025: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:332] could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED

在这种情况下,我将Tensorflow中的会话设置如下。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement=False))

如果我尝试按照以下方式限制GPU内存,我发现我没有足够的内存来运行我的模型。
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

我的GPU信息如下。我不确定问题出在哪里,我遇到过几次这样的问题。感谢您的贡献!

2018-08-27 09:31:45.966248: IT:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
2018-08-27 09:31:46.199314: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] Found device 0 with properties: 
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.683
pciBusID: 0000:01:00.0
totalMemory: 11.00GiB freeMemory: 9.09GiB

相关线程,附有解决方案:https://dev59.com/z1gR5IYBdhLWcg3wnORw - yeeking
2个回答

3

根据文档,错误状态CUDNN_STATUS_ALLOC_FAILED是由主机内存问题而不是设备内存引起的。请检查您的RAM。


我确认这是正确的。这不是关于GPU的内存,而是关于计算机的内存。将您的DDR3或DDR4 RAM增加到32GB、64GB甚至128GB。 - James
根据Windows 10任务管理器中的性能选项卡,我只使用了16.0 GB中的6.0 GB,因此我还有10.0 GB的可用内存,但我仍然遇到了这个错误。在我的笔记本电脑上(也是使用Windows 10),我总共只有8 GB内存,但在使用相同型号时我没有遇到这个错误。因此这不可能是全部原因。 - HelloGoodbye
@HelloGoodbye。错误状态对应于主机和设备内存。这取决于所调用的函数。例如,cudnnCreate如果主机内存分配失败,则返回错误代码。请检查哪个函数返回错误代码。 - Pradeep Kumar
我重新启动了电脑,现在它又可以正常工作了。我在想这是否与TensorFlow是否正常退出有关?在Linux上,当我在PyCharm中按下“停止”按钮(红色方块)时,似乎会引发异常,然后脚本能够捕获到它。但在Windows上,脚本无法捕获任何此类异常。也许这会导致GPU上的内存泄漏,从而导致此问题?在这种情况下,有没有办法清除GPU上旧的分配内存,然后再尝试使用它? - HelloGoodbye

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接