aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/Splitter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/workloads/Splitter.hpp')
-rw-r--r--src/backends/reference/workloads/Splitter.hpp82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/backends/reference/workloads/Splitter.hpp b/src/backends/reference/workloads/Splitter.hpp
deleted file mode 100644
index 271c6fdeb8..0000000000
--- a/src/backends/reference/workloads/Splitter.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "RefWorkloadUtils.hpp"
-#include <backendsCommon/WorkloadData.hpp>
-#include <armnn/Tensor.hpp>
-#include <boost/assert.hpp>
-
-namespace armnn
-{
-
-template <typename DataType>
-void Splitter(const SplitterQueueDescriptor& data)
-{
- const TensorInfo& inputInfo0 = GetTensorInfo(data.m_Inputs[0]);
-
- for (unsigned int index = 0; index < inputInfo0.GetNumElements(); ++index)
- {
- unsigned int indices[MaxNumOfTensorDimensions] = { 0 };
-
- unsigned int indexRemainder = index;
- unsigned int dimensionStride = inputInfo0.GetNumElements();
-
- for (unsigned int i = 0; i<inputInfo0.GetNumDimensions(); i++)
- {
- dimensionStride /= inputInfo0.GetShape()[i];
- indices[i] = indexRemainder / dimensionStride; // Use integer division to round down.
- indexRemainder -= indices[i] * dimensionStride;
- }
-
- for (unsigned int viewIdx = 0; viewIdx < data.m_ViewOrigins.size(); ++viewIdx)
- {
- SplitterQueueDescriptor::ViewOrigin const& view = data.m_ViewOrigins[viewIdx];
-
- //Split view extents are defined by the size of (the corresponding) input tensor.
- const TensorInfo& outputInfo = GetTensorInfo(data.m_Outputs[viewIdx]);
- BOOST_ASSERT(outputInfo.GetNumDimensions() == inputInfo0.GetNumDimensions());
-
- // Check all dimensions to see if this element is inside the given input view.
- bool insideView = true;
- for (unsigned int i = 0; i<outputInfo.GetNumDimensions(); i++)
- {
- if (indices[i] < view.m_Origin[i])
- {
- insideView = false;
- }
- if (indices[i] >= view.m_Origin[i] + outputInfo.GetShape()[i])
- {
- insideView = false;
- }
- }
-
- if (insideView)
- {
- unsigned int outIndex = 0;
- unsigned int dimensionStride = 1;
-
- for (unsigned int i = outputInfo.GetNumDimensions(); i-- > 0;)
- {
- outIndex += dimensionStride * (indices[i] - view.m_Origin[i]);
- dimensionStride *= outputInfo.GetShape()[i];
- }
-
- //We are within the view, to copy input data to the output corresponding to this view.
- DataType* outputData = GetOutputTensorData<DataType>(viewIdx, data);
- BOOST_ASSERT(outputData);
-
- const DataType* inputData = GetInputTensorData<DataType>(0, data);
- BOOST_ASSERT(inputData);
-
- outputData[outIndex] = inputData[index];
- }
- }
- }
-}
-
-void Split(const SplitterQueueDescriptor& data);
-} //namespace armnn