diff --git a/paddle/fluid/operators/batch_norm_op.cu b/paddle/fluid/operators/batch_norm_op.cu index 36d297ec5523b9e8a136c536165bdb4d3a380c25..8f3691dd15359b42dfacca1c26e2b631a48161b0 100644 --- a/paddle/fluid/operators/batch_norm_op.cu +++ b/paddle/fluid/operators/batch_norm_op.cu @@ -75,11 +75,15 @@ class BatchNormKernel << "CUDNN_BN_MIN_EPSILON instead."; } epsilon = std::max(epsilon, CUDNN_BN_MIN_EPSILON); -#if CUDNN_VERSION_MIN(7, 0, 0) - mode_ = CUDNN_BATCHNORM_SPATIAL_PERSISTENT; -#else + + // TODO(dengkaipeng): use PERSISTENT mode in training may incur errors + // in inference period, cuDNN fixed issues on PERSISTENT mode in version + // 7.0.2, 7.0.4 and 7.3.0, we disable this mode currently. + // #if CUDNN_VERSION_MIN(7, 0, 0) + // mode_ = CUDNN_BATCHNORM_SPATIAL_PERSISTENT; + // #else mode_ = CUDNN_BATCHNORM_SPATIAL; -#endif + // #endif VLOG(3) << "Setting descriptors."; std::vector dims; @@ -301,11 +305,15 @@ class BatchNormGradKernel << "CUDNN_BN_MIN_EPSILON instead."; } epsilon = std::max(epsilon, CUDNN_BN_MIN_EPSILON); -#if CUDNN_VERSION_MIN(7, 0, 0) - mode_ = CUDNN_BATCHNORM_SPATIAL_PERSISTENT; -#else + + // TODO(dengkaipeng): use PERSISTENT mode in training may incur errors + // in inference period, cuDNN fixed issues on PERSISTENT mode in version + // 7.0.2, 7.0.4 and 7.3.0, we disable this mode currently. + // #if CUDNN_VERSION_MIN(7, 0, 0) + // mode_ = CUDNN_BATCHNORM_SPATIAL_PERSISTENT; + // #else mode_ = CUDNN_BATCHNORM_SPATIAL; -#endif + // #endif CUDNN_ENFORCE(platform::dynload::cudnnSetTensorNdDescriptor( data_desc_, CudnnDataType::type,