aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
diff options
context:
space:
mode:
authorMatteo Martincigh <matteo.martincigh@arm.com>2019-11-28 15:45:42 +0000
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2019-12-09 12:00:04 +0000
commite5b8eb9fe8147a0849db08ef0898a0e8bef920b4 (patch)
tree54f039796753b6a395eb9f76e46e11a9413dabad /src/armnn
parent3e2969d7195d77796774101580b837681505904a (diff)
downloadarmnn-e5b8eb9fe8147a0849db08ef0898a0e8bef920b4.tar.gz
IVGCVSW-4210 Create a public API for the common backend files
* Create a public API for the common backend files * Move OutputHandler to armnn internal * Remove unused headers Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: I3e86d908b021e3561befa9d45158d87d2cbb18c0
Diffstat (limited to 'src/armnn')
-rw-r--r--src/armnn/BackendHelper.cpp2
-rw-r--r--src/armnn/Graph.cpp2
-rw-r--r--src/armnn/Layer.hpp4
-rw-r--r--src/armnn/LayerSupport.cpp2
-rw-r--r--src/armnn/LoadedNetwork.cpp3
-rw-r--r--src/armnn/LoadedNetwork.hpp2
-rw-r--r--src/armnn/Network.cpp2
-rw-r--r--src/armnn/OutputHandler.cpp38
-rw-r--r--src/armnn/OutputHandler.hpp63
-rw-r--r--src/armnn/Runtime.cpp2
-rw-r--r--src/armnn/Runtime.hpp2
-rw-r--r--src/armnn/layers/PreCompiledLayer.cpp2
-rw-r--r--src/armnn/test/GraphTests.cpp11
-rw-r--r--src/armnn/test/TensorHandleStrategyTest.cpp8
14 files changed, 123 insertions, 20 deletions
diff --git a/src/armnn/BackendHelper.cpp b/src/armnn/BackendHelper.cpp
index 673950e4e3..84889b80e4 100644
--- a/src/armnn/BackendHelper.cpp
+++ b/src/armnn/BackendHelper.cpp
@@ -6,7 +6,7 @@
#include <armnn/BackendHelper.hpp>
#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/IBackendInternal.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
namespace armnn
{
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp
index d44e43c2cb..42a46f51cc 100644
--- a/src/armnn/Graph.cpp
+++ b/src/armnn/Graph.cpp
@@ -7,7 +7,7 @@
#include "SubgraphView.hpp"
#include "LayersFwd.hpp"
-#include <backendsCommon/IBackendInternal.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
#include <armnn/BackendId.hpp>
#include <armnn/Utils.hpp>
diff --git a/src/armnn/Layer.hpp b/src/armnn/Layer.hpp
index 5f2c070681..3f00a20e65 100644
--- a/src/armnn/Layer.hpp
+++ b/src/armnn/Layer.hpp
@@ -6,8 +6,8 @@
#include "LayerFwd.hpp"
-#include <backendsCommon/ITensorHandleFactory.hpp>
-#include <backendsCommon/OutputHandler.hpp>
+#include <armnn/backends/ITensorHandleFactory.hpp>
+#include <OutputHandler.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
#include <backendsCommon/WorkloadDataCollector.hpp>
#include <backendsCommon/WorkloadInfo.hpp>
diff --git a/src/armnn/LayerSupport.cpp b/src/armnn/LayerSupport.cpp
index 7b9ada9150..2749d7bd7a 100644
--- a/src/armnn/LayerSupport.cpp
+++ b/src/armnn/LayerSupport.cpp
@@ -8,7 +8,7 @@
#include <armnn/ILayerSupport.hpp>
#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/IBackendInternal.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
#include <boost/assert.hpp>
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp
index 86cd9ede23..c0f3fec3f5 100644
--- a/src/armnn/LoadedNetwork.cpp
+++ b/src/armnn/LoadedNetwork.cpp
@@ -14,9 +14,10 @@
#include <armnn/BackendRegistry.hpp>
#include <backendsCommon/CpuTensorHandle.hpp>
-#include <backendsCommon/IMemoryManager.hpp>
+#include <armnn/backends/IMemoryManager.hpp>
#include <backendsCommon/MemCopyWorkload.hpp>
#include <backendsCommon/MemSyncWorkload.hpp>
+
#include <LabelsAndEventClasses.hpp>
#include <ProfilingService.hpp>
diff --git a/src/armnn/LoadedNetwork.hpp b/src/armnn/LoadedNetwork.hpp
index 1ac53daecb..ab2c8be1cd 100644
--- a/src/armnn/LoadedNetwork.hpp
+++ b/src/armnn/LoadedNetwork.hpp
@@ -11,7 +11,7 @@
#include "LayerFwd.hpp"
#include "Profiling.hpp"
-#include <backendsCommon/IBackendInternal.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
#include <backendsCommon/Workload.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index c764e2a059..3a2dc4e2e7 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -14,7 +14,7 @@
#include <backendsCommon/CpuTensorHandle.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
-#include <backendsCommon/IBackendInternal.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
#include <armnn/Exceptions.hpp>
diff --git a/src/armnn/OutputHandler.cpp b/src/armnn/OutputHandler.cpp
new file mode 100644
index 0000000000..5a542fdb2e
--- /dev/null
+++ b/src/armnn/OutputHandler.cpp
@@ -0,0 +1,38 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "OutputHandler.hpp"
+
+#include <armnn/backends/ITensorHandle.hpp>
+#include <backendsCommon/WorkloadDataCollector.hpp>
+#include <backendsCommon/WorkloadFactory.hpp>
+
+#include <boost/assert.hpp>
+
+namespace armnn
+{
+
+void OutputHandler::SetTensorInfo(const TensorInfo& tensorInfo)
+{
+ m_TensorInfo = tensorInfo;
+ m_bTensorInfoSet = true;
+}
+
+void OutputHandler::CreateTensorHandles(const IWorkloadFactory& factory, const bool IsMemoryManaged)
+{
+ m_TensorHandle = factory.CreateTensorHandle(m_TensorInfo, IsMemoryManaged);
+}
+
+void OutputHandler::CreateTensorHandles(const ITensorHandleFactory& factory, const bool IsMemoryManaged)
+{
+ m_TensorHandle = factory.CreateTensorHandle(m_TensorInfo, IsMemoryManaged);
+}
+
+void OutputHandler::CollectWorkloadOutputs(WorkloadDataCollector& dataCollector) const
+{
+ dataCollector.Push(m_TensorHandle.get(), m_TensorInfo);
+}
+
+} // namespace armnn
diff --git a/src/armnn/OutputHandler.hpp b/src/armnn/OutputHandler.hpp
new file mode 100644
index 0000000000..9cfde20c12
--- /dev/null
+++ b/src/armnn/OutputHandler.hpp
@@ -0,0 +1,63 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/backends/ITensorHandle.hpp>
+#include <armnn/backends/ITensorHandleFactory.hpp>
+
+#include <armnn/Descriptors.hpp>
+#include <armnn/INetwork.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+
+#include <memory>
+#include <set>
+#include <string>
+#include <vector>
+
+#include <boost/assert.hpp>
+
+namespace armnn
+{
+
+class ITensorHandle;
+class IWorkloadFactory;
+class OutputSlot;
+class WorkloadDataCollector;
+
+class OutputHandler
+{
+public:
+ /// @brief - Sets the TensorInfo used by this output handler.
+ /// @param tensorInfo - TensorInfo for the output.
+ void SetTensorInfo(const TensorInfo& tensorInfo);
+
+ /// @brief - Creates tensor handles used by the intermediate tensors. Does not allocate memory.
+ /// @param factory - Factory to be used for handler creation.
+ void CreateTensorHandles(const IWorkloadFactory& factory, const bool IsMemoryManaged = true);
+ void CreateTensorHandles(const ITensorHandleFactory& factory, const bool IsMemoryManaged = true);
+
+ /// @brief - Gets the matching TensorInfo for the output.
+ /// @return - References to the output TensorInfo.
+ const TensorInfo& GetTensorInfo() const { return m_TensorInfo; }
+
+ /// @brief - Gets the allocated tensor memory.
+ /// @return - Pointer to the tensor memory.
+ ITensorHandle* GetData() const { return m_TensorHandle.get(); }
+
+ /// Fill the outputs for a given queue descriptor.
+ void CollectWorkloadOutputs(WorkloadDataCollector& dataCollector) const;
+
+ void SetData(std::unique_ptr<ITensorHandle> data) { m_TensorHandle = std::move(data); }
+
+ /// @brief Returns true if SetTensorInfo() has been called at least once on this.
+ bool IsTensorInfoSet() const { return m_bTensorInfoSet; }
+private:
+ std::unique_ptr<ITensorHandle> m_TensorHandle;
+ TensorInfo m_TensorInfo;
+ bool m_bTensorInfoSet = false;
+};
+
+} //namespace armnn
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 192817e69d..9b0ce1a345 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -7,7 +7,7 @@
#include <armnn/Version.hpp>
#include <armnn/BackendRegistry.hpp>
-#include <backendsCommon/IBackendContext.hpp>
+#include <armnn/backends/IBackendContext.hpp>
#include <backendsCommon/DynamicBackendUtils.hpp>
#include <ProfilingService.hpp>
diff --git a/src/armnn/Runtime.hpp b/src/armnn/Runtime.hpp
index a028c878a0..e5debbf9ac 100644
--- a/src/armnn/Runtime.hpp
+++ b/src/armnn/Runtime.hpp
@@ -12,7 +12,7 @@
#include <armnn/Tensor.hpp>
#include <armnn/BackendId.hpp>
-#include <backendsCommon/DynamicBackend.hpp>
+#include <armnn/backends/DynamicBackend.hpp>
#include <mutex>
#include <unordered_map>
diff --git a/src/armnn/layers/PreCompiledLayer.cpp b/src/armnn/layers/PreCompiledLayer.cpp
index 963924ded5..bd93743eab 100644
--- a/src/armnn/layers/PreCompiledLayer.cpp
+++ b/src/armnn/layers/PreCompiledLayer.cpp
@@ -7,7 +7,7 @@
#include "LayerCloneBase.hpp"
-#include "backendsCommon/Workload.hpp"
+#include <backendsCommon/Workload.hpp>
#include <armnn/TypesUtils.hpp>
diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp
index 7bd6aac98b..5f78eda408 100644
--- a/src/armnn/test/GraphTests.cpp
+++ b/src/armnn/test/GraphTests.cpp
@@ -4,19 +4,20 @@
//
#include "GraphUtils.hpp"
-#include <boost/test/unit_test.hpp>
-#include <boost/cast.hpp>
+#include <Graph.hpp>
+#include <Layer.hpp>
#include <armnn/ArmNN.hpp>
#include <armnn/TypesUtils.hpp>
#include <armnn/Exceptions.hpp>
-#include <Graph.hpp>
-#include <Layer.hpp>
+
+#include <armnn/backends/IBackendInternal.hpp>
#include <backendsCommon/CpuTensorHandle.hpp>
-#include <backendsCommon/IBackendInternal.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
+#include <boost/cast.hpp>
+#include <boost/test/unit_test.hpp>
/// Checks that first comes before second in the order.
bool CheckOrder(const armnn::Graph& graph, const armnn::Layer* first, const armnn::Layer* second)
diff --git a/src/armnn/test/TensorHandleStrategyTest.cpp b/src/armnn/test/TensorHandleStrategyTest.cpp
index 3c53b13e1a..b84e7ab5f9 100644
--- a/src/armnn/test/TensorHandleStrategyTest.cpp
+++ b/src/armnn/test/TensorHandleStrategyTest.cpp
@@ -6,10 +6,10 @@
#include <armnn/LayerVisitorBase.hpp>
-#include <backendsCommon/IBackendContext.hpp>
-#include <backendsCommon/IBackendInternal.hpp>
-#include <backendsCommon/IMemoryManager.hpp>
-#include <backendsCommon/ITensorHandleFactory.hpp>
+#include <armnn/backends/IBackendContext.hpp>
+#include <armnn/backends/IBackendInternal.hpp>
+#include <armnn/backends/IMemoryManager.hpp>
+#include <armnn/backends/ITensorHandleFactory.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
#include <optimizations/Optimization.hpp>