diff options
author | Matteo Martincigh <matteo.martincigh@arm.com> | 2019-11-28 15:45:42 +0000 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-12-09 12:00:04 +0000 |
commit | e5b8eb9fe8147a0849db08ef0898a0e8bef920b4 (patch) | |
tree | 54f039796753b6a395eb9f76e46e11a9413dabad /src/armnn | |
parent | 3e2969d7195d77796774101580b837681505904a (diff) | |
download | armnn-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.cpp | 2 | ||||
-rw-r--r-- | src/armnn/Graph.cpp | 2 | ||||
-rw-r--r-- | src/armnn/Layer.hpp | 4 | ||||
-rw-r--r-- | src/armnn/LayerSupport.cpp | 2 | ||||
-rw-r--r-- | src/armnn/LoadedNetwork.cpp | 3 | ||||
-rw-r--r-- | src/armnn/LoadedNetwork.hpp | 2 | ||||
-rw-r--r-- | src/armnn/Network.cpp | 2 | ||||
-rw-r--r-- | src/armnn/OutputHandler.cpp | 38 | ||||
-rw-r--r-- | src/armnn/OutputHandler.hpp | 63 | ||||
-rw-r--r-- | src/armnn/Runtime.cpp | 2 | ||||
-rw-r--r-- | src/armnn/Runtime.hpp | 2 | ||||
-rw-r--r-- | src/armnn/layers/PreCompiledLayer.cpp | 2 | ||||
-rw-r--r-- | src/armnn/test/GraphTests.cpp | 11 | ||||
-rw-r--r-- | src/armnn/test/TensorHandleStrategyTest.cpp | 8 |
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> |