1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker #pragma once 6*89c4ff92SAndroid Build Coastguard Worker 7*89c4ff92SAndroid Build Coastguard Worker #include <armnn/backends/IBackendInternal.hpp> 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker namespace armnn 10*89c4ff92SAndroid Build Coastguard Worker { 11*89c4ff92SAndroid Build Coastguard Worker 12*89c4ff92SAndroid Build Coastguard Worker class TosaRefBackend : public IBackendInternal 13*89c4ff92SAndroid Build Coastguard Worker { 14*89c4ff92SAndroid Build Coastguard Worker public: 15*89c4ff92SAndroid Build Coastguard Worker TosaRefBackend() = default; 16*89c4ff92SAndroid Build Coastguard Worker ~TosaRefBackend() = default; 17*89c4ff92SAndroid Build Coastguard Worker 18*89c4ff92SAndroid Build Coastguard Worker static const BackendId& GetIdStatic(); GetId() const19*89c4ff92SAndroid Build Coastguard Worker const BackendId& GetId() const override 20*89c4ff92SAndroid Build Coastguard Worker { 21*89c4ff92SAndroid Build Coastguard Worker return GetIdStatic(); 22*89c4ff92SAndroid Build Coastguard Worker } 23*89c4ff92SAndroid Build Coastguard Worker 24*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override; 25*89c4ff92SAndroid Build Coastguard Worker 26*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( 27*89c4ff92SAndroid Build Coastguard Worker const IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) const override; 28*89c4ff92SAndroid Build Coastguard Worker 29*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory( 30*89c4ff92SAndroid Build Coastguard Worker class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const override; 31*89c4ff92SAndroid Build Coastguard Worker 32*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const override; 33*89c4ff92SAndroid Build Coastguard Worker 34*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::IBackendProfilingContextPtr 35*89c4ff92SAndroid Build Coastguard Worker CreateBackendProfilingContext(const IRuntime::CreationOptions& creationOptions, 36*89c4ff92SAndroid Build Coastguard Worker IBackendProfilingPtr& backendProfiling) override; 37*89c4ff92SAndroid Build Coastguard Worker 38*89c4ff92SAndroid Build Coastguard Worker IBackendInternal::ILayerSupportSharedPtr GetLayerSupport() const override; 39*89c4ff92SAndroid Build Coastguard Worker 40*89c4ff92SAndroid Build Coastguard Worker OptimizationViews OptimizeSubgraphView(const SubgraphView& subgraph, 41*89c4ff92SAndroid Build Coastguard Worker const ModelOptions& modelOptions) const override; 42*89c4ff92SAndroid Build Coastguard Worker 43*89c4ff92SAndroid Build Coastguard Worker std::vector<ITensorHandleFactory::FactoryId> GetHandleFactoryPreferences() const override; 44*89c4ff92SAndroid Build Coastguard Worker 45*89c4ff92SAndroid Build Coastguard Worker void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) override; 46*89c4ff92SAndroid Build Coastguard Worker 47*89c4ff92SAndroid Build Coastguard Worker std::unique_ptr<ICustomAllocator> GetDefaultAllocator() const override; 48*89c4ff92SAndroid Build Coastguard Worker 49*89c4ff92SAndroid Build Coastguard Worker private: 50*89c4ff92SAndroid Build Coastguard Worker // Private members 51*89c4ff92SAndroid Build Coastguard Worker 52*89c4ff92SAndroid Build Coastguard Worker protected: 53*89c4ff92SAndroid Build Coastguard Worker // Protected members 54*89c4ff92SAndroid Build Coastguard Worker }; 55*89c4ff92SAndroid Build Coastguard Worker 56*89c4ff92SAndroid Build Coastguard Worker } // namespace armnn 57