diff --git a/dnn/src/common/relayout_format.cpp b/dnn/src/common/relayout_format.cpp index ee6d50c527927f5f70cf825c7222d7aed60d42bf..92717159e6820f13588141e08c6d4246aed52d9d 100644 --- a/dnn/src/common/relayout_format.cpp +++ b/dnn/src/common/relayout_format.cpp @@ -306,6 +306,15 @@ void RelayoutFormat::deduce_format(TensorFormat src, TensorFormat& dst) { megdnn_throw("Invalid relayout format mode"); break; } + + if (!dst.is_default() && + ( + handle()->type() != Handle::HandleType::NAIVE)) { + megdnn_throw( + "Only naive and opencl handle support " + "Image2DPack4TensorFormat, try to export MGB_USE_MEGDNN_DBG=2 " + "to enable naive handle"); + } #undef CHECK_SRC } diff --git a/dnn/src/naive/handle.cpp b/dnn/src/naive/handle.cpp index 3de0244c03ca0bee68d3440d2feb93ffc2c10563..6a1129d952b308ba912230996d0283c1b3881c02 100644 --- a/dnn/src/naive/handle.cpp +++ b/dnn/src/naive/handle.cpp @@ -107,11 +107,7 @@ HandleImpl::HandleImpl(megcoreComputingHandle_t computing_handle, m_dispatcher{megcoreGetCPUDispatcher(computing_handle)} {} size_t HandleImpl::image2d_pitch_alignment() const { - if (type() == Handle::HandleType::NAIVE) { - // only naive CPU handle supports this format - return g_image2d_pitch_alignment; - } - megdnn_throw("Image2DTensorFormat is not supported on this handle"); + return g_image2d_pitch_alignment; } size_t HandleImpl::exchange_image2d_pitch_alignment(size_t alignment) {