ArmNN
 20.05
SampleDynamicAdditionWorkload.cpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
7 
9 #include "SampleTensorHandle.hpp"
10 
11 namespace armnn
12 {
13 
14 inline const TensorInfo& GetTensorInfo(const ITensorHandle* tensorHandle)
15 {
16  // We know that reference workloads use RefTensorHandles for inputs and outputs
17  const SampleTensorHandle* sampleTensorHandle =
18  static_cast<const SampleTensorHandle*>(tensorHandle);
19  return sampleTensorHandle->GetTensorInfo();
20 }
21 
22 const float* GetInputTensorData(unsigned int idx, const AdditionQueueDescriptor& data)
23 {
24  const ITensorHandle* tensorHandle = data.m_Inputs[idx];
25  return reinterpret_cast<const float*>(tensorHandle->Map());
26 }
27 
28 float* GetOutputTensorData(unsigned int idx, const AdditionQueueDescriptor& data)
29 {
30  ITensorHandle* tensorHandle = data.m_Outputs[idx];
31  return reinterpret_cast<float*>(tensorHandle->Map());
32 }
33 
35  const WorkloadInfo& info)
36  : BaseWorkload(descriptor, info)
37 {}
38 
40 {
42  unsigned int num = info.GetNumElements();
43 
44  const float* inputData0 = GetInputTensorData(0, m_Data);
45  const float* inputData1 = GetInputTensorData(1, m_Data);
46  float* outputData = GetOutputTensorData(0, m_Data);
47 
48  for (unsigned int i = 0; i < num; ++i)
49  {
50  outputData[i] = inputData0[i] + inputData1[i];
51  }
52 }
53 
54 } // namespace armnn
const DataType * GetInputTensorData(unsigned int idx, const PayloadType &data)
const AdditionQueueDescriptor m_Data
Definition: Workload.hpp:46
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
DataType * GetOutputTensorData(unsigned int idx, const PayloadType &data)
Copyright (c) 2020 ARM Limited.
SampleDynamicAdditionWorkload(const AdditionQueueDescriptor &descriptor, const WorkloadInfo &info)
virtual const void * Map(bool blocking=true) const =0
Map the tensor data for access.
std::vector< ITensorHandle * > m_Outputs
Contains information about inputs and outputs to a layer.
std::vector< ITensorHandle * > m_Inputs
unsigned int GetNumElements() const
Definition: Tensor.hpp:93