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 不完全兼容,等等。
我正在编译 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 不完全兼容,等等。