ArmNN
 25.02
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
13 namespace armnn
14 {
15 
17 {
19 }
20 
21 void 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 Pad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition: Pad.cpp:39
void MirrorPad(const TensorInfo &inputInfo, const TensorInfo &outputInfo, const ITensorHandle *inputHandle, ITensorHandle *outputHandle, const PadQueueDescriptor &data)
Definition: MirrorPad.cpp:59
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs