diff options
Diffstat (limited to 'src/backends/reference/workloads/RefGatherWorkload.cpp')
-rw-r--r-- | src/backends/reference/workloads/RefGatherWorkload.cpp | 18 |
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 |