我正在编译MXNet框架的git版本,该版本在其代码内使用CuDNN。每当在调试中编译MXNet时,我的示例测试就可以正常运行,并且我的神经网络正在训练中。但是,当我切换到发布模式时,执行未通过测试,并且出现以下错误:Check failed: e == CUDNN_STATUS_SUCCESS (8 vs. 0) cuDNN: CUDNN_STATUS_EXECUTION_FAILED
。
注意:我看不到任何可以解释不同行为的发行/调试代码。在激活CuDNN之前,发布和调试版本都没有任何问题,因此我相信这是罪魁祸首。
症状:
-代码不一定在同一位置崩溃。但是它总是在CUDNN_CALL
期间(这是一个调用CuDNN函数并检查状态的宏)。
-我的GPU上没有分配任何内存,而该GPU仍然有足够的内存供此类网络使用,因此这不是问题。
-它仅在发行版中发生-在调试中,它运行正常。
以下是出现错误的示例:
CUDNN_CALL(cudnnAddTensor(s->dnn_handle_,
&alpha,
bias_desc_,
bias.dptr_ + bias_offset_ * g,
&beta_add,
out_desc_,
out_ptr + out_offset_ * g));
那么,造成这种问题的原因可能是什么?
答案 0 :(得分:1)
由于某种原因,将CuDNN的版本更新为7.4对我来说很成功。所以我想,对我而言,CuDNN确实是一个问题。我只能假设错误修复可以解决我的问题,或者我使用的版本与我的GPU不完全兼容,等等。