1 // 2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include <backendsCommon/test/WorkloadFactoryHelper.hpp> 9 10 #include <armnn/utility/PolymorphicDowncast.hpp> 11 12 #include <tosaReference/TosaRefBackend.hpp> 13 #include <tosaReference/TosaRefWorkloadFactory.hpp> 14 #include "tosaReference/TosaRefTensorHandleFactory.hpp" 15 16 namespace 17 { 18 19 template<> 20 struct WorkloadFactoryHelper<armnn::TosaRefWorkloadFactory> 21 { GetMemoryManager__anon45d98a5c0111::WorkloadFactoryHelper22 static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() 23 { 24 armnn::TosaRefBackend backend; 25 return backend.CreateMemoryManager(); 26 } 27 GetFactory__anon45d98a5c0111::WorkloadFactoryHelper28 static armnn::TosaRefWorkloadFactory GetFactory( 29 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) 30 { 31 IgnoreUnused(memoryManager); 32 return armnn::TosaRefWorkloadFactory(); 33 } 34 GetTensorHandleFactory__anon45d98a5c0111::WorkloadFactoryHelper35 static armnn::TosaRefTensorHandleFactory GetTensorHandleFactory( 36 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) 37 { 38 39 return armnn::TosaRefTensorHandleFactory( 40 armnn::PolymorphicPointerDowncast<armnn::TosaRefMemoryManager>(memoryManager)); 41 } 42 }; 43 44 using TosaRefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::TosaRefWorkloadFactory>; 45 46 } // anonymous namespace 47