ArmNN
 26.01
Loading...
Searching...
No Matches
RefPadWorkload.cpp
Go to the documentation of this file.
1//
2// Copyright © 2018-2024 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "RefPadWorkload.hpp"
7
8#include "MirrorPad.hpp"
9#include "Pad.hpp"
10#include "Profiling.hpp"
11#include "RefWorkloadUtils.hpp"
12
13namespace armnn
14{
15
20
21void RefPadWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const
22{
23 ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID("RefPadWorkload_Execute");
24
25 const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
26 const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
27
28 PaddingMode paddingMode = m_Data.m_Parameters.m_PaddingMode;
29 if (paddingMode == PaddingMode::Constant)
30 {
31 armnn::Pad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
32 }
33 else if(paddingMode == PaddingMode::Reflect || paddingMode == PaddingMode::Symmetric)
34 {
35 armnn::MirrorPad(inputInfo, outputInfo, inputs[0], outputs[0], m_Data);
36 }
37 else
38 {
39 throw InvalidArgumentException("Padding mode not supported.");
40 }
41}
42
43} //namespace armnn
#define ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID(label)
Creates a profiling event that uses GetGuid() and GetName() from the calling class.
QueueDescriptor m_Data
Definition Workload.hpp:74
void Execute() const override
Copyright (c) 2021 ARM Limited and Contributors.
PaddingMode
The padding mode controls whether the padding should be filled with constant values (Constant),...
Definition Types.hpp:202
void MirrorPad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition MirrorPad.cpp:59
armnn::TensorInfo GetTensorInfo(unsigned int numberOfBatches, unsigned int numberOfChannels, unsigned int height, unsigned int width, const armnn::DataLayout dataLayout, const armnn::DataType dataType)
std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs