From c69359d00d2b4577578634bf7de1d153e410b74a Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Mon, 8 Feb 2021 16:42:44 +0800 Subject: [PATCH] fix(dnn/cuda): disable cudnn conv_bias kernels for NCHW4_NCHW tensor format due to illegal memory access errors caused by the kernels GitOrigin-RevId: 584cedeeab86034ca527ba69162df538e01a9460 --- dnn/src/cuda/conv_bias/cudnn_conv_bias_activation.cpp | 5 ++++- dnn/test/cuda/conv_bias.cpp | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dnn/src/cuda/conv_bias/cudnn_conv_bias_activation.cpp b/dnn/src/cuda/conv_bias/cudnn_conv_bias_activation.cpp index 7e75182c..5755a912 100644 --- a/dnn/src/cuda/conv_bias/cudnn_conv_bias_activation.cpp +++ b/dnn/src/cuda/conv_bias/cudnn_conv_bias_activation.cpp @@ -34,7 +34,10 @@ bool ConvBiasForwardImpl::AlgoCUDNNConvBiasActivation::is_available( return false; } auto&& param = args.opr->param(); - if (param.format == param::ConvBias::Format::NCHW4_NCHW32 || + //! FIXME: conv kernel of cudnn for NCHW4_NCHW tensor format causes illegal + //! memory access errors, so we have to disable this kernel here. + if (param.format == param::ConvBias::Format::NCHW4_NCHW || + param.format == param::ConvBias::Format::NCHW4_NCHW32 || param.format == param::ConvBias::Format::NCHW32_NCHW4) return false; if (param.format == param::ConvBias::Format::NCHW && diff --git a/dnn/test/cuda/conv_bias.cpp b/dnn/test/cuda/conv_bias.cpp index 901bc371..e9f168c2 100644 --- a/dnn/test/cuda/conv_bias.cpp +++ b/dnn/test/cuda/conv_bias.cpp @@ -456,6 +456,9 @@ TEST_F(CUDA, CONV_BIAS_FORWARD_NCHW4) { checker.exec({{1, 4, 2, 2, 4}, {16, 4, 3, 3, 4}, {1, 4, 1, 1, 4}, {}, {}}); } +//! FIXME: conv kernel of cudnn for NCHW4_NCHW tensor format causes illegal +//! memory access errors, so we have to disable this test here. +#if 0 TEST_F(CUDA, CONV_BIAS_FORWARD_NCHW4_NCHW) { require_compute_capability(6, 1); using namespace conv_bias; @@ -511,6 +514,7 @@ TEST_F(CUDA, CONV_BIAS_FORWARD_NCHW4_NCHW) { checker.set_param(param); checker.exec({{1, 4, 2, 2, 4}, {16, 4, 3, 3, 4}, {1, 16, 1, 1}, {}, {}}); } +#endif #endif