blob: 39a2a2987880b884cb84fdf8526420f9c56c4006 [file] [log] [blame]
Laurent Carlier749294b2020-06-01 09:03:17 +01001//
Matthew Sloyan21a6a1a2022-06-30 17:13:04 +01002// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
Teresa Charlin970f43b2019-07-01 13:51:07 +01003// SPDX-License-Identifier: MIT
4//
5
6#include "RefResizeWorkload.hpp"
7
8#include "RefWorkloadUtils.hpp"
9#include "Resize.hpp"
10#include "BaseIterator.hpp"
11#include "Profiling.hpp"
12
13#include "BaseIterator.hpp"
14#include "Decoders.hpp"
15#include "Encoders.hpp"
16
17namespace armnn
18{
19
20void RefResizeWorkload::Execute() const
21{
Finn Williamsb8181f72021-04-07 10:23:21 +010022 Execute(m_Data.m_Inputs, m_Data.m_Outputs);
23}
24
Matthew Sloyan21a6a1a2022-06-30 17:13:04 +010025void RefResizeWorkload::ExecuteAsync(ExecutionData& executionData)
Finn Williamsb8181f72021-04-07 10:23:21 +010026{
Matthew Sloyan21a6a1a2022-06-30 17:13:04 +010027 WorkingMemDescriptor* workingMemDescriptor = static_cast<WorkingMemDescriptor*>(executionData.m_Data);
28 Execute(workingMemDescriptor->m_Inputs, workingMemDescriptor->m_Outputs);
Finn Williamsb8181f72021-04-07 10:23:21 +010029}
30
31void RefResizeWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const
32{
Teresa Charlin970f43b2019-07-01 13:51:07 +010033 ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefResizeWorkload_Execute");
34
Finn Williamsb8181f72021-04-07 10:23:21 +010035 const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
36 const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
Teresa Charlin970f43b2019-07-01 13:51:07 +010037
Finn Williamsb8181f72021-04-07 10:23:21 +010038 std::unique_ptr<Decoder<float>> decoderPtr = MakeDecoder<float>(inputInfo, inputs[0]->Map());
Teresa Charlin970f43b2019-07-01 13:51:07 +010039 Decoder<float> &decoder = *decoderPtr;
Finn Williamsb8181f72021-04-07 10:23:21 +010040 std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo, outputs[0]->Map());
Teresa Charlin970f43b2019-07-01 13:51:07 +010041 Encoder<float> &encoder = *encoderPtr;
42
Sang-Hoon Park820eb142020-01-08 10:25:24 +000043 Resize(decoder,
44 inputInfo,
45 encoder,
46 outputInfo,
47 m_Data.m_Parameters.m_DataLayout,
48 m_Data.m_Parameters.m_Method,
David Monahanab219752020-06-19 16:43:48 +010049 m_Data.m_Parameters.m_AlignCorners,
50 m_Data.m_Parameters.m_HalfPixelCenters);
Teresa Charlin970f43b2019-07-01 13:51:07 +010051}
52
53} //namespace armnn