From e5b8eb9fe8147a0849db08ef0898a0e8bef920b4 Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Thu, 28 Nov 2019 15:45:42 +0000 Subject: 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 Signed-off-by: Narumol Prangnawarat Change-Id: I3e86d908b021e3561befa9d45158d87d2cbb18c0 --- Android.mk | 1 + CMakeLists.txt | 2 + include/armnn/backends/CMakeLists.txt | 17 +++ include/armnn/backends/CpuTensorHandleFwd.hpp | 17 +++ include/armnn/backends/DynamicBackend.hpp | 54 ++++++++ include/armnn/backends/IBackendContext.hpp | 32 +++++ include/armnn/backends/IBackendInternal.hpp | 138 +++++++++++++++++++++ include/armnn/backends/IMemoryManager.hpp | 26 ++++ include/armnn/backends/ITensorHandle.hpp | 77 ++++++++++++ include/armnn/backends/ITensorHandleFactory.hpp | 72 +++++++++++ include/armnn/backends/OptimizationViews.hpp | 70 +++++++++++ src/armnn/BackendHelper.cpp | 2 +- src/armnn/Graph.cpp | 2 +- src/armnn/Layer.hpp | 4 +- src/armnn/LayerSupport.cpp | 2 +- src/armnn/LoadedNetwork.cpp | 3 +- src/armnn/LoadedNetwork.hpp | 2 +- src/armnn/Network.cpp | 2 +- src/armnn/OutputHandler.cpp | 38 ++++++ src/armnn/OutputHandler.hpp | 63 ++++++++++ src/armnn/Runtime.cpp | 2 +- src/armnn/Runtime.hpp | 2 +- src/armnn/layers/PreCompiledLayer.cpp | 2 +- src/armnn/test/GraphTests.cpp | 11 +- src/armnn/test/TensorHandleStrategyTest.cpp | 8 +- src/armnnUtils/TensorUtils.cpp | 2 +- src/backends/aclCommon/ArmComputeTensorHandle.hpp | 2 + src/backends/aclCommon/BaseMemoryManager.hpp | 2 +- src/backends/aclCommon/test/MemCopyTestImpl.hpp | 2 +- src/backends/backendsCommon/CMakeLists.txt | 13 +- src/backends/backendsCommon/CpuTensorHandle.hpp | 9 +- src/backends/backendsCommon/CpuTensorHandleFwd.hpp | 16 --- src/backends/backendsCommon/DynamicBackend.cpp | 4 +- src/backends/backendsCommon/DynamicBackend.hpp | 54 -------- .../backendsCommon/DynamicBackendUtils.cpp | 2 +- .../backendsCommon/DynamicBackendUtils.hpp | 4 +- src/backends/backendsCommon/IBackendContext.hpp | 32 ----- src/backends/backendsCommon/IBackendInternal.cpp | 2 +- src/backends/backendsCommon/IBackendInternal.hpp | 138 --------------------- src/backends/backendsCommon/IMemoryManager.hpp | 26 ---- src/backends/backendsCommon/ITensorHandle.hpp | 77 ------------ .../backendsCommon/ITensorHandleFactory.cpp | 2 +- .../backendsCommon/ITensorHandleFactory.hpp | 72 ----------- src/backends/backendsCommon/LayerSupportBase.cpp | 4 +- src/backends/backendsCommon/LayerSupportRules.hpp | 5 - src/backends/backendsCommon/MemCopyWorkload.cpp | 7 +- src/backends/backendsCommon/MemCopyWorkload.hpp | 3 +- src/backends/backendsCommon/MemImportWorkload.cpp | 7 +- src/backends/backendsCommon/MemImportWorkload.hpp | 3 +- src/backends/backendsCommon/MemSyncWorkload.cpp | 7 +- src/backends/backendsCommon/MemSyncWorkload.hpp | 3 +- src/backends/backendsCommon/OptimizationViews.cpp | 3 +- src/backends/backendsCommon/OptimizationViews.hpp | 69 ----------- src/backends/backendsCommon/OutputHandler.cpp | 39 ------ src/backends/backendsCommon/OutputHandler.hpp | 63 ---------- .../backendsCommon/TensorHandleFactoryRegistry.cpp | 5 +- .../backendsCommon/TensorHandleFactoryRegistry.hpp | 2 +- src/backends/backendsCommon/WorkloadData.cpp | 6 +- src/backends/backendsCommon/WorkloadData.hpp | 4 +- src/backends/backendsCommon/WorkloadFactory.cpp | 8 +- src/backends/backendsCommon/WorkloadFactory.hpp | 2 +- src/backends/backendsCommon/WorkloadUtils.cpp | 2 +- src/backends/backendsCommon/WorkloadUtils.hpp | 3 +- src/backends/backendsCommon/common.mk | 1 - .../backendsCommon/test/BackendRegistryTests.cpp | 2 +- .../backendsCommon/test/CommonTestUtils.cpp | 2 +- .../backendsCommon/test/DynamicBackendTests.hpp | 9 +- src/backends/backendsCommon/test/MockBackend.cpp | 4 +- src/backends/backendsCommon/test/MockBackend.hpp | 4 +- .../backendsCommon/test/OptimizationViewsTests.cpp | 2 +- .../backendsCommon/test/TensorCopyUtils.hpp | 2 +- .../backendsCommon/test/TestDynamicBackend.cpp | 2 +- .../backendsCommon/test/WorkloadTestUtils.hpp | 4 +- .../backendsCommon/test/layerTests/AbsTestImpl.hpp | 2 +- .../test/layerTests/ActivationTestImpl.hpp | 2 +- .../test/layerTests/AdditionTestImpl.hpp | 2 +- .../test/layerTests/ArgMinMaxTestImpl.hpp | 2 +- .../test/layerTests/BatchNormalizationTestImpl.cpp | 2 +- .../test/layerTests/BatchNormalizationTestImpl.hpp | 2 +- .../test/layerTests/BatchToSpaceNdTestImpl.hpp | 2 +- .../test/layerTests/ComparisonTestImpl.hpp | 2 +- .../test/layerTests/ConcatTestImpl.hpp | 2 +- .../test/layerTests/ConstantTestImpl.hpp | 2 +- .../test/layerTests/Conv2dTestImpl.hpp | 2 +- .../test/layerTests/ConvertFp16ToFp32TestImpl.hpp | 2 +- .../test/layerTests/ConvertFp32ToFp16TestImpl.hpp | 2 +- .../test/layerTests/DebugTestImpl.hpp | 2 +- .../test/layerTests/DepthToSpaceTestImpl.hpp | 2 +- .../test/layerTests/DequantizeTestImpl.hpp | 2 +- .../layerTests/DetectionPostProcessTestImpl.hpp | 2 +- .../test/layerTests/DivisionTestImpl.hpp | 2 +- .../test/layerTests/ElementwiseTestImpl.hpp | 2 +- .../test/layerTests/FakeQuantizationTestImpl.hpp | 2 +- .../test/layerTests/FloorTestImpl.hpp | 2 +- .../test/layerTests/FullyConnectedTestImpl.hpp | 2 +- .../test/layerTests/GatherTestImpl.hpp | 2 +- .../layerTests/InstanceNormalizationTestImpl.cpp | 2 +- .../layerTests/InstanceNormalizationTestImpl.hpp | 2 +- .../test/layerTests/L2NormalizationTestImpl.hpp | 2 +- .../test/layerTests/LogSoftmaxTestImpl.cpp | 2 +- .../test/layerTests/LogSoftmaxTestImpl.hpp | 2 +- .../test/layerTests/LstmTestImpl.hpp | 2 +- .../test/layerTests/MaximumTestImpl.hpp | 2 +- .../test/layerTests/MeanTestImpl.hpp | 2 +- .../test/layerTests/MinimumTestImpl.hpp | 2 +- .../test/layerTests/MultiplicationTestImpl.hpp | 2 +- .../test/layerTests/NormalizationTestImpl.hpp | 2 +- .../backendsCommon/test/layerTests/PadTestImpl.hpp | 2 +- .../test/layerTests/PermuteTestImpl.hpp | 2 +- .../test/layerTests/Pooling2dTestImpl.hpp | 2 +- .../test/layerTests/PreluTestImpl.hpp | 2 +- .../test/layerTests/QuantizeTestImpl.cpp | 2 +- .../test/layerTests/QuantizeTestImpl.hpp | 2 +- .../test/layerTests/ReshapeTestImpl.hpp | 2 +- .../test/layerTests/ResizeTestImpl.hpp | 2 +- .../test/layerTests/RsqrtTestImpl.hpp | 2 +- .../test/layerTests/SliceTestImpl.hpp | 2 +- .../test/layerTests/SoftmaxTestImpl.hpp | 2 +- .../test/layerTests/SpaceToBatchNdTestImpl.hpp | 2 +- .../test/layerTests/SpaceToDepthTestImpl.hpp | 2 +- .../test/layerTests/SplitterTestImpl.hpp | 2 +- .../test/layerTests/StackTestImpl.cpp | 2 +- .../test/layerTests/StackTestImpl.hpp | 2 +- .../test/layerTests/StridedSliceTestImpl.hpp | 2 +- .../test/layerTests/SubtractionTestImpl.hpp | 2 +- .../layerTests/TransposeConvolution2dTestImpl.hpp | 2 +- src/backends/cl/ClBackend.cpp | 4 +- src/backends/cl/ClBackend.hpp | 2 +- src/backends/cl/ClBackendContext.hpp | 2 +- src/backends/cl/ClTensorHandle.hpp | 1 - src/backends/cl/ClTensorHandleFactory.hpp | 4 +- src/backends/cl/ClWorkloadFactory.hpp | 1 - src/backends/cl/test/ClWorkloadFactoryHelper.hpp | 4 +- src/backends/neon/NeonBackend.cpp | 4 +- src/backends/neon/NeonBackend.hpp | 2 +- src/backends/neon/NeonTensorHandle.hpp | 1 - src/backends/neon/NeonTensorHandleFactory.hpp | 2 +- src/backends/neon/NeonWorkloadFactory.hpp | 1 - .../neon/test/NeonWorkloadFactoryHelper.hpp | 4 +- .../neon/workloads/NeonLstmFloatWorkload.cpp | 2 +- src/backends/reference/RefBackend.cpp | 4 +- src/backends/reference/RefBackend.hpp | 2 +- src/backends/reference/RefLayerSupport.cpp | 2 - src/backends/reference/RefMemoryManager.hpp | 2 +- src/backends/reference/RefTensorHandleFactory.hpp | 2 +- src/backends/reference/RefWorkloadFactory.hpp | 1 - src/backends/reference/workloads/Mean.cpp | 2 +- src/backends/reference/workloads/Pad.cpp | 2 +- .../workloads/RefDepthToSpaceWorkload.hpp | 2 +- .../reference/workloads/RefMeanWorkload.hpp | 4 +- .../workloads/RefSpaceToBatchNdWorkload.hpp | 2 +- .../workloads/RefSpaceToDepthWorkload.hpp | 2 +- 152 files changed, 778 insertions(+), 774 deletions(-) create mode 100644 include/armnn/backends/CMakeLists.txt create mode 100644 include/armnn/backends/CpuTensorHandleFwd.hpp create mode 100644 include/armnn/backends/DynamicBackend.hpp create mode 100644 include/armnn/backends/IBackendContext.hpp create mode 100644 include/armnn/backends/IBackendInternal.hpp create mode 100644 include/armnn/backends/IMemoryManager.hpp create mode 100644 include/armnn/backends/ITensorHandle.hpp create mode 100644 include/armnn/backends/ITensorHandleFactory.hpp create mode 100644 include/armnn/backends/OptimizationViews.hpp create mode 100644 src/armnn/OutputHandler.cpp create mode 100644 src/armnn/OutputHandler.hpp delete mode 100644 src/backends/backendsCommon/CpuTensorHandleFwd.hpp delete mode 100644 src/backends/backendsCommon/DynamicBackend.hpp delete mode 100644 src/backends/backendsCommon/IBackendContext.hpp delete mode 100644 src/backends/backendsCommon/IBackendInternal.hpp delete mode 100644 src/backends/backendsCommon/IMemoryManager.hpp delete mode 100644 src/backends/backendsCommon/ITensorHandle.hpp delete mode 100644 src/backends/backendsCommon/ITensorHandleFactory.hpp delete mode 100644 src/backends/backendsCommon/OptimizationViews.hpp delete mode 100644 src/backends/backendsCommon/OutputHandler.cpp delete mode 100644 src/backends/backendsCommon/OutputHandler.hpp diff --git a/Android.mk b/Android.mk index 5439ef3705..a8f96f5b8a 100644 --- a/Android.mk +++ b/Android.mk @@ -95,6 +95,7 @@ LOCAL_SRC_FILES := \ src/armnn/Observable.cpp \ src/armnn/Optimizer.cpp \ src/armnn/optimizations/PermuteAndBatchToSpaceAsDepthToSpace.cpp \ + src/armnn/OutputHandler.cpp \ src/armnn/ProfilingEvent.cpp \ src/armnn/Profiling.cpp \ src/armnn/Runtime.cpp \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 369ffcfe76..3f2099e06c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -394,6 +394,8 @@ list(APPEND armnn_sources src/armnn/Observable.hpp src/armnn/Optimizer.cpp src/armnn/Optimizer.hpp + src/armnn/OutputHandler.cpp + src/armnn/OutputHandler.hpp src/armnn/OverrideInputRangeVisitor.cpp src/armnn/OverrideInputRangeVisitor.hpp src/armnn/Profiling.cpp diff --git a/include/armnn/backends/CMakeLists.txt b/include/armnn/backends/CMakeLists.txt new file mode 100644 index 0000000000..258ea8b9f9 --- /dev/null +++ b/include/armnn/backends/CMakeLists.txt @@ -0,0 +1,17 @@ +# +# Copyright © 2019 Arm Ltd. All rights reserved. +# SPDX-License-Identifier: MIT +# + +list(APPEND armnnBackendsAPI_sources + CpuTensorHandleFwd.hpp + DynamicBackend.hpp + IBackendInternal.hpp + IBackendContext.hpp + ITensorHandleFactory.hpp + IMemoryManager.hpp + ITensorHandle.hpp + OptimizationViews.hpp +) + +add_library(armnnBackendsAPI OBJECT ${armnnBackendsAPI_sources}) diff --git a/include/armnn/backends/CpuTensorHandleFwd.hpp b/include/armnn/backends/CpuTensorHandleFwd.hpp new file mode 100644 index 0000000000..9d5547b9e5 --- /dev/null +++ b/include/armnn/backends/CpuTensorHandleFwd.hpp @@ -0,0 +1,17 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +namespace armnn +{ + +class ConstCpuTensorHandle; +class CpuTensorHandle; +class ScopedCpuTensorHandle; +class PassthroughCpuTensorHandle; +class ConstPassthroughCpuTensorHandle; + +} // namespace armnn diff --git a/include/armnn/backends/DynamicBackend.hpp b/include/armnn/backends/DynamicBackend.hpp new file mode 100644 index 0000000000..f888b1e27e --- /dev/null +++ b/include/armnn/backends/DynamicBackend.hpp @@ -0,0 +1,54 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include "IBackendInternal.hpp" + +#include + +#include +#include + +namespace armnn +{ + +class DynamicBackend final +{ +public: + using HandleCloser = std::function; + using HandlePtr = std::unique_ptr; + + explicit DynamicBackend(const void* sharedObjectHandle); + + /// Public dynamic backend functions + BackendId GetBackendId(); + BackendVersion GetBackendVersion(); + IBackendInternalUniquePtr GetBackend(); + BackendRegistry::FactoryFunction GetFactoryFunction(); + +private: + /// Private utility functions + template + BackendFunctionType SetFunctionPointer(const std::string& backendFunctionName); + IBackendInternalUniquePtr CreateBackend(); + + /// Backend function pointer types + using IdFunctionType = const char*(*)(); + using VersionFunctionType = void(*)(uint32_t*, uint32_t*); + using FactoryFunctionType = void*(*)(); + + /// Backend function pointers + IdFunctionType m_BackendIdFunction; + VersionFunctionType m_BackendVersionFunction; + FactoryFunctionType m_BackendFactoryFunction; + + /// Shared object handle + HandlePtr m_Handle; +}; + +using DynamicBackendPtr = std::unique_ptr; + +} // namespace armnn diff --git a/include/armnn/backends/IBackendContext.hpp b/include/armnn/backends/IBackendContext.hpp new file mode 100644 index 0000000000..de9824956f --- /dev/null +++ b/include/armnn/backends/IBackendContext.hpp @@ -0,0 +1,32 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include +#include + +namespace armnn +{ + +class IBackendContext +{ +protected: + IBackendContext(const IRuntime::CreationOptions&) {} + +public: + // Before and after Load network events + virtual bool BeforeLoadNetwork(NetworkId networkId) = 0; + virtual bool AfterLoadNetwork(NetworkId networkId) = 0; + + // Before and after Unload network events + virtual bool BeforeUnloadNetwork(NetworkId networkId) = 0; + virtual bool AfterUnloadNetwork(NetworkId networkId) = 0; + + virtual ~IBackendContext() {} +}; + +using IBackendContextUniquePtr = std::unique_ptr; + +} // namespace armnn \ No newline at end of file diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp new file mode 100644 index 0000000000..3296d81b7c --- /dev/null +++ b/include/armnn/backends/IBackendInternal.hpp @@ -0,0 +1,138 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include +#include + +#include +#include +#include + +#include "IBackendContext.hpp" +#include "IMemoryManager.hpp" +#include "ITensorHandleFactory.hpp" +#include "OptimizationViews.hpp" + +#include +#include + +namespace armnn +{ +class IWorkloadFactory; +class IMemoryManager; +class ILayerSupport; + +struct BackendVersion +{ + uint32_t m_Major; + uint32_t m_Minor; + + constexpr BackendVersion() + : m_Major(0) + , m_Minor(0) + {} + constexpr BackendVersion(uint32_t major, uint32_t minor) + : m_Major(major) + , m_Minor(minor) + {} + + bool operator==(const BackendVersion& other) const + { + return this == &other || + (this->m_Major == other.m_Major && + this->m_Minor == other.m_Minor); + } + + bool operator<=(const BackendVersion& other) const + { + return this->m_Major < other.m_Major || + (this->m_Major == other.m_Major && + this->m_Minor <= other.m_Minor); + } +}; + +inline std::ostream& operator<<(std::ostream& os, const BackendVersion& backendVersion) +{ + os << "[" << backendVersion.m_Major << "." << backendVersion.m_Minor << "]"; + + return os; +} + +class IBackendInternal : public IBackend +{ +protected: + // Creation must be done through a specific + // backend interface. + IBackendInternal() = default; + +public: + // Allow backends created by the factory function + // to be destroyed through IBackendInternal. + ~IBackendInternal() override = default; + + using IWorkloadFactoryPtr = std::unique_ptr; + using IBackendContextPtr = std::unique_ptr; + using OptimizationPtr = std::unique_ptr; + using Optimizations = std::vector; + using ILayerSupportSharedPtr = std::shared_ptr; + + using IMemoryManagerUniquePtr = std::unique_ptr; + using IMemoryManagerSharedPtr = std::shared_ptr; + + using GraphUniquePtr = std::unique_ptr; + using SubgraphViewUniquePtr = std::unique_ptr; + + ARMNN_NO_DEPRECATE_WARN_BEGIN + using ISubGraphConverterPtr ARMNN_DEPRECATED_MSG("This type is no longer supported") + = std::unique_ptr; + using SubGraphUniquePtr ARMNN_DEPRECATED_MSG("SubGraph is deprecated, use SubgraphView instead") + = std::unique_ptr; + + ARMNN_DEPRECATED_MSG("This method is no longer supported") + virtual ISubGraphConverterPtr CreateSubGraphConverter(const std::shared_ptr& subGraph) const; + + ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead") + virtual Optimizations GetOptimizations() const; + + ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead") + virtual SubGraphUniquePtr OptimizeSubGraph(const SubGraph& subGraph, bool& optimizationAttempted) const; + ARMNN_NO_DEPRECATE_WARN_END + + virtual IMemoryManagerUniquePtr CreateMemoryManager() const; + + virtual IWorkloadFactoryPtr CreateWorkloadFactory( + const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0; + + virtual IWorkloadFactoryPtr CreateWorkloadFactory( + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const; + + virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const; + + virtual ILayerSupportSharedPtr GetLayerSupport() const = 0; + + virtual OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const; + + bool SupportsTensorAllocatorAPI() const; + + ITensorHandleFactory::FactoryId GetBackwardCompatibleFavoriteHandleFactory(); + + /// (Optional) Returns a vector of supported TensorHandleFactory ids in preference order. + virtual std::vector GetHandleFactoryPreferences() const; + + /// (Optional) Register TensorHandleFactories + /// Either this method or CreateMemoryManager() and + /// IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. + virtual void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) {} + + /// Returns the version of the Backend API + static constexpr BackendVersion GetApiVersion() { return BackendVersion(1, 0); } +}; + +using IBackendInternalUniquePtr = std::unique_ptr; + +} // namespace armnn diff --git a/include/armnn/backends/IMemoryManager.hpp b/include/armnn/backends/IMemoryManager.hpp new file mode 100644 index 0000000000..28b81e79ef --- /dev/null +++ b/include/armnn/backends/IMemoryManager.hpp @@ -0,0 +1,26 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include + +namespace armnn +{ + +class IMemoryManager +{ +protected: + IMemoryManager() {} + +public: + virtual void Acquire() = 0; + virtual void Release() = 0; + + virtual ~IMemoryManager() {} +}; + +using IMemoryManagerUniquePtr = std::unique_ptr; + +} // namespace armnn \ No newline at end of file diff --git a/include/armnn/backends/ITensorHandle.hpp b/include/armnn/backends/ITensorHandle.hpp new file mode 100644 index 0000000000..e1b80b874a --- /dev/null +++ b/include/armnn/backends/ITensorHandle.hpp @@ -0,0 +1,77 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// +#pragma once + +#include + +namespace armnn +{ + +class TensorShape; + +class ITensorHandle +{ +public: + virtual ~ITensorHandle(){} + + /// Indicate to the memory manager that this resource is active. + /// This is used to compute overlapping lifetimes of resources. + virtual void Manage() = 0; + + /// Indicate to the memory manager that this resource is no longer active. + /// This is used to compute overlapping lifetimes of resources. + virtual void Allocate() = 0; + + /// Get the parent tensor if this is a subtensor. + /// \return a pointer to the parent tensor. Otherwise nullptr if not a subtensor. + virtual ITensorHandle* GetParent() const = 0; + + /// Map the tensor data for access. + /// \param blocking hint to block the calling thread until all other accesses are complete. (backend dependent) + /// \return pointer to the first element of the mapped data. + virtual const void* Map(bool blocking=true) const = 0; + + /// Unmap the tensor data + virtual void Unmap() const = 0; + + /// Map the tensor data for access. Must be paired with call to Unmap(). + /// \param blocking hint to block the calling thread until all other accesses are complete. (backend dependent) + /// \return pointer to the first element of the mapped data. + void* Map(bool blocking=true) + { + return const_cast(static_cast(this)->Map(blocking)); + } + + /// Unmap the tensor data that was previously mapped with call to Map(). + void Unmap() + { + return static_cast(this)->Unmap(); + } + + /// Get the strides for each dimension ordered from largest to smallest where + /// the smallest value is the same as the size of a single element in the tensor. + /// \return a TensorShape filled with the strides for each dimension + virtual TensorShape GetStrides() const = 0; + + /// Get the number of elements for each dimension ordered from slowest iterating dimension + /// to fastest iterating dimension. + /// \return a TensorShape filled with the number of elements for each dimension. + virtual TensorShape GetShape() const = 0; + + // Testing support to be able to verify and set tensor data content + virtual void CopyOutTo(void* memory) const = 0; + virtual void CopyInFrom(const void* memory) = 0; + + /// Get flags describing supported import sources. + virtual unsigned int GetImportFlags() const { return 0; } + + /// Import externally allocated memory + /// \param memory base address of the memory being imported. + /// \param source source of the allocation for the memory being imported. + /// \return true on success or false on failure + virtual bool Import(void* memory, MemorySource source) { return false; }; +}; + +} diff --git a/include/armnn/backends/ITensorHandleFactory.hpp b/include/armnn/backends/ITensorHandleFactory.hpp new file mode 100644 index 0000000000..2e4742301b --- /dev/null +++ b/include/armnn/backends/ITensorHandleFactory.hpp @@ -0,0 +1,72 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include +#include +#include +#include "ITensorHandle.hpp" + +#include + +namespace armnn +{ + +class ITensorHandleFactory +{ +public: + using FactoryId = std::string; + static const FactoryId LegacyFactoryId; // Use the workload factory to create the tensor handle + static const FactoryId DeferredFactoryId; // Some TensorHandleFactory decisions are deferred to run-time + + virtual ~ITensorHandleFactory() {} + + virtual std::unique_ptr CreateSubTensorHandle(ITensorHandle& parent, + TensorShape const& subTensorShape, + unsigned int const* subTensorOrigin) const = 0; + + virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo) const = 0; + + virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, + DataLayout dataLayout) const = 0; + + // Utility Functions for backends which require TensorHandles to have unmanaged memory. + // These should be overloaded if required to facilitate direct import of input tensors + // and direct export of output tensors. + virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, + const bool IsMemoryManaged) const + { + boost::ignore_unused(IsMemoryManaged); + return CreateTensorHandle(tensorInfo); + } + + virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, + DataLayout dataLayout, + const bool IsMemoryManaged) const + { + boost::ignore_unused(IsMemoryManaged); + return CreateTensorHandle(tensorInfo, dataLayout); + } + + virtual const FactoryId& GetId() const = 0; + + virtual bool SupportsSubTensors() const = 0; + + virtual bool SupportsMapUnmap() const final { return true; } + + virtual MemorySourceFlags GetExportFlags() const { return 0; } + virtual MemorySourceFlags GetImportFlags() const { return 0; } +}; + +enum class EdgeStrategy +{ + Undefined, /// No strategy has been defined. Used internally to verify integrity of optimizations. + DirectCompatibility, /// Destination backend can work directly with tensors on source backend. + ExportToTarget, /// Source backends tensor data can be exported to destination backend tensor without copy. + CopyToTarget /// Copy contents from source backend tensor to destination backend tensor. +}; + +} //namespace armnn diff --git a/include/armnn/backends/OptimizationViews.hpp b/include/armnn/backends/OptimizationViews.hpp new file mode 100644 index 0000000000..c357c0c8bb --- /dev/null +++ b/include/armnn/backends/OptimizationViews.hpp @@ -0,0 +1,70 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#pragma once + +#include + +namespace armnn +{ + +class OptimizationViews +{ +public: + OptimizationViews() = default; + OptimizationViews(const OptimizationViews&) = delete; + OptimizationViews& operator=(const OptimizationViews&) = delete; + OptimizationViews(OptimizationViews&&) = default; + OptimizationViews& operator=(OptimizationViews&&) = default; + + struct SubstitutionPair + { + /// Subgraph of Layers from the original graph which should be replaced + SubgraphView m_SubstitutableSubgraph; + + /// A subgraph of new layers which will replace layers in m_SubstitutableSubgraph + SubgraphView m_ReplacementSubgraph; + }; + + using Subgraphs = std::vector; + using Substitutions = std::vector; + + void AddSubstitution(SubstitutionPair&& substitution) + { + m_SuccesfulOptimizations.emplace_back(substitution); + } + + void AddFailedSubgraph(SubgraphView&& subgraph) + { + m_FailedOptimizations.emplace_back(subgraph); + } + + void AddUntouchedSubgraph(SubgraphView&& subgraph) + { + m_UntouchedSubgraphs.emplace_back(subgraph); + } + + const Substitutions& GetSubstitutions() const { return m_SuccesfulOptimizations; } + const Subgraphs& GetFailedSubgraphs() const { return m_FailedOptimizations; } + const Subgraphs& GetUntouchedSubgraphs() const { return m_UntouchedSubgraphs; } + + Substitutions& GetSubstitutions() { return m_SuccesfulOptimizations; } + Subgraphs& GetFailedSubgraphs() { return m_FailedOptimizations; } + Subgraphs& GetUntouchedSubgraphs() { return m_UntouchedSubgraphs; } + + bool Validate(const SubgraphView& originalSubgraph) const; + + Graph& GetGraph() { return m_Graph; } + +private: + Substitutions m_SuccesfulOptimizations; ///< Proposed substitutions from successful optimizations + Subgraphs m_FailedOptimizations; ///< Subgraphs from the original subgraph which cannot be supported + Subgraphs m_UntouchedSubgraphs; ///< Subgraphs from the original subgraph which remain unmodified + + /// Graph object used only as a container for any layer generated by the optimization process + Graph m_Graph; +}; + +} //namespace armnn 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 #include -#include +#include 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 +#include #include #include 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 -#include +#include +#include #include #include #include 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 #include -#include +#include #include 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 #include -#include +#include #include #include + #include #include 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 +#include #include #include #include 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 #include -#include +#include #include #include 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 +#include +#include + +#include + +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 +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +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 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 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 #include -#include +#include #include #include 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 #include -#include +#include #include #include 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 #include 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 -#include +#include +#include #include #include #include -#include -#include + +#include #include -#include #include +#include +#include /// 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 -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/src/armnnUtils/TensorUtils.cpp b/src/armnnUtils/TensorUtils.cpp index c1d1200938..84fc8db053 100644 --- a/src/armnnUtils/TensorUtils.cpp +++ b/src/armnnUtils/TensorUtils.cpp @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/src/backends/aclCommon/ArmComputeTensorHandle.hpp b/src/backends/aclCommon/ArmComputeTensorHandle.hpp index 30710baf1c..ae7df2ec95 100644 --- a/src/backends/aclCommon/ArmComputeTensorHandle.hpp +++ b/src/backends/aclCommon/ArmComputeTensorHandle.hpp @@ -5,6 +5,8 @@ #pragma once +#include + #include #include diff --git a/src/backends/aclCommon/BaseMemoryManager.hpp b/src/backends/aclCommon/BaseMemoryManager.hpp index adef8bc713..9d2dbf7838 100644 --- a/src/backends/aclCommon/BaseMemoryManager.hpp +++ b/src/backends/aclCommon/BaseMemoryManager.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include #include #if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) diff --git a/src/backends/aclCommon/test/MemCopyTestImpl.hpp b/src/backends/aclCommon/test/MemCopyTestImpl.hpp index 0607bbde98..570c6027f3 100644 --- a/src/backends/aclCommon/test/MemCopyTestImpl.hpp +++ b/src/backends/aclCommon/test/MemCopyTestImpl.hpp @@ -6,7 +6,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt index 93f7545f91..3eaae070b4 100644 --- a/src/backends/backendsCommon/CMakeLists.txt +++ b/src/backends/backendsCommon/CMakeLists.txt @@ -5,22 +5,15 @@ list(APPEND armnnBackendsCommon_sources CpuTensorHandle.cpp - CpuTensorHandleFwd.hpp CpuTensorHandle.hpp DynamicBackend.cpp - DynamicBackend.hpp DynamicBackendUtils.cpp DynamicBackendUtils.hpp IBackendInternal.cpp - IBackendInternal.hpp - IBackendContext.hpp ITensorHandleFactory.cpp - ITensorHandleFactory.hpp LayerSupportBase.cpp LayerSupportBase.hpp LayerSupportRules.hpp - IMemoryManager.hpp - ITensorHandle.hpp MakeWorkloadHelper.hpp MemCopyWorkload.cpp MemCopyWorkload.hpp @@ -29,18 +22,15 @@ list(APPEND armnnBackendsCommon_sources MemSyncWorkload.cpp MemSyncWorkload.hpp OptimizationViews.cpp - OptimizationViews.hpp - OutputHandler.cpp - OutputHandler.hpp TensorHandleFactoryRegistry.cpp TensorHandleFactoryRegistry.hpp WorkloadDataCollector.hpp + Workload.hpp WorkloadData.cpp WorkloadData.hpp WorkloadFactory.cpp WorkloadFactory.hpp WorkloadFactoryBase.hpp - Workload.hpp WorkloadInfo.hpp WorkloadUtils.cpp WorkloadUtils.hpp @@ -51,6 +41,7 @@ if(BUILD_UNIT_TESTS) endif() add_library(armnnBackendsCommon OBJECT ${armnnBackendsCommon_sources}) +target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/include/armnn/backends) target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn) target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils) target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/src/backends) diff --git a/src/backends/backendsCommon/CpuTensorHandle.hpp b/src/backends/backendsCommon/CpuTensorHandle.hpp index 5fefc125c1..e6e59fcd4f 100644 --- a/src/backends/backendsCommon/CpuTensorHandle.hpp +++ b/src/backends/backendsCommon/CpuTensorHandle.hpp @@ -2,17 +2,20 @@ // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // + #pragma once -#include "CpuTensorHandleFwd.hpp" -#include "CompatibleTypes.hpp" +#include +#include #include -#include +#include #include +#include + namespace armnn { diff --git a/src/backends/backendsCommon/CpuTensorHandleFwd.hpp b/src/backends/backendsCommon/CpuTensorHandleFwd.hpp deleted file mode 100644 index d439d0bbe6..0000000000 --- a/src/backends/backendsCommon/CpuTensorHandleFwd.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -namespace armnn -{ - -class ConstCpuTensorHandle; -class CpuTensorHandle; -class ScopedCpuTensorHandle; -class PassthroughCpuTensorHandle; -class ConstPassthroughCpuTensorHandle; - -} // namespace armnn diff --git a/src/backends/backendsCommon/DynamicBackend.cpp b/src/backends/backendsCommon/DynamicBackend.cpp index c576199e1f..8af61c050c 100644 --- a/src/backends/backendsCommon/DynamicBackend.cpp +++ b/src/backends/backendsCommon/DynamicBackend.cpp @@ -3,8 +3,8 @@ // SPDX-License-Identifier: MIT // -#include "DynamicBackend.hpp" -#include "DynamicBackendUtils.hpp" +#include +#include namespace armnn { diff --git a/src/backends/backendsCommon/DynamicBackend.hpp b/src/backends/backendsCommon/DynamicBackend.hpp deleted file mode 100644 index f888b1e27e..0000000000 --- a/src/backends/backendsCommon/DynamicBackend.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include "IBackendInternal.hpp" - -#include - -#include -#include - -namespace armnn -{ - -class DynamicBackend final -{ -public: - using HandleCloser = std::function; - using HandlePtr = std::unique_ptr; - - explicit DynamicBackend(const void* sharedObjectHandle); - - /// Public dynamic backend functions - BackendId GetBackendId(); - BackendVersion GetBackendVersion(); - IBackendInternalUniquePtr GetBackend(); - BackendRegistry::FactoryFunction GetFactoryFunction(); - -private: - /// Private utility functions - template - BackendFunctionType SetFunctionPointer(const std::string& backendFunctionName); - IBackendInternalUniquePtr CreateBackend(); - - /// Backend function pointer types - using IdFunctionType = const char*(*)(); - using VersionFunctionType = void(*)(uint32_t*, uint32_t*); - using FactoryFunctionType = void*(*)(); - - /// Backend function pointers - IdFunctionType m_BackendIdFunction; - VersionFunctionType m_BackendVersionFunction; - FactoryFunctionType m_BackendFactoryFunction; - - /// Shared object handle - HandlePtr m_Handle; -}; - -using DynamicBackendPtr = std::unique_ptr; - -} // namespace armnn diff --git a/src/backends/backendsCommon/DynamicBackendUtils.cpp b/src/backends/backendsCommon/DynamicBackendUtils.cpp index b31ce60564..ab0006d739 100644 --- a/src/backends/backendsCommon/DynamicBackendUtils.cpp +++ b/src/backends/backendsCommon/DynamicBackendUtils.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "DynamicBackendUtils.hpp" +#include #include #include diff --git a/src/backends/backendsCommon/DynamicBackendUtils.hpp b/src/backends/backendsCommon/DynamicBackendUtils.hpp index 6d9f11d215..2763b9d7d2 100644 --- a/src/backends/backendsCommon/DynamicBackendUtils.hpp +++ b/src/backends/backendsCommon/DynamicBackendUtils.hpp @@ -5,8 +5,8 @@ #pragma once -#include "IBackendInternal.hpp" -#include "DynamicBackend.hpp" +#include +#include #include diff --git a/src/backends/backendsCommon/IBackendContext.hpp b/src/backends/backendsCommon/IBackendContext.hpp deleted file mode 100644 index de9824956f..0000000000 --- a/src/backends/backendsCommon/IBackendContext.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -#include -#include - -namespace armnn -{ - -class IBackendContext -{ -protected: - IBackendContext(const IRuntime::CreationOptions&) {} - -public: - // Before and after Load network events - virtual bool BeforeLoadNetwork(NetworkId networkId) = 0; - virtual bool AfterLoadNetwork(NetworkId networkId) = 0; - - // Before and after Unload network events - virtual bool BeforeUnloadNetwork(NetworkId networkId) = 0; - virtual bool AfterUnloadNetwork(NetworkId networkId) = 0; - - virtual ~IBackendContext() {} -}; - -using IBackendContextUniquePtr = std::unique_ptr; - -} // namespace armnn \ No newline at end of file diff --git a/src/backends/backendsCommon/IBackendInternal.cpp b/src/backends/backendsCommon/IBackendInternal.cpp index 01755c4b92..d1422d1c22 100644 --- a/src/backends/backendsCommon/IBackendInternal.cpp +++ b/src/backends/backendsCommon/IBackendInternal.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "IBackendInternal.hpp" +#include namespace armnn { diff --git a/src/backends/backendsCommon/IBackendInternal.hpp b/src/backends/backendsCommon/IBackendInternal.hpp deleted file mode 100644 index 3296d81b7c..0000000000 --- a/src/backends/backendsCommon/IBackendInternal.hpp +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include -#include -#include - -#include -#include -#include - -#include "IBackendContext.hpp" -#include "IMemoryManager.hpp" -#include "ITensorHandleFactory.hpp" -#include "OptimizationViews.hpp" - -#include -#include - -namespace armnn -{ -class IWorkloadFactory; -class IMemoryManager; -class ILayerSupport; - -struct BackendVersion -{ - uint32_t m_Major; - uint32_t m_Minor; - - constexpr BackendVersion() - : m_Major(0) - , m_Minor(0) - {} - constexpr BackendVersion(uint32_t major, uint32_t minor) - : m_Major(major) - , m_Minor(minor) - {} - - bool operator==(const BackendVersion& other) const - { - return this == &other || - (this->m_Major == other.m_Major && - this->m_Minor == other.m_Minor); - } - - bool operator<=(const BackendVersion& other) const - { - return this->m_Major < other.m_Major || - (this->m_Major == other.m_Major && - this->m_Minor <= other.m_Minor); - } -}; - -inline std::ostream& operator<<(std::ostream& os, const BackendVersion& backendVersion) -{ - os << "[" << backendVersion.m_Major << "." << backendVersion.m_Minor << "]"; - - return os; -} - -class IBackendInternal : public IBackend -{ -protected: - // Creation must be done through a specific - // backend interface. - IBackendInternal() = default; - -public: - // Allow backends created by the factory function - // to be destroyed through IBackendInternal. - ~IBackendInternal() override = default; - - using IWorkloadFactoryPtr = std::unique_ptr; - using IBackendContextPtr = std::unique_ptr; - using OptimizationPtr = std::unique_ptr; - using Optimizations = std::vector; - using ILayerSupportSharedPtr = std::shared_ptr; - - using IMemoryManagerUniquePtr = std::unique_ptr; - using IMemoryManagerSharedPtr = std::shared_ptr; - - using GraphUniquePtr = std::unique_ptr; - using SubgraphViewUniquePtr = std::unique_ptr; - - ARMNN_NO_DEPRECATE_WARN_BEGIN - using ISubGraphConverterPtr ARMNN_DEPRECATED_MSG("This type is no longer supported") - = std::unique_ptr; - using SubGraphUniquePtr ARMNN_DEPRECATED_MSG("SubGraph is deprecated, use SubgraphView instead") - = std::unique_ptr; - - ARMNN_DEPRECATED_MSG("This method is no longer supported") - virtual ISubGraphConverterPtr CreateSubGraphConverter(const std::shared_ptr& subGraph) const; - - ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead") - virtual Optimizations GetOptimizations() const; - - ARMNN_DEPRECATED_MSG("Use \"OptimizationViews OptimizeSubgraphView(const SubgraphView&)\" instead") - virtual SubGraphUniquePtr OptimizeSubGraph(const SubGraph& subGraph, bool& optimizationAttempted) const; - ARMNN_NO_DEPRECATE_WARN_END - - virtual IMemoryManagerUniquePtr CreateMemoryManager() const; - - virtual IWorkloadFactoryPtr CreateWorkloadFactory( - const IMemoryManagerSharedPtr& memoryManager = nullptr) const = 0; - - virtual IWorkloadFactoryPtr CreateWorkloadFactory( - class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const; - - virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const; - - virtual ILayerSupportSharedPtr GetLayerSupport() const = 0; - - virtual OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const; - - bool SupportsTensorAllocatorAPI() const; - - ITensorHandleFactory::FactoryId GetBackwardCompatibleFavoriteHandleFactory(); - - /// (Optional) Returns a vector of supported TensorHandleFactory ids in preference order. - virtual std::vector GetHandleFactoryPreferences() const; - - /// (Optional) Register TensorHandleFactories - /// Either this method or CreateMemoryManager() and - /// IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. - virtual void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) {} - - /// Returns the version of the Backend API - static constexpr BackendVersion GetApiVersion() { return BackendVersion(1, 0); } -}; - -using IBackendInternalUniquePtr = std::unique_ptr; - -} // namespace armnn diff --git a/src/backends/backendsCommon/IMemoryManager.hpp b/src/backends/backendsCommon/IMemoryManager.hpp deleted file mode 100644 index 28b81e79ef..0000000000 --- a/src/backends/backendsCommon/IMemoryManager.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -#include - -namespace armnn -{ - -class IMemoryManager -{ -protected: - IMemoryManager() {} - -public: - virtual void Acquire() = 0; - virtual void Release() = 0; - - virtual ~IMemoryManager() {} -}; - -using IMemoryManagerUniquePtr = std::unique_ptr; - -} // namespace armnn \ No newline at end of file diff --git a/src/backends/backendsCommon/ITensorHandle.hpp b/src/backends/backendsCommon/ITensorHandle.hpp deleted file mode 100644 index e1b80b874a..0000000000 --- a/src/backends/backendsCommon/ITensorHandle.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -#include - -namespace armnn -{ - -class TensorShape; - -class ITensorHandle -{ -public: - virtual ~ITensorHandle(){} - - /// Indicate to the memory manager that this resource is active. - /// This is used to compute overlapping lifetimes of resources. - virtual void Manage() = 0; - - /// Indicate to the memory manager that this resource is no longer active. - /// This is used to compute overlapping lifetimes of resources. - virtual void Allocate() = 0; - - /// Get the parent tensor if this is a subtensor. - /// \return a pointer to the parent tensor. Otherwise nullptr if not a subtensor. - virtual ITensorHandle* GetParent() const = 0; - - /// Map the tensor data for access. - /// \param blocking hint to block the calling thread until all other accesses are complete. (backend dependent) - /// \return pointer to the first element of the mapped data. - virtual const void* Map(bool blocking=true) const = 0; - - /// Unmap the tensor data - virtual void Unmap() const = 0; - - /// Map the tensor data for access. Must be paired with call to Unmap(). - /// \param blocking hint to block the calling thread until all other accesses are complete. (backend dependent) - /// \return pointer to the first element of the mapped data. - void* Map(bool blocking=true) - { - return const_cast(static_cast(this)->Map(blocking)); - } - - /// Unmap the tensor data that was previously mapped with call to Map(). - void Unmap() - { - return static_cast(this)->Unmap(); - } - - /// Get the strides for each dimension ordered from largest to smallest where - /// the smallest value is the same as the size of a single element in the tensor. - /// \return a TensorShape filled with the strides for each dimension - virtual TensorShape GetStrides() const = 0; - - /// Get the number of elements for each dimension ordered from slowest iterating dimension - /// to fastest iterating dimension. - /// \return a TensorShape filled with the number of elements for each dimension. - virtual TensorShape GetShape() const = 0; - - // Testing support to be able to verify and set tensor data content - virtual void CopyOutTo(void* memory) const = 0; - virtual void CopyInFrom(const void* memory) = 0; - - /// Get flags describing supported import sources. - virtual unsigned int GetImportFlags() const { return 0; } - - /// Import externally allocated memory - /// \param memory base address of the memory being imported. - /// \param source source of the allocation for the memory being imported. - /// \return true on success or false on failure - virtual bool Import(void* memory, MemorySource source) { return false; }; -}; - -} diff --git a/src/backends/backendsCommon/ITensorHandleFactory.cpp b/src/backends/backendsCommon/ITensorHandleFactory.cpp index 91f5692723..57fdcbaceb 100644 --- a/src/backends/backendsCommon/ITensorHandleFactory.cpp +++ b/src/backends/backendsCommon/ITensorHandleFactory.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "ITensorHandleFactory.hpp" +#include namespace armnn { diff --git a/src/backends/backendsCommon/ITensorHandleFactory.hpp b/src/backends/backendsCommon/ITensorHandleFactory.hpp deleted file mode 100644 index 2e4742301b..0000000000 --- a/src/backends/backendsCommon/ITensorHandleFactory.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once - -#include -#include -#include -#include "ITensorHandle.hpp" - -#include - -namespace armnn -{ - -class ITensorHandleFactory -{ -public: - using FactoryId = std::string; - static const FactoryId LegacyFactoryId; // Use the workload factory to create the tensor handle - static const FactoryId DeferredFactoryId; // Some TensorHandleFactory decisions are deferred to run-time - - virtual ~ITensorHandleFactory() {} - - virtual std::unique_ptr CreateSubTensorHandle(ITensorHandle& parent, - TensorShape const& subTensorShape, - unsigned int const* subTensorOrigin) const = 0; - - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo) const = 0; - - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout) const = 0; - - // Utility Functions for backends which require TensorHandles to have unmanaged memory. - // These should be overloaded if required to facilitate direct import of input tensors - // and direct export of output tensors. - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, - const bool IsMemoryManaged) const - { - boost::ignore_unused(IsMemoryManaged); - return CreateTensorHandle(tensorInfo); - } - - virtual std::unique_ptr CreateTensorHandle(const TensorInfo& tensorInfo, - DataLayout dataLayout, - const bool IsMemoryManaged) const - { - boost::ignore_unused(IsMemoryManaged); - return CreateTensorHandle(tensorInfo, dataLayout); - } - - virtual const FactoryId& GetId() const = 0; - - virtual bool SupportsSubTensors() const = 0; - - virtual bool SupportsMapUnmap() const final { return true; } - - virtual MemorySourceFlags GetExportFlags() const { return 0; } - virtual MemorySourceFlags GetImportFlags() const { return 0; } -}; - -enum class EdgeStrategy -{ - Undefined, /// No strategy has been defined. Used internally to verify integrity of optimizations. - DirectCompatibility, /// Destination backend can work directly with tensors on source backend. - ExportToTarget, /// Source backends tensor data can be exported to destination backend tensor without copy. - CopyToTarget /// Copy contents from source backend tensor to destination backend tensor. -}; - -} //namespace armnn diff --git a/src/backends/backendsCommon/LayerSupportBase.cpp b/src/backends/backendsCommon/LayerSupportBase.cpp index 9ffad7b8e2..55261b83cf 100644 --- a/src/backends/backendsCommon/LayerSupportBase.cpp +++ b/src/backends/backendsCommon/LayerSupportBase.cpp @@ -3,10 +3,10 @@ // SPDX-License-Identifier: MIT // -#include "LayerSupportBase.hpp" - #include +#include + #include namespace diff --git a/src/backends/backendsCommon/LayerSupportRules.hpp b/src/backends/backendsCommon/LayerSupportRules.hpp index db3f38ccbb..bf997dbff7 100644 --- a/src/backends/backendsCommon/LayerSupportRules.hpp +++ b/src/backends/backendsCommon/LayerSupportRules.hpp @@ -11,9 +11,6 @@ namespace armnn { -namespace -{ - inline armnn::Optional GetBiasTypeFromWeightsType(armnn::Optional weightsType) { if (!weightsType) @@ -36,8 +33,6 @@ inline armnn::Optional GetBiasTypeFromWeightsType(armnn::Option return armnn::EmptyOptional(); } -} //namespace - template bool CheckSupportRule(F rule, Optional reasonIfUnsupported, const char* reason) { diff --git a/src/backends/backendsCommon/MemCopyWorkload.cpp b/src/backends/backendsCommon/MemCopyWorkload.cpp index c4e6f52eec..572c0fcc57 100644 --- a/src/backends/backendsCommon/MemCopyWorkload.cpp +++ b/src/backends/backendsCommon/MemCopyWorkload.cpp @@ -3,12 +3,11 @@ // SPDX-License-Identifier: MIT // -#include "MemCopyWorkload.hpp" - -#include "CpuTensorHandle.hpp" - #include +#include +#include + #include #include diff --git a/src/backends/backendsCommon/MemCopyWorkload.hpp b/src/backends/backendsCommon/MemCopyWorkload.hpp index bcbba168df..e7a20bf2d2 100644 --- a/src/backends/backendsCommon/MemCopyWorkload.hpp +++ b/src/backends/backendsCommon/MemCopyWorkload.hpp @@ -4,10 +4,11 @@ // #pragma once -#include "CpuTensorHandleFwd.hpp" #include "Workload.hpp" #include "WorkloadUtils.hpp" +#include + #include namespace armnn diff --git a/src/backends/backendsCommon/MemImportWorkload.cpp b/src/backends/backendsCommon/MemImportWorkload.cpp index ed00241bb6..c05942894b 100644 --- a/src/backends/backendsCommon/MemImportWorkload.cpp +++ b/src/backends/backendsCommon/MemImportWorkload.cpp @@ -3,12 +3,11 @@ // SPDX-License-Identifier: MIT // -#include "MemImportWorkload.hpp" - -#include "CpuTensorHandle.hpp" - #include +#include +#include + #include #include diff --git a/src/backends/backendsCommon/MemImportWorkload.hpp b/src/backends/backendsCommon/MemImportWorkload.hpp index e16b99e9e0..7a49739d8f 100644 --- a/src/backends/backendsCommon/MemImportWorkload.hpp +++ b/src/backends/backendsCommon/MemImportWorkload.hpp @@ -4,10 +4,11 @@ // #pragma once -#include "CpuTensorHandleFwd.hpp" #include "Workload.hpp" #include "WorkloadUtils.hpp" +#include + #include namespace armnn diff --git a/src/backends/backendsCommon/MemSyncWorkload.cpp b/src/backends/backendsCommon/MemSyncWorkload.cpp index a1d309cefb..1c850db7a1 100644 --- a/src/backends/backendsCommon/MemSyncWorkload.cpp +++ b/src/backends/backendsCommon/MemSyncWorkload.cpp @@ -3,12 +3,11 @@ // SPDX-License-Identifier: MIT // -#include "MemSyncWorkload.hpp" - -#include "CpuTensorHandle.hpp" - #include +#include +#include + #include #include diff --git a/src/backends/backendsCommon/MemSyncWorkload.hpp b/src/backends/backendsCommon/MemSyncWorkload.hpp index 3a167d2a00..4b9140f857 100644 --- a/src/backends/backendsCommon/MemSyncWorkload.hpp +++ b/src/backends/backendsCommon/MemSyncWorkload.hpp @@ -4,10 +4,11 @@ // #pragma once -#include "CpuTensorHandleFwd.hpp" #include "Workload.hpp" #include "WorkloadUtils.hpp" +#include + #include namespace armnn diff --git a/src/backends/backendsCommon/OptimizationViews.cpp b/src/backends/backendsCommon/OptimizationViews.cpp index 1190eea57d..eee2c67ea9 100644 --- a/src/backends/backendsCommon/OptimizationViews.cpp +++ b/src/backends/backendsCommon/OptimizationViews.cpp @@ -3,8 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "OptimizationViews.hpp" - +#include namespace armnn { diff --git a/src/backends/backendsCommon/OptimizationViews.hpp b/src/backends/backendsCommon/OptimizationViews.hpp deleted file mode 100644 index a63fdf1ffb..0000000000 --- a/src/backends/backendsCommon/OptimizationViews.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#pragma once -#include - -namespace armnn -{ - -class OptimizationViews -{ -public: - OptimizationViews() = default; - OptimizationViews(const OptimizationViews&) = delete; - OptimizationViews& operator=(const OptimizationViews&) = delete; - OptimizationViews(OptimizationViews&&) = default; - OptimizationViews& operator=(OptimizationViews&&) = default; - - struct SubstitutionPair - { - /// Subgraph of Layers from the original graph which should be replaced - SubgraphView m_SubstitutableSubgraph; - - /// A subgraph of new layers which will replace layers in m_SubstitutableSubgraph - SubgraphView m_ReplacementSubgraph; - }; - - using Subgraphs = std::vector; - using Substitutions = std::vector; - - void AddSubstitution(SubstitutionPair&& substitution) - { - m_SuccesfulOptimizations.emplace_back(substitution); - } - - void AddFailedSubgraph(SubgraphView&& subgraph) - { - m_FailedOptimizations.emplace_back(subgraph); - } - - void AddUntouchedSubgraph(SubgraphView&& subgraph) - { - m_UntouchedSubgraphs.emplace_back(subgraph); - } - - const Substitutions& GetSubstitutions() const { return m_SuccesfulOptimizations; } - const Subgraphs& GetFailedSubgraphs() const { return m_FailedOptimizations; } - const Subgraphs& GetUntouchedSubgraphs() const { return m_UntouchedSubgraphs; } - - Substitutions& GetSubstitutions() { return m_SuccesfulOptimizations; } - Subgraphs& GetFailedSubgraphs() { return m_FailedOptimizations; } - Subgraphs& GetUntouchedSubgraphs() { return m_UntouchedSubgraphs; } - - bool Validate(const SubgraphView& originalSubgraph) const; - - Graph& GetGraph() { return m_Graph; } - -private: - Substitutions m_SuccesfulOptimizations; ///< Proposed substitutions from successful optimizations - Subgraphs m_FailedOptimizations; ///< Subgraphs from the original subgraph which cannot be supported - Subgraphs m_UntouchedSubgraphs; ///< Subgraphs from the original subgraph which remain unmodified - - /// Graph object used only as a container for any layer generated by the optimization process - Graph m_Graph; -}; - -} //namespace armnn diff --git a/src/backends/backendsCommon/OutputHandler.cpp b/src/backends/backendsCommon/OutputHandler.cpp deleted file mode 100644 index e3655b08fa..0000000000 --- a/src/backends/backendsCommon/OutputHandler.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// - -#include "OutputHandler.hpp" - -#include "ITensorHandle.hpp" -#include "WorkloadDataCollector.hpp" - -#include - -#include - -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/backends/backendsCommon/OutputHandler.hpp b/src/backends/backendsCommon/OutputHandler.hpp deleted file mode 100644 index 81768c6f5e..0000000000 --- a/src/backends/backendsCommon/OutputHandler.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#pragma once - -#include "ITensorHandle.hpp" -#include "ITensorHandleFactory.hpp" - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -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 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 m_TensorHandle; - TensorInfo m_TensorInfo; - bool m_bTensorInfoSet = false; -}; - -} //namespace armnn diff --git a/src/backends/backendsCommon/TensorHandleFactoryRegistry.cpp b/src/backends/backendsCommon/TensorHandleFactoryRegistry.cpp index 4692b9f960..0670461b54 100644 --- a/src/backends/backendsCommon/TensorHandleFactoryRegistry.cpp +++ b/src/backends/backendsCommon/TensorHandleFactoryRegistry.cpp @@ -3,9 +3,8 @@ // SPDX-License-Identifier: MIT // -#include "TensorHandleFactoryRegistry.hpp" -#include "IMemoryManager.hpp" - +#include +#include namespace armnn { diff --git a/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp b/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp index 9e02985301..f926478432 100644 --- a/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp +++ b/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp @@ -5,7 +5,7 @@ #pragma once -#include "ITensorHandleFactory.hpp" +#include #include #include diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 251d3b96b8..56dff9be41 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -3,10 +3,8 @@ // SPDX-License-Identifier: MIT // -#include "WorkloadData.hpp" - -#include "CpuTensorHandle.hpp" - +#include +#include #include #include diff --git a/src/backends/backendsCommon/WorkloadData.hpp b/src/backends/backendsCommon/WorkloadData.hpp index 6a96a4ad7f..43be3cd6e1 100644 --- a/src/backends/backendsCommon/WorkloadData.hpp +++ b/src/backends/backendsCommon/WorkloadData.hpp @@ -4,7 +4,8 @@ // #pragma once -#include "CpuTensorHandleFwd.hpp" +#include +#include #include @@ -14,7 +15,6 @@ #include #include -#include #include namespace armnn diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp index 9901dcb7c1..1d4ed7e159 100644 --- a/src/backends/backendsCommon/WorkloadFactory.cpp +++ b/src/backends/backendsCommon/WorkloadFactory.cpp @@ -3,9 +3,6 @@ // SPDX-License-Identifier: MIT // -#include "CpuTensorHandle.hpp" -#include "WorkloadFactory.hpp" - #include #include @@ -15,7 +12,10 @@ #include #include -#include +#include +#include +#include + #include #include diff --git a/src/backends/backendsCommon/WorkloadFactory.hpp b/src/backends/backendsCommon/WorkloadFactory.hpp index 819b8c768b..6e6478fd6a 100644 --- a/src/backends/backendsCommon/WorkloadFactory.hpp +++ b/src/backends/backendsCommon/WorkloadFactory.hpp @@ -6,8 +6,8 @@ #include #include +#include -#include #include #include diff --git a/src/backends/backendsCommon/WorkloadUtils.cpp b/src/backends/backendsCommon/WorkloadUtils.cpp index 73946c6db7..0cf8ad1a94 100644 --- a/src/backends/backendsCommon/WorkloadUtils.cpp +++ b/src/backends/backendsCommon/WorkloadUtils.cpp @@ -3,7 +3,7 @@ // SPDX-License-Identifier: MIT // -#include "WorkloadUtils.hpp" +#include namespace armnn { diff --git a/src/backends/backendsCommon/WorkloadUtils.hpp b/src/backends/backendsCommon/WorkloadUtils.hpp index 6fe87071ac..92ef2d224f 100644 --- a/src/backends/backendsCommon/WorkloadUtils.hpp +++ b/src/backends/backendsCommon/WorkloadUtils.hpp @@ -6,7 +6,8 @@ #pragma once #include "CpuTensorHandle.hpp" -#include "ITensorHandle.hpp" + +#include #include diff --git a/src/backends/backendsCommon/common.mk b/src/backends/backendsCommon/common.mk index 5fc24c3ff5..4461cd68b1 100644 --- a/src/backends/backendsCommon/common.mk +++ b/src/backends/backendsCommon/common.mk @@ -18,7 +18,6 @@ COMMON_SOURCES := \ MemImportWorkload.cpp \ MemSyncWorkload.cpp \ OptimizationViews.cpp \ - OutputHandler.cpp \ TensorHandleFactoryRegistry.cpp \ WorkloadData.cpp \ WorkloadFactory.cpp \ diff --git a/src/backends/backendsCommon/test/BackendRegistryTests.cpp b/src/backends/backendsCommon/test/BackendRegistryTests.cpp index e1ab7ecb82..172c0a9169 100644 --- a/src/backends/backendsCommon/test/BackendRegistryTests.cpp +++ b/src/backends/backendsCommon/test/BackendRegistryTests.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include diff --git a/src/backends/backendsCommon/test/CommonTestUtils.cpp b/src/backends/backendsCommon/test/CommonTestUtils.cpp index 80512e290a..287c71ebc7 100644 --- a/src/backends/backendsCommon/test/CommonTestUtils.cpp +++ b/src/backends/backendsCommon/test/CommonTestUtils.cpp @@ -5,7 +5,7 @@ #include "CommonTestUtils.hpp" -#include +#include using namespace armnn; diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp index 2615bdc066..561578e841 100644 --- a/src/backends/backendsCommon/test/DynamicBackendTests.hpp +++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp @@ -5,13 +5,14 @@ #pragma once -#include +#include +#include + +#include + #include #include -#include -#include - #include #include diff --git a/src/backends/backendsCommon/test/MockBackend.cpp b/src/backends/backendsCommon/test/MockBackend.cpp index 4fb692ca63..c5a4ed9e52 100644 --- a/src/backends/backendsCommon/test/MockBackend.cpp +++ b/src/backends/backendsCommon/test/MockBackend.cpp @@ -8,8 +8,8 @@ #include -#include -#include +#include +#include #include #include diff --git a/src/backends/backendsCommon/test/MockBackend.hpp b/src/backends/backendsCommon/test/MockBackend.hpp index 88c47850cf..437f23d2b3 100644 --- a/src/backends/backendsCommon/test/MockBackend.hpp +++ b/src/backends/backendsCommon/test/MockBackend.hpp @@ -5,8 +5,8 @@ #pragma once -#include -#include +#include +#include #include #include diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp index 67c3e2c94d..5474f5ddac 100644 --- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp +++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include "CommonTestUtils.hpp" diff --git a/src/backends/backendsCommon/test/TensorCopyUtils.hpp b/src/backends/backendsCommon/test/TensorCopyUtils.hpp index 36f6369c0f..d3c8d9056b 100644 --- a/src/backends/backendsCommon/test/TensorCopyUtils.hpp +++ b/src/backends/backendsCommon/test/TensorCopyUtils.hpp @@ -6,7 +6,7 @@ #include -#include +#include void CopyDataToITensorHandle(armnn::ITensorHandle* tensorHandle, const void* memory); diff --git a/src/backends/backendsCommon/test/TestDynamicBackend.cpp b/src/backends/backendsCommon/test/TestDynamicBackend.cpp index 7230702984..a53f1698c2 100644 --- a/src/backends/backendsCommon/test/TestDynamicBackend.cpp +++ b/src/backends/backendsCommon/test/TestDynamicBackend.cpp @@ -5,7 +5,7 @@ #include "TestDynamicBackend.hpp" -#include +#include constexpr const char* TestDynamicBackendId() { diff --git a/src/backends/backendsCommon/test/WorkloadTestUtils.hpp b/src/backends/backendsCommon/test/WorkloadTestUtils.hpp index 2f3e786f07..552eab2cae 100644 --- a/src/backends/backendsCommon/test/WorkloadTestUtils.hpp +++ b/src/backends/backendsCommon/test/WorkloadTestUtils.hpp @@ -6,8 +6,8 @@ #include -#include -#include +#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/AbsTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/AbsTestImpl.hpp index 88bf1ea8a5..d0f775e21e 100644 --- a/src/backends/backendsCommon/test/layerTests/AbsTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/AbsTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.hpp index 2d6362f532..2251ceb8dd 100644 --- a/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ActivationTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include // diff --git a/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.hpp index 60ef975563..eb65c544ae 100644 --- a/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/AdditionTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult AdditionTest( diff --git a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.hpp index b3bd7db703..24deba71b7 100644 --- a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp index a92ff03753..8471456ab6 100644 --- a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.hpp index a2dacde1a9..eaffb8238f 100644 --- a/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/BatchNormalizationTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult BatchNormFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp index 67e7cc5f6e..79462d16e4 100644 --- a/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/BatchToSpaceNdTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.hpp index 84928faea0..d53c62305a 100644 --- a/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ComparisonTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include // Equal diff --git a/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.hpp index 223bf190df..4ce9d2921f 100644 --- a/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ConcatTestImpl.hpp @@ -10,7 +10,7 @@ #include #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.hpp index fa3e228786..932965a947 100644 --- a/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ConstantTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult ConstantTest( diff --git a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.hpp index 69bfa97281..6261bdfca6 100644 --- a/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/Conv2dTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include // diff --git a/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.hpp index 8e77e2624d..f0f1a4bfb5 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertFp16ToFp32TestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult SimpleConvertFp16ToFp32Test( diff --git a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.hpp index bb0fce28fe..263724710c 100644 --- a/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ConvertFp32ToFp16TestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult SimpleConvertFp32ToFp16Test( diff --git a/src/backends/backendsCommon/test/layerTests/DebugTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DebugTestImpl.hpp index e35527911b..7582663a85 100644 --- a/src/backends/backendsCommon/test/layerTests/DebugTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DebugTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult Debug4dFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.hpp index 4dbcd266d7..18797c66dc 100644 --- a/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DepthToSpaceTestImpl.hpp @@ -8,7 +8,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.hpp index 4d837808a6..008fea8833 100644 --- a/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DequantizeTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp index bcb5abfe72..b8a241dfe6 100644 --- a/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DetectionPostProcessTestImpl.hpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.hpp index 0446f8b916..5e8c50210b 100644 --- a/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/DivisionTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult DivisionByZeroTest( diff --git a/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp index 1bb1348d61..86c5606e4c 100644 --- a/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ElementwiseTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.hpp index 506e9689c7..b317d40d14 100644 --- a/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/FakeQuantizationTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult FakeQuantizationTest( diff --git a/src/backends/backendsCommon/test/layerTests/FloorTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/FloorTestImpl.hpp index e5baf5d2d6..257756fc9e 100644 --- a/src/backends/backendsCommon/test/layerTests/FloorTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/FloorTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.hpp index 8a2463c3f1..d181557d3f 100644 --- a/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/FullyConnectedTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/GatherTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/GatherTestImpl.hpp index 33df17964b..b6a2dd17a0 100644 --- a/src/backends/backendsCommon/test/layerTests/GatherTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/GatherTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult Gather1dParamsFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp index d25fcea66b..c734a2d053 100644 --- a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.cpp @@ -11,7 +11,7 @@ #include #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.hpp index 4030bee6b1..b79ba5f260 100644 --- a/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/InstanceNormalizationTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include LayerTestResult InstanceNormFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.hpp index 78c2ac16b0..b50fdcd72b 100644 --- a/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/L2NormalizationTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult L2NormalizationDefaultEpsilonTest( diff --git a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp index 4c340c8076..3a2f39aea6 100644 --- a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.hpp index 18a14ccd11..af18d69832 100644 --- a/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/LogSoftmaxTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/LstmTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/LstmTestImpl.hpp index 27790097e3..dad1760c65 100644 --- a/src/backends/backendsCommon/test/layerTests/LstmTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/LstmTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include #if defined(ARMNNREF_ENABLED) diff --git a/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.hpp index 0c7ab47925..005d586da5 100644 --- a/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/MaximumTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult MaximumSimpleTest(armnn::IWorkloadFactory& workloadFactory, diff --git a/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp index d0bdfa4789..bab7337ba7 100644 --- a/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/MeanTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include namespace diff --git a/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.hpp index 7a33e5e817..b1e38dcbb0 100644 --- a/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/MinimumTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult MinimumBroadcast1ElementTest1( diff --git a/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.hpp index c56675150b..3e2f2ff2a3 100644 --- a/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/MultiplicationTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult MultiplicationTest( diff --git a/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.hpp index be66f6c981..4da1ad2606 100644 --- a/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/NormalizationTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult SimpleNormalizationAcrossTest( diff --git a/src/backends/backendsCommon/test/layerTests/PadTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/PadTestImpl.hpp index 156b861cf8..bc514881d6 100644 --- a/src/backends/backendsCommon/test/layerTests/PadTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/PadTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp index fe0d07684a..c5039a1202 100644 --- a/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/PermuteTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.hpp index 6f7a595c1d..2f0cde219a 100644 --- a/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/Pooling2dTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult SimpleMaxPooling2dSize2x2Stride2x2Test( diff --git a/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp index dc9b908b12..99f3cd12dd 100644 --- a/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/PreluTestImpl.hpp @@ -12,7 +12,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp index 7d5d73bf01..94d7224629 100644 --- a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.cpp @@ -9,7 +9,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.hpp index bac438e193..a2e1a49763 100644 --- a/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/QuantizeTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult QuantizeSimpleUint8Test( diff --git a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.hpp index fb0bb334e0..2bc1d2c78c 100644 --- a/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ReshapeTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.hpp index 4fe4b73ada..538a64c21a 100644 --- a/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.hpp @@ -11,7 +11,7 @@ #include -#include +#include #include // Bilinear diff --git a/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.hpp index e5a53403d3..dd7ab66d45 100644 --- a/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/RsqrtTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/backendsCommon/test/layerTests/SliceTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SliceTestImpl.hpp index 59458edd2f..d308268acd 100644 --- a/src/backends/backendsCommon/test/layerTests/SliceTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SliceTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include // Float32 tests diff --git a/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.hpp index 2e5e244425..e0dfd10764 100644 --- a/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SoftmaxTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult SimpleSoftmaxTest( diff --git a/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.hpp index cb4d8e3c52..984b9497fd 100644 --- a/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SpaceToBatchNdTestImpl.hpp @@ -8,7 +8,7 @@ #include -#include +#include #include LayerTestResult SpaceToBatchNdSimpleFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.hpp index 80ad542077..c2f70e9d49 100644 --- a/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SpaceToDepthTestImpl.hpp @@ -8,7 +8,7 @@ #include -#include +#include #include LayerTestResult SpaceToDepthNchwAsymmQ8Test( diff --git a/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.hpp index 00b5f7d0a7..b9b3b6653c 100644 --- a/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SplitterTestImpl.hpp @@ -7,7 +7,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp index 80058c6ea5..db9038ea13 100644 --- a/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/StackTestImpl.cpp @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/src/backends/backendsCommon/test/layerTests/StackTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/StackTestImpl.hpp index b091dd4ca7..90327dded7 100644 --- a/src/backends/backendsCommon/test/layerTests/StackTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/StackTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult StackAxis0Float32Test( diff --git a/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.hpp index f71ce2b711..b3b13464ef 100644 --- a/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/StridedSliceTestImpl.hpp @@ -7,7 +7,7 @@ #include "LayerTestResult.hpp" -#include +#include #include LayerTestResult StridedSlice4dFloat32Test( diff --git a/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.hpp index e154a7b37c..327aa90e58 100644 --- a/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/SubtractionTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include LayerTestResult SubtractionTest( diff --git a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.hpp index 438828fe11..76e66d713b 100644 --- a/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/TransposeConvolution2dTestImpl.hpp @@ -9,7 +9,7 @@ #include -#include +#include #include template> diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp index 2528a45b03..0e6b5ab2d5 100644 --- a/src/backends/cl/ClBackend.cpp +++ b/src/backends/cl/ClBackend.cpp @@ -14,8 +14,8 @@ #include -#include -#include +#include +#include #include diff --git a/src/backends/cl/ClBackend.hpp b/src/backends/cl/ClBackend.hpp index f033a0c5a7..bb27bb23b0 100644 --- a/src/backends/cl/ClBackend.hpp +++ b/src/backends/cl/ClBackend.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include namespace armnn { diff --git a/src/backends/cl/ClBackendContext.hpp b/src/backends/cl/ClBackendContext.hpp index 24497c2249..8d4960214f 100644 --- a/src/backends/cl/ClBackendContext.hpp +++ b/src/backends/cl/ClBackendContext.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include #include #include diff --git a/src/backends/cl/ClTensorHandle.hpp b/src/backends/cl/ClTensorHandle.hpp index 2423a8bbcb..cf2b44ac55 100644 --- a/src/backends/cl/ClTensorHandle.hpp +++ b/src/backends/cl/ClTensorHandle.hpp @@ -4,7 +4,6 @@ // #pragma once -#include #include #include diff --git a/src/backends/cl/ClTensorHandleFactory.hpp b/src/backends/cl/ClTensorHandleFactory.hpp index f0d427a6fb..aab3faad0a 100644 --- a/src/backends/cl/ClTensorHandleFactory.hpp +++ b/src/backends/cl/ClTensorHandleFactory.hpp @@ -4,9 +4,9 @@ // #pragma once -#include +#include #include -#include +#include #include namespace armnn diff --git a/src/backends/cl/ClWorkloadFactory.hpp b/src/backends/cl/ClWorkloadFactory.hpp index dd01e615a6..8c94818db2 100644 --- a/src/backends/cl/ClWorkloadFactory.hpp +++ b/src/backends/cl/ClWorkloadFactory.hpp @@ -8,7 +8,6 @@ #include #include -#include #include namespace armnn diff --git a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp index 777bc84b8a..1dfba7573b 100644 --- a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp +++ b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp @@ -5,8 +5,8 @@ #pragma once -#include -#include +#include +#include #include #include diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index 5b005403f1..2ecd270bd2 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -13,8 +13,8 @@ #include -#include -#include +#include +#include #include diff --git a/src/backends/neon/NeonBackend.hpp b/src/backends/neon/NeonBackend.hpp index 49b03b0fee..a2edbaf020 100644 --- a/src/backends/neon/NeonBackend.hpp +++ b/src/backends/neon/NeonBackend.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include namespace armnn { diff --git a/src/backends/neon/NeonTensorHandle.hpp b/src/backends/neon/NeonTensorHandle.hpp index ca5bfb04b1..2e9be11be1 100644 --- a/src/backends/neon/NeonTensorHandle.hpp +++ b/src/backends/neon/NeonTensorHandle.hpp @@ -6,7 +6,6 @@ #include -#include #include #include diff --git a/src/backends/neon/NeonTensorHandleFactory.hpp b/src/backends/neon/NeonTensorHandleFactory.hpp index 8a8ac5cdcb..e1cdc8bbac 100644 --- a/src/backends/neon/NeonTensorHandleFactory.hpp +++ b/src/backends/neon/NeonTensorHandleFactory.hpp @@ -6,7 +6,7 @@ #pragma once #include -#include +#include namespace armnn { diff --git a/src/backends/neon/NeonWorkloadFactory.hpp b/src/backends/neon/NeonWorkloadFactory.hpp index 89a495985e..6bdc237fff 100644 --- a/src/backends/neon/NeonWorkloadFactory.hpp +++ b/src/backends/neon/NeonWorkloadFactory.hpp @@ -7,7 +7,6 @@ #include #include -#include #include #include diff --git a/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp b/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp index 7a6df11d7f..708d23141d 100644 --- a/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp +++ b/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp @@ -5,8 +5,8 @@ #pragma once -#include -#include +#include +#include #include #include diff --git a/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp index 2f29610e71..d5f3c5de34 100644 --- a/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp +++ b/src/backends/neon/workloads/NeonLstmFloatWorkload.cpp @@ -6,8 +6,8 @@ #include "NeonLstmFloatWorkload.hpp" #include "NeonWorkloadUtils.hpp" -#include "backendsCommon/CpuTensorHandle.hpp" #include "aclCommon/ArmComputeTensorUtils.hpp" + #include "neon/NeonTensorHandle.hpp" namespace armnn diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp index 10cd5e5752..7195d231bc 100644 --- a/src/backends/reference/RefBackend.cpp +++ b/src/backends/reference/RefBackend.cpp @@ -11,8 +11,8 @@ #include -#include -#include +#include +#include #include diff --git a/src/backends/reference/RefBackend.hpp b/src/backends/reference/RefBackend.hpp index 86e8b4c7bb..850a1c17c3 100644 --- a/src/backends/reference/RefBackend.hpp +++ b/src/backends/reference/RefBackend.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include namespace armnn { diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 05684dcbc0..30ce5c69b5 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -17,8 +17,6 @@ #include -#include - #include #include diff --git a/src/backends/reference/RefMemoryManager.hpp b/src/backends/reference/RefMemoryManager.hpp index 5daac79e36..b98109018e 100644 --- a/src/backends/reference/RefMemoryManager.hpp +++ b/src/backends/reference/RefMemoryManager.hpp @@ -4,7 +4,7 @@ // #pragma once -#include +#include #include #include diff --git a/src/backends/reference/RefTensorHandleFactory.hpp b/src/backends/reference/RefTensorHandleFactory.hpp index 220e6fd0de..8ea02f58c4 100644 --- a/src/backends/reference/RefTensorHandleFactory.hpp +++ b/src/backends/reference/RefTensorHandleFactory.hpp @@ -7,7 +7,7 @@ #include "RefMemoryManager.hpp" -#include +#include namespace armnn { diff --git a/src/backends/reference/RefWorkloadFactory.hpp b/src/backends/reference/RefWorkloadFactory.hpp index 7b73d5b21f..80393c3f3a 100644 --- a/src/backends/reference/RefWorkloadFactory.hpp +++ b/src/backends/reference/RefWorkloadFactory.hpp @@ -6,7 +6,6 @@ #include #include -#include #include "RefMemoryManager.hpp" diff --git a/src/backends/reference/workloads/Mean.cpp b/src/backends/reference/workloads/Mean.cpp index 3ac3af96a4..f2c0a4fc3f 100644 --- a/src/backends/reference/workloads/Mean.cpp +++ b/src/backends/reference/workloads/Mean.cpp @@ -4,7 +4,7 @@ // #include "Mean.hpp" -#include "backendsCommon/WorkloadData.hpp" +#include #include diff --git a/src/backends/reference/workloads/Pad.cpp b/src/backends/reference/workloads/Pad.cpp index 42291b8661..9fedb44f96 100644 --- a/src/backends/reference/workloads/Pad.cpp +++ b/src/backends/reference/workloads/Pad.cpp @@ -4,7 +4,7 @@ // #include "Pad.hpp" -#include "backendsCommon/WorkloadData.hpp" +#include #include "TensorBufferArrayView.hpp" #include "Encoders.hpp" diff --git a/src/backends/reference/workloads/RefDepthToSpaceWorkload.hpp b/src/backends/reference/workloads/RefDepthToSpaceWorkload.hpp index 327cd9d78d..a30fadc3e9 100644 --- a/src/backends/reference/workloads/RefDepthToSpaceWorkload.hpp +++ b/src/backends/reference/workloads/RefDepthToSpaceWorkload.hpp @@ -5,7 +5,7 @@ #pragma once -#include "backendsCommon/Workload.hpp" +#include namespace armnn { diff --git a/src/backends/reference/workloads/RefMeanWorkload.hpp b/src/backends/reference/workloads/RefMeanWorkload.hpp index eb4b407dbd..c673f940e0 100644 --- a/src/backends/reference/workloads/RefMeanWorkload.hpp +++ b/src/backends/reference/workloads/RefMeanWorkload.hpp @@ -5,8 +5,8 @@ #pragma once -#include "backendsCommon/Workload.hpp" -#include "backendsCommon/WorkloadData.hpp" +#include +#include #include "Decoders.hpp" #include "Encoders.hpp" diff --git a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.hpp b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.hpp index 0deb9e1194..940b910812 100644 --- a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.hpp +++ b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "backendsCommon/Workload.hpp" +#include #include diff --git a/src/backends/reference/workloads/RefSpaceToDepthWorkload.hpp b/src/backends/reference/workloads/RefSpaceToDepthWorkload.hpp index 82d852814a..89e5585249 100644 --- a/src/backends/reference/workloads/RefSpaceToDepthWorkload.hpp +++ b/src/backends/reference/workloads/RefSpaceToDepthWorkload.hpp @@ -4,7 +4,7 @@ // #pragma once -#include "backendsCommon/Workload.hpp" +#include #include -- cgit v1.2.1