// // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once #include #include #include #include #include #include #include "neon/NeonTensorHandleFactory.hpp" namespace { template<> struct WorkloadFactoryHelper { static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() { armnn::NeonBackend backend; return backend.CreateMemoryManager(); } static armnn::NeonWorkloadFactory GetFactory( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, const armnn::ModelOptions& modelOptions = {}) { armnn::NeonBackend backend; return armnn::NeonWorkloadFactory(armnn::PolymorphicPointerDowncast(memoryManager), backend.CreateBackendSpecificModelContext(modelOptions)); } static armnn::NeonTensorHandleFactory GetTensorHandleFactory( const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr) { return armnn::NeonTensorHandleFactory( armnn::PolymorphicPointerDowncast(memoryManager)); } }; using NeonWorkloadFactoryHelper = WorkloadFactoryHelper; } // anonymous namespace