aboutsummaryrefslogtreecommitdiff
path: root/include/armnn/backends/IBackendInternal.hpp
diff options
context:
space:
mode:
authorJim Flynn <jim.flynn@arm.com>2020-03-19 17:03:14 +0000
committerJim Flynn <jim.flynn@arm.com>2020-03-19 17:03:14 +0000
commit0e2bab81442ee6cc2b94e4f7881ed0c5c6af65e7 (patch)
treeb0af08b5a0b74149fca422151127ac6310385399 /include/armnn/backends/IBackendInternal.hpp
parent8c3259fa007d43fcc5ea56fe6928526dbe79f3c0 (diff)
downloadarmnn-0e2bab81442ee6cc2b94e4f7881ed0c5c6af65e7.tar.gz
Creating gh-pages documentation for ArmNN
Signed-off-by: Jim Flynn <jim.flynn@arm.com>
Diffstat (limited to 'include/armnn/backends/IBackendInternal.hpp')
-rw-r--r--include/armnn/backends/IBackendInternal.hpp154
1 files changed, 0 insertions, 154 deletions
diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp
deleted file mode 100644
index 6ad9bba546..0000000000
--- a/include/armnn/backends/IBackendInternal.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <armnn/Types.hpp>
-#include <armnn/IRuntime.hpp>
-#include <armnn/Deprecated.hpp>
-
-#include <ISubgraphViewConverter.hpp>
-#include <SubgraphView.hpp>
-#include <optimizations/Optimization.hpp>
-
-#include "IBackendContext.hpp"
-#include "armnn/backends/profiling/IBackendProfiling.hpp"
-#include "armnn/backends/profiling/IBackendProfilingContext.hpp"
-#include "IMemoryManager.hpp"
-#include "ITensorHandleFactory.hpp"
-#include "OptimizationViews.hpp"
-
-#include <vector>
-#include <memory>
-
-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<IWorkloadFactory>;
- using IBackendContextPtr = std::unique_ptr<IBackendContext>;
- // This is the bridge between backend and backend profiling we'll keep it in the backend namespace.
- using IBackendProfilingContextPtr = std::shared_ptr<armnn::profiling::IBackendProfilingContext>;
- using IBackendProfilingPtr = std::unique_ptr<armnn::profiling::IBackendProfiling>;
- using OptimizationPtr = std::unique_ptr<Optimization>;
- using Optimizations = std::vector<OptimizationPtr>;
- using ILayerSupportSharedPtr = std::shared_ptr<ILayerSupport>;
-
- using IMemoryManagerUniquePtr = std::unique_ptr<IMemoryManager>;
- using IMemoryManagerSharedPtr = std::shared_ptr<IMemoryManager>;
-
- using GraphUniquePtr = std::unique_ptr<Graph>;
- using SubgraphViewUniquePtr = std::unique_ptr<SubgraphView>;
-
- ARMNN_NO_DEPRECATE_WARN_BEGIN
- using ISubGraphConverterPtr ARMNN_DEPRECATED_MSG("This type is no longer supported")
- = std::unique_ptr<ISubGraphConverter>;
- using SubGraphUniquePtr ARMNN_DEPRECATED_MSG("SubGraph is deprecated, use SubgraphView instead")
- = std::unique_ptr<SubGraph>;
-
- ARMNN_DEPRECATED_MSG("This method is no longer supported")
- virtual ISubGraphConverterPtr CreateSubGraphConverter(const std::shared_ptr<SubGraph>& 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;
-
- /// Create the runtime context of the backend
- ///
- /// Implementations may return a default-constructed IBackendContextPtr if
- /// no context is needed at runtime.
- /// Implementations must throw BackendUnavailableException if the backend
- /// cannot be used (for example, necessary accelerator hardware is not present).
- /// The default implementation always returns a default-constructed pointer.
- virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const;
-
- /// Create context specifically used for profiling interaction from backends.
- virtual IBackendProfilingContextPtr CreateBackendProfilingContext(const IRuntime::CreationOptions& creationOptions,
- IBackendProfilingPtr& backendProfiling);
-
- 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<ITensorHandleFactory::FactoryId> 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<IBackendInternal>;
-
-} // namespace armnn