aboutsummaryrefslogtreecommitdiff
path: root/src/backends/RefWorkloads/Splitter.hpp
diff options
context:
space:
mode:
authorDavid Beck <david.beck@arm.com>2018-09-24 13:18:27 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-10 16:16:57 +0100
commitb4540bef0b0327683fe8e63f727c1212800dc2a9 (patch)
treee1ea8bb6ee981640a1c469ceb556ed648ffde411 /src/backends/RefWorkloads/Splitter.hpp
parent2d9dd36fb6bc20b370701ab15463359b9db35f18 (diff)
downloadarmnn-b4540bef0b0327683fe8e63f727c1212800dc2a9.tar.gz
IVGCVSW-1898 : Ref backend folder structure
* Reference backend is renamed to backends/reference as per https://confluence.arm.com/display/MLENG/Pluggable+backends Change-Id: I27a13c274eb60995dfb459e3c49c0e2f60bcd32c
Diffstat (limited to 'src/backends/RefWorkloads/Splitter.hpp')
-rw-r--r--src/backends/RefWorkloads/Splitter.hpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/backends/RefWorkloads/Splitter.hpp b/src/backends/RefWorkloads/Splitter.hpp
deleted file mode 100644
index e9c0379c9e..0000000000
--- a/src/backends/RefWorkloads/Splitter.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "RefWorkloadUtils.hpp"
-
-#include "backends/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];
- }
- }
- }
-}
-
-} //namespace armnn