我正在编译MXNet框架的git版本,它在代码中使用CuDNN。每当MXNet在调试中编译时,我的示例测试运行正常,我的神经网络正在训练。但是,当我切换到发布模式时,执行未通过测试,我收到以下错误:Check failed: e == CUDNN_STATUS_SUCCESS (8 vs. 0) cuDNN: CUDNN_STATUS_EXECUTION_FAILED
。
注意:我没有看到任何可以解释不同行为的发布/调试代码。在我激活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不完全兼容等。