23.02
RefGatherWorkload.cpp
Go to the documentation of this file.
1
//
2
// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
3
// SPDX-License-Identifier: MIT
4
//
5
6
#include "
RefGatherWorkload.hpp
"
7
8
#include "
Gather.hpp
"
9
#include "
Profiling.hpp
"
10
#include "
RefWorkloadUtils.hpp
"
11
#include <
ResolveType.hpp
>
12
13
namespace
armnn
14
{
15
16
void
RefGatherWorkload::Execute
()
const
17
{
18
Execute
(
m_Data
.
m_Inputs
,
m_Data
.
m_Outputs
);
19
}
20
21
void
RefGatherWorkload::ExecuteAsync
(
ExecutionData
& executionData)
22
{
23
WorkingMemDescriptor
* workingMemDescriptor =
static_cast<
WorkingMemDescriptor
*
>
(executionData.
m_Data
);
24
Execute
(workingMemDescriptor->
m_Inputs
, workingMemDescriptor->
m_Outputs
);
25
}
26
27
void
RefGatherWorkload::Execute
(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs)
const
28
{
29
ARMNN_SCOPED_PROFILING_EVENT
(
Compute::CpuRef
,
"RefGatherWorkload_Execute"
);
30
31
const
TensorInfo
& inputInfo0 =
GetTensorInfo
(inputs[0]);
32
const
TensorInfo
& inputInfo1 =
GetTensorInfo
(inputs[1]);
33
const
TensorInfo
& outputInfo =
GetTensorInfo
(outputs[0]);
34
35
std::unique_ptr<Decoder<float>> decoderPtr = MakeDecoder<float>(inputInfo0, inputs[0]->
Map
());
36
Decoder<float>
& decoder = *decoderPtr;
37
38
const
int32_t* indicesData =
reinterpret_cast<
int32_t*
>
(inputs[1]->Map());
39
40
std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo, outputs[0]->
Map
());
41
Encoder<float>
& encoder = *encoderPtr;
42
43
Gather
(inputInfo0, inputInfo1, outputInfo, decoder, indicesData, encoder,
m_Data
.
m_Parameters
.
m_Axis
);
44
}
45
46
}
//namespace armnn
armnn::GetTensorInfo
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
Definition:
RefWorkloadUtils.hpp:27
armnn::LayerType::Map
@ Map
armnn::experimental::WorkingMemDescriptor::m_Inputs
std::vector< ITensorHandle * > m_Inputs
Definition:
WorkingMemDescriptor.hpp:20
armnn::RefGatherWorkload::ExecuteAsync
void ExecuteAsync(ExecutionData &executionData) override
Definition:
RefGatherWorkload.cpp:21
armnn::Encoder< float >
armnn::experimental::ExecutionData
Definition:
ExecutionData.hpp:14
armnn::experimental::ExecutionData::m_Data
void * m_Data
Definition:
ExecutionData.hpp:16
armnn::experimental::WorkingMemDescriptor
Definition:
WorkingMemDescriptor.hpp:18
armnn::BaseWorkload< GatherQueueDescriptor >::m_Data
GatherQueueDescriptor m_Data
Definition:
Workload.hpp:83
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition:
01_00_quick_start.dox:6
armnn::GatherDescriptor::m_Axis
int32_t m_Axis
The axis in params to gather indices from.
Definition:
Descriptors.hpp:928
RefWorkloadUtils.hpp
ARMNN_SCOPED_PROFILING_EVENT
#define ARMNN_SCOPED_PROFILING_EVENT(backendId, name)
Definition:
Profiling.hpp:220
armnn::Decoder< float >
armnn::TensorInfo
Definition:
Tensor.hpp:152
armnn::Gather
void Gather(const TensorInfo ¶msInfo, const TensorInfo &indicesInfo, const TensorInfo &outputInfo, Decoder< float > ¶ms, const int32_t *indices, Encoder< float > &output, const int32_t axis_int)
Definition:
Gather.cpp:14
armnn::QueueDescriptorWithParameters::m_Parameters
LayerDescriptor m_Parameters
Definition:
WorkloadData.hpp:66
armnn::experimental::WorkingMemDescriptor::m_Outputs
std::vector< ITensorHandle * > m_Outputs
Definition:
WorkingMemDescriptor.hpp:21
armnn::RefGatherWorkload::Execute
void Execute() const override
Definition:
RefGatherWorkload.cpp:16
Gather.hpp
RefGatherWorkload.hpp
ResolveType.hpp
armnn::QueueDescriptor::m_Outputs
std::vector< ITensorHandle * > m_Outputs
Definition:
WorkloadData.hpp:27
armnn::Compute::CpuRef
@ CpuRef
CPU Execution: Reference C++ kernels.
armnn::QueueDescriptor::m_Inputs
std::vector< ITensorHandle * > m_Inputs
Definition:
WorkloadData.hpp:26
Profiling.hpp
src
backends
reference
workloads
RefGatherWorkload.cpp
Generated on Wed Mar 22 2023 15:53:02 for ArmNN by
1.8.17