aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNina Drozd <nina.drozd@arm.com>2018-10-02 11:14:17 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:58 +0100
commit661dfa73bd5da4816a42acbb0768d0766d985e1c (patch)
treef1a874949930b1ecdea21419ce4e40a0bd3564ae
parentd59116ecb54c5bfe828d82ea0bc3367bc9b8c5dd (diff)
downloadarmnn-661dfa73bd5da4816a42acbb0768d0766d985e1c.tar.gz
IVGCVSW-1886 - forward layer support for pad
Ref returning false for now until implementation complete in 1885 Change-Id: I28cbc584eaa6ce3ad79a531db7155b3f9716f30c
-rw-r--r--src/armnn/LayerSupport.cpp4
-rw-r--r--src/backends/WorkloadData.cpp3
-rw-r--r--src/backends/neon/NeonLayerSupport.cpp8
-rw-r--r--src/backends/neon/NeonLayerSupport.hpp5
-rw-r--r--src/backends/reference/RefLayerSupport.cpp10
-rw-r--r--src/backends/reference/RefLayerSupport.hpp5
6 files changed, 32 insertions, 3 deletions
diff --git a/src/armnn/LayerSupport.cpp b/src/armnn/LayerSupport.cpp
index 538f8e8cda..9561136d85 100644
--- a/src/armnn/LayerSupport.cpp
+++ b/src/armnn/LayerSupport.cpp
@@ -363,8 +363,8 @@ bool IsPadSupported(Compute compute,
char* reasonIfUnsupported,
size_t reasonIfUnsupportedMaxLength)
{
- CopyErrorMessage(reasonIfUnsupported, "Not implemented", reasonIfUnsupportedMaxLength);
- return false;
+
+ FORWARD_LAYER_SUPPORT_FUNC(compute, IsPadSupported, input, output, descriptor);
}
}
diff --git a/src/backends/WorkloadData.cpp b/src/backends/WorkloadData.cpp
index 32ed97a052..a6a87f3782 100644
--- a/src/backends/WorkloadData.cpp
+++ b/src/backends/WorkloadData.cpp
@@ -858,7 +858,8 @@ void PadQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
ValidateSingleOutput(workloadInfo, "PadQueueDescriptor");
const TensorInfo& input = workloadInfo.m_InputTensorInfos[0];
- const TensorInfo& output = workloadInfo.m_OutputTensorInfos[1];
+ const TensorInfo& output = workloadInfo.m_OutputTensorInfos[0];
+
// input and output should have the same number of dimensions
ValidateTensorNumDimensions(output, "PadQueueDescriptor", input.GetNumDimensions(), "output");
// there should be entry in the pad list for each dimension in the input tensor
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp
index a79f4c0365..bc1f96be3f 100644
--- a/src/backends/neon/NeonLayerSupport.cpp
+++ b/src/backends/neon/NeonLayerSupport.cpp
@@ -466,4 +466,12 @@ bool IsMeanSupportedNeon(const TensorInfo& input,
return false;
}
+bool IsPadSupportedNeon(const TensorInfo& input,
+ const TensorInfo& output,
+ const PadDescriptor& descriptor,
+ std::string* reasonIfUnsupported)
+{
+ return false;
+}
+
}
diff --git a/src/backends/neon/NeonLayerSupport.hpp b/src/backends/neon/NeonLayerSupport.hpp
index 590f4d64c6..439c45f59e 100644
--- a/src/backends/neon/NeonLayerSupport.hpp
+++ b/src/backends/neon/NeonLayerSupport.hpp
@@ -166,4 +166,9 @@ bool IsMeanSupportedNeon(const TensorInfo& input,
const MeanDescriptor& descriptor,
std::string* reasonIfUnsupported = nullptr);
+bool IsPadSupportedNeon(const TensorInfo& input,
+ const TensorInfo& output,
+ const PadDescriptor& descriptor,
+ std::string* reasonIfUnsupported = nullptr);
+
}
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index 536dd17ea8..1ca3d5b6d6 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -402,4 +402,14 @@ bool IsMeanSupportedRef(const TensorInfo& input,
&TrueFunc<>);
}
+bool IsPadSupportedRef(const TensorInfo& input,
+ const TensorInfo& output,
+ const PadDescriptor& descriptor,
+ std::string* reasonIfUnsupported)
+{
+ ignore_unused(output);
+ ignore_unused(descriptor);
+ return false;
+}
+
}
diff --git a/src/backends/reference/RefLayerSupport.hpp b/src/backends/reference/RefLayerSupport.hpp
index e819b6665a..0fac886234 100644
--- a/src/backends/reference/RefLayerSupport.hpp
+++ b/src/backends/reference/RefLayerSupport.hpp
@@ -158,4 +158,9 @@ bool IsMeanSupportedRef(const TensorInfo& input,
const MeanDescriptor& descriptor,
std::string* reasonIfUnsupported = nullptr);
+bool IsPadSupportedRef(const TensorInfo& input,
+ const TensorInfo& output,
+ const PadDescriptor& descriptor,
+ std::string* reasonIfUnsupported = nullptr);
+
}