diff options
author | Ellen Norris-Thompson <ellen.norris-thompson@arm.com> | 2019-06-21 15:50:00 +0100 |
---|---|---|
committer | Ellen Norris-Thompson <ellen.norris-thompson@arm.com> | 2019-06-24 11:14:48 +0100 |
commit | 6858d3fb714cc20d5fcfd814c35ed3a84dc82145 (patch) | |
tree | db6a6651fff0dce4095be58bc155e63175abe33e /src/backends/reference/workloads/RefGatherWorkload.cpp | |
parent | 389aa70c8a24fa2faf33df5f8cd9a99b0fabe971 (diff) | |
download | armnn-6858d3fb714cc20d5fcfd814c35ed3a84dc82145.tar.gz |
IVGCVSW-3247: Refactor reference Gather workload
* Refactored Gather reference workload to not use templates for different types
* Added quantization values in Gather unit tests for Quantized types
Signed-off-by: Ellen Norris-Thompson <ellen.norris-thompson@arm.com>
Change-Id: Ibe5d655aa1c287824e45b83818c5862bda7f92b0
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 |