From 16ba05a81b3e925c776689c2f0ec26ff2d25ad27 Mon Sep 17 00:00:00 2001 From: Megvii Engine Team Date: Fri, 1 Jul 2022 15:08:52 +0800 Subject: [PATCH] fix(dnn): fix dnn nchwxx elemwise performance GitOrigin-RevId: 5a715d7b2abf187102de50bdb6826e3b45a648cd --- dnn/src/arm_common/elemwise/binary/algo.h | 2 +- dnn/src/fallback/elemwise/opr_impl.cpp | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dnn/src/arm_common/elemwise/binary/algo.h b/dnn/src/arm_common/elemwise/binary/algo.h index d270ddded..6daddc216 100644 --- a/dnn/src/arm_common/elemwise/binary/algo.h +++ b/dnn/src/arm_common/elemwise/binary/algo.h @@ -11,7 +11,7 @@ namespace arm_common { } \ const char* name() const override { \ if (m_name.empty()) { \ - m_name = ssprintf("Elemwise::AlgoBinaryCase" #case); \ + m_name = ssprintf("Elemwise::AlgoBinaryCaseArmCommon" #case); \ } \ return m_name.c_str(); \ } \ diff --git a/dnn/src/fallback/elemwise/opr_impl.cpp b/dnn/src/fallback/elemwise/opr_impl.cpp index 9af9b40bd..12276a794 100644 --- a/dnn/src/fallback/elemwise/opr_impl.cpp +++ b/dnn/src/fallback/elemwise/opr_impl.cpp @@ -267,16 +267,6 @@ ElemwiseImpl::KernParam ElemwiseImpl::make_kern_param(ElemwiseImpl* opr) { return kern_param; } - if (is_vector(src0.layout) && is_broadcasted_3dim_like(src1.layout, binfo)) { - kern_param.broad_cast_type = BcastType::VEC_BCASTX0X; - return kern_param; - } - - if (is_vector(src1.layout) && is_broadcasted_3dim_like(src0.layout, binfo)) { - kern_param.broad_cast_type = BcastType::BCASTX0X_VEC; - return kern_param; - } - if (is_legal_layout_for_nhwc(src1.layout) && is_NHWC_broadcasted_channel_like(src0.layout, binfo)) { kern_param.broad_cast_type = BcastType::BCAST111C_VEC; @@ -302,6 +292,16 @@ ElemwiseImpl::KernParam ElemwiseImpl::make_kern_param(ElemwiseImpl* opr) { kern_param.broad_cast_type = BcastType::BCAST101xX_VEC; return kern_param; } + + if (is_vector(src0.layout) && is_broadcasted_3dim_like(src1.layout, binfo)) { + kern_param.broad_cast_type = BcastType::VEC_BCASTX0X; + return kern_param; + } + + if (is_vector(src1.layout) && is_broadcasted_3dim_like(src0.layout, binfo)) { + kern_param.broad_cast_type = BcastType::BCASTX0X_VEC; + return kern_param; + } } else if (opr->m_src->size() == 1) { kern_param.broad_cast_type = BcastType::VEC; kern_param.unary_elparam = opr->make_elemwise_op_param<1>(); -- GitLab