aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefPadWorkload.cpp
diff options
context:
space:
mode:
authorMatthew Sloyan <matthew.sloyan@arm.com>2021-10-21 14:05:31 +0100
committerTeresa Charlin <teresa.charlinreyes@arm.com>2021-10-27 20:54:21 +0100
commit2e5d0b2e2a212ceb803681b717cbaf821f5e0929 (patch)
treedd2364c8cd2845bd880191526a5eeb51eee7a2d4 /src/backends/reference/workloads/RefPadWorkload.cpp
parent65b86d4a42f3a55322d4bd4d8dccf6cf22775a30 (diff)
downloadarmnn-2e5d0b2e2a212ceb803681b717cbaf821f5e0929.tar.gz
IVGCVSW-6469 Add MirrorPad FrontEnd and Ref Support
* Added PaddingMode enum to PaddingDescriptor to enable Symmetric and Reflect padding. * Added Symmetric and Reflect Ref implementation. * Added Serializer & Deserializer support. * Added unit tests. Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I4bed907b31742b32ccefe5e8ca39a6f1e5bd9dee
Diffstat (limited to 'src/backends/reference/workloads/RefPadWorkload.cpp')
-rw-r--r--src/backends/reference/workloads/RefPadWorkload.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/backends/reference/workloads/RefPadWorkload.cpp b/src/backends/reference/workloads/RefPadWorkload.cpp
index f15306d1af..fd0728c8cd 100644
--- a/src/backends/reference/workloads/RefPadWorkload.cpp
+++ b/src/backends/reference/workloads/RefPadWorkload.cpp
@@ -5,6 +5,7 @@
#include "RefPadWorkload.hpp"
+#include "MirrorPad.hpp"
#include "Pad.hpp"
#include "Profiling.hpp"
#include "RefWorkloadUtils.hpp"
@@ -29,11 +30,19 @@ void RefPadWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITe
const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
- armnn::Pad(inputInfo,
- outputInfo,
- inputs[0],
- outputs[0],
- m_Data);
+ PaddingMode paddingMode = m_Data.m_Parameters.m_PaddingMode;
+ if (paddingMode == PaddingMode::Constant)
+ {
+ armnn::Pad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
+ }
+ else if(paddingMode == PaddingMode::Reflect || paddingMode == PaddingMode::Symmetric)
+ {
+ armnn::MirrorPad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
+ }
+ else
+ {
+ throw InvalidArgumentException("Padding mode not supported.");
+ }
}
} //namespace armnn \ No newline at end of file