【问题标题】:Tensorflow could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILEDTensorflow 无法创建 cudnn 句柄:CUDNN_STATUS_ALLOC_FAILED
【发布时间】:2019-02-01 12:54:25
【问题描述】:

最近,我尝试在 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

【问题讨论】:

标签: python-3.x tensorflow deep-learning


【解决方案1】:

在我的情况下,这是由于同时使用 GPU 运行 2 个 TensorFlow 进程(由您或其他用户):https://stackoverflow.com/a/53707323/10993413

来源:https://forums.developer.nvidia.com/t/could-not-create-cudnn-handle-cudnn-status-alloc-failed/108261

【讨论】:

    【解决方案2】:

    肖恩。根据documentation。错误状态CUDNN_STATUS_ALLOC_FAILED 是由于主机内存问题而不是设备内存问题。还要检查你的 RAM。

    【讨论】:

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