aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNikhil Raj <nikhil.raj@arm.com>2018-11-19 14:51:07 +0000
committerNikhil Raj <nikhil.raj@arm.com>2018-11-19 14:51:07 +0000
commit8599a415c159aa867db12853b3195f0f0a51ee6b (patch)
treef85987c71dc745d7da7c672466723c26e39290b6 /include
parent1d67a6905daed13354e66f00549e12fea62170ed (diff)
downloadarmnn-8599a415c159aa867db12853b3195f0f0a51ee6b.tar.gz
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
Diffstat (limited to 'include')
-rw-r--r--include/armnn/Descriptors.hpp10
-rw-r--r--include/armnn/ILayerSupport.hpp1
-rw-r--r--include/armnn/LayerSupport.hpp1
3 files changed, 9 insertions, 3 deletions
diff --git a/include/armnn/Descriptors.hpp b/include/armnn/Descriptors.hpp
index 2781786f10..0abc7583b9 100644
--- a/include/armnn/Descriptors.hpp
+++ b/include/armnn/Descriptors.hpp
@@ -63,11 +63,14 @@ struct OriginsDescriptor
const uint32_t* GetViewOrigin(uint32_t idx) const;
void ReorderOrigins(unsigned int* newOrdering, unsigned int numNewOrdering);
friend void swap(OriginsDescriptor& first, OriginsDescriptor& second);
+ void SetConcatAxis(unsigned int concatAxis);
+ unsigned int GetConcatAxis() const;
private:
- uint32_t m_NumViews;
- uint32_t m_NumDimensions;
- uint32_t** m_ViewOrigins;
+ unsigned int m_ConcatAxis;
+ uint32_t m_NumViews;
+ uint32_t m_NumDimensions;
+ uint32_t** m_ViewOrigins;
};
struct ViewsDescriptor
@@ -138,6 +141,7 @@ OriginsDescriptor CreateMergerDescriptorForConcatenation(TensorShapeIt first, Te
}
OriginsDescriptor viewsDescriptor(static_cast<uint32_t>(numInputs), numDimensions);
+ viewsDescriptor.SetConcatAxis(concatenationDimension);
uint32_t viewIndex = 0u;
uint32_t coordAlongConcatDim = 0u;
diff --git a/include/armnn/ILayerSupport.hpp b/include/armnn/ILayerSupport.hpp
index e679f84109..7677971c6b 100644
--- a/include/armnn/ILayerSupport.hpp
+++ b/include/armnn/ILayerSupport.hpp
@@ -132,6 +132,7 @@ public:
Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
virtual bool IsMergerSupported(const std::vector<const TensorInfo*> inputs,
+ const TensorInfo& output,
const OriginsDescriptor& descriptor,
Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const;
diff --git a/include/armnn/LayerSupport.hpp b/include/armnn/LayerSupport.hpp
index 7bed5779d3..83d79ec79e 100644
--- a/include/armnn/LayerSupport.hpp
+++ b/include/armnn/LayerSupport.hpp
@@ -147,6 +147,7 @@ bool IsLstmSupported(const BackendId& backend, const TensorInfo& input, const Te
/// Deprecated in favor of IBackend and ILayerSupport interfaces
bool IsMergerSupported(const BackendId& backend,
const std::vector<const TensorInfo*> inputs,
+ const TensorInfo& output,
const OriginsDescriptor& descriptor,
char* reasonIfUnsupported = nullptr,
size_t reasonIfUnsupportedMaxLength = 1024);