diff --git a/paddle/fluid/operators/batch_norm_op.cu b/paddle/fluid/operators/batch_norm_op.cu index 36d297ec5523b9e8a136c536165bdb4d3a380c25..32564516556a020e6649d1a91492b4f83f226b26 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,