CuDNN 代码仅在发布时提供 CUDNN_STATUS_EXECUTION_FAILED 状态

CuDNN code gives CUDNN_STATUS_EXECUTION_FAILED status only in release

我正在编译 git 版本的 MXNet 框架,它在代码中使用了 CuDNN。每当在调试中编译 MXNet 时,我的示例测试都是 运行 正常并且我的神经网络正在训练。但是,当我切换到发布模式时,执行测试失败并且出现以下错误:Check failed: e == CUDNN_STATUS_SUCCESS (8 vs. 0) cuDNN: CUDNN_STATUS_EXECUTION_FAILED.

注意:我没有看到任何可以解释不同行为的 release/debug 代码。在我激活 CuDNN 之前,我对发布和调试版本都没有任何问题,因此我相信它是罪魁祸首。

症状: - 代码不一定在同一位置崩溃。但它总是在 CUDNN_CALL 期间(这是一个调用 CuDNN 函数并检查状态的宏)。 - 我的 GPU 上没有分配内存,无论如何它都有足够的内存用于这样的网络,因此这应该不是问题。 - 它只发生在发布中 - 在调试中,它 运行 很好。

这是我收到错误的示例:

CUDNN_CALL(cudnnAddTensor(s->dnn_handle_,
                                &alpha,
                                bias_desc_,
                                bias.dptr_ + bias_offset_ * g,
                                &beta_add,
                                out_desc_,
                                out_ptr + out_offset_ * g));

那么,造成这种问题的原因可能是什么?

出于某种原因,将 CuDNN 的版本更新到 7.4 对我有用。所以我想,这确实是我这边 CuDNN 的问题。我只能假设错误修复解决了我的问题,或者我使用的版本与我的 GPU 不完全兼容,等等。