blob: c1d75d625b4f1a064c1f23dcc497fbc66ff57a8b [file] [log] [blame]
David Monahan8a570462023-11-22 13:24:25 +00001//
2// Copyright © 2022-2023 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 <gpuFsa/GpuFsaBackend.hpp>
13#include <gpuFsa/GpuFsaWorkloadFactory.hpp>
14#include "gpuFsa/GpuFsaTensorHandleFactory.hpp"
15
16namespace
17{
18
19template<>
20struct WorkloadFactoryHelper<armnn::GpuFsaWorkloadFactory>
21{
22 static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
23 {
24 armnn::GpuFsaBackend backend;
25 return backend.CreateMemoryManager();
26 }
27
28 static armnn::GpuFsaWorkloadFactory GetFactory(
29 const armnn::IBackendInternal::IMemoryManagerSharedPtr&)
30 {
31 return armnn::GpuFsaWorkloadFactory();
32 }
33
34 static armnn::GpuFsaTensorHandleFactory GetTensorHandleFactory(
35 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
36 {
37
38 return armnn::GpuFsaTensorHandleFactory(
39 armnn::PolymorphicPointerDowncast<armnn::GpuFsaMemoryManager>(memoryManager));
40 }
41};
42
43using GpuFsaWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::GpuFsaWorkloadFactory>;
44
45} // anonymous namespace