ArmNN
 25.02
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RefTileWorkload.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2023-2024 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "RefTileWorkload.hpp"
7 #include "RefWorkloadUtils.hpp"
8 #include "Tile.hpp"
9 #include "Profiling.hpp"
10 
11 namespace armnn
12 {
13 
15  : RefBaseWorkload(descriptor, info)
16  {}
17 
19  {
20  auto inputDataType = GetTensorInfo(m_Data.m_Inputs[0]).GetDataType();
21  if(inputDataType == DataType::Signed64)
22  {
23  Execute<double_t>(m_Data.m_Inputs, m_Data.m_Outputs);
24  }
25  else
26  {
27  Execute<float>(m_Data.m_Inputs, m_Data.m_Outputs);
28  }
29  }
30 
31  template <typename T>
32  void RefTileWorkload::Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const
33  {
34  ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID("RefTileWorkload_Execute");
35 
36  const TensorInfo& inputInfo = GetTensorInfo(inputs[0]);
37  const TensorInfo& outputInfo = GetTensorInfo(outputs[0]);
38 
39  std::unique_ptr<Decoder<T>> inputDecoder = MakeDecoder<T>(inputInfo,
40  inputs[0]->Map());
41  std::unique_ptr<Encoder<T>> outputEncoder = MakeEncoder<T>(outputInfo,
42  outputs[0]->Map());
43 
44  Tile<T, T>(m_Data.m_Parameters,
45  inputInfo,
46  *inputDecoder,
47  *outputEncoder);
48  }
49 
50 } // namespace armnn
#define ARMNN_SCOPED_PROFILING_EVENT_REF_NAME_GUID(label)
Creates a profiling event that uses GetGuid() and GetName() from the calling class.
RefTileWorkload(const TileQueueDescriptor &descriptor, const WorkloadInfo &info)
void Execute() const override
DataType GetDataType() const
Definition: Tensor.hpp:200
Copyright (c) 2021 ARM Limited and Contributors.
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
std::vector< ITensorHandle * > m_Inputs
std::vector< ITensorHandle * > m_Outputs
Contains information about TensorInfos of a layer.