1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 #pragma once 6 7 #include <armnn/backends/IBackendInternal.hpp> 8 9 namespace armnn 10 { 11 12 class RefBackend : public IBackendInternal 13 { 14 public: 15 RefBackend() = default; 16 ~RefBackend() = default; 17 18 static const BackendId& GetIdStatic(); GetId() const19 const BackendId& GetId() const override { return GetIdStatic(); } 20 21 IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override; 22 23 IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( 24 const IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) const override; 25 26 IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( 27 class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const override; 28 29 IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override; 30 31 IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext( 32 const IRuntime::CreationOptions& creationOptions, IBackendProfilingPtr& backendProfiling) override; 33 34 IBackendInternal::Optimizations GetOptimizations() const override; 35 IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override; 36 37 OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph) const override; 38 39 std::vector<ITensorHandleFactory::FactoryId> GetHandleFactoryPreferences() const override; 40 41 void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) override; 42 }; 43 44 } // namespace armnn 45