aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/RefGatherWorkload.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/workloads/RefGatherWorkload.cpp')
-rw-r--r--src/backends/reference/workloads/RefGatherWorkload.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/backends/reference/workloads/RefGatherWorkload.cpp b/src/backends/reference/workloads/RefGatherWorkload.cpp
index bca3f18796..8edf14c8f8 100644
--- a/src/backends/reference/workloads/RefGatherWorkload.cpp
+++ b/src/backends/reference/workloads/RefGatherWorkload.cpp
@@ -13,25 +13,23 @@
namespace armnn
{
-template <armnn::DataType DataType>
-void RefGatherWorkload<DataType>::Execute() const
+void RefGatherWorkload::Execute() const
{
- using T = ResolveType<DataType>;
-
ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefGatherWorkload_Execute");
const TensorInfo& inputInfo0 = GetTensorInfo(m_Data.m_Inputs[0]);
const TensorInfo& inputInfo1 = GetTensorInfo(m_Data.m_Inputs[1]);
const TensorInfo& outputInfo = GetTensorInfo(m_Data.m_Outputs[0]);
- const T* paramsData = GetInputTensorData<T>(0, m_Data);
+ std::unique_ptr<Decoder<float>> decoderPtr = MakeDecoder<float>(inputInfo0, m_Data.m_Inputs[0]->Map());
+ Decoder<float>& decoder = *decoderPtr;
+
const int32_t* indicesData = GetInputTensorData<int32_t>(1, m_Data);
- T* outputData = GetOutputTensorData<T>(0, m_Data);
- Gather(inputInfo0, inputInfo1, outputInfo, paramsData, indicesData, outputData);
-}
+ std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo, m_Data.m_Outputs[0]->Map());
+ Encoder<float>& encoder = *encoderPtr;
-template class RefGatherWorkload<DataType::Float32>;
-template class RefGatherWorkload<DataType::QuantisedAsymm8>;
+ Gather(inputInfo0, inputInfo1, outputInfo, decoder, indicesData, encoder);
+}
} //namespace armnn