From 8599a415c159aa867db12853b3195f0f0a51ee6b Mon Sep 17 00:00:00 2001 From: Nikhil Raj Date: Mon, 19 Nov 2018 14:51:07 +0000 Subject: IVGCVSW-2043 - Merger using ACL for innermost concat axis * Add ClMergerWorkload and NeonMergerWorkload to call ACL for innermost concat axis * Modify layer support to call ClMergerWorkloadValidate and NeonMergerWorkloadValidate when concat axis is inner most * Add m_ConcatAxis to MergerDescriptor * Modify MergerQueueDescriptor::Validate to check sub tensor only when using subtensor !android-nn-driver:166 Change-Id: I56676b43964c8d6d726387b41b3cc34a512c0f0a --- src/backends/cl/ClLayerSupport.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'src/backends/cl/ClLayerSupport.cpp') diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index 039f1c24f0..a5030beb47 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -27,6 +27,7 @@ #include "workloads/ClL2NormalizationFloatWorkload.hpp" #include "workloads/ClLstmFloatWorkload.hpp" #include "workloads/ClMeanWorkload.hpp" +#include "workloads/ClMergerWorkload.hpp" #include "workloads/ClMultiplicationWorkload.hpp" #include "workloads/ClNormalizationFloatWorkload.hpp" #include "workloads/ClPadWorkload.hpp" @@ -366,14 +367,25 @@ bool ClLayerSupport::IsMeanSupported(const TensorInfo& input, } bool ClLayerSupport::IsMergerSupported(const std::vector inputs, + const TensorInfo& output, const OriginsDescriptor& descriptor, Optional reasonIfUnsupported) const { - ignore_unused(descriptor); - return IsSupportedForDataTypeCl(reasonIfUnsupported, - inputs[0]->GetDataType(), - &TrueFunc<>, - &FalseFuncU8<>); + if(descriptor.GetNumDimensions() - descriptor.GetConcatAxis() == 1) + { + FORWARD_WORKLOAD_VALIDATE_FUNC(ClMergerWorkloadValidate, + reasonIfUnsupported, + inputs, + output, + descriptor); + } + else + { + return IsSupportedForDataTypeCl(reasonIfUnsupported, + inputs[0]->GetDataType(), + &TrueFunc<>, + &FalseFuncU8<>); + } } bool ClLayerSupport::IsMultiplicationSupported(const TensorInfo& input0, -- cgit v1.2.1