From 867eba59ffd2276086a14f7b2632b390c94392d3 Mon Sep 17 00:00:00 2001 From: Narumol Prangnawarat Date: Mon, 3 Feb 2020 12:29:56 +0000 Subject: IVGCVSW-4399 Create Sample Dynamic backend * Move IWorkload and WorkloadInfo to include/armnn/backends * Add simple sample dynamic backend with addition workload * Add sample example to run dynamic backend * Unit tests Signed-off-by: Narumol Prangnawarat Change-Id: I0753ce35b8e8a6223a1471388b49246d82438a44 --- .../sample/SampleDynamicWorkloadFactory.cpp | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/dynamic/sample/SampleDynamicWorkloadFactory.cpp (limited to 'src/dynamic/sample/SampleDynamicWorkloadFactory.cpp') diff --git a/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp b/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp new file mode 100644 index 0000000000..0fb5504f41 --- /dev/null +++ b/src/dynamic/sample/SampleDynamicWorkloadFactory.cpp @@ -0,0 +1,75 @@ +// +// Copyright © 2020 Arm Ltd. All rights reserved. +// SPDX-License-Identifier: MIT +// + +#include +#include + +#include "SampleDynamicAdditionWorkload.hpp" +#include "SampleDynamicBackend.hpp" +#include "SampleDynamicWorkloadFactory.hpp" +#include "SampleTensorHandle.hpp" + +namespace armnn +{ + +namespace +{ +static const BackendId s_Id{ GetBackendId() }; +} + +SampleDynamicWorkloadFactory::SampleDynamicWorkloadFactory(const std::shared_ptr& memoryManager) + : m_MemoryManager(memoryManager) +{ +} + +SampleDynamicWorkloadFactory::SampleDynamicWorkloadFactory() + : m_MemoryManager(new SampleMemoryManager()) +{ +} + +const BackendId& SampleDynamicWorkloadFactory::GetBackendId() const +{ + return s_Id; +} + +bool SampleDynamicWorkloadFactory::IsLayerSupported(const IConnectableLayer& layer, + Optional dataType, + std::string& outReasonIfUnsupported) +{ + return IWorkloadFactory::IsLayerSupported(s_Id, layer, dataType, outReasonIfUnsupported); +} + +std::unique_ptr SampleDynamicWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + const bool isMemoryManaged) const +{ + return std::make_unique(tensorInfo); +} + +std::unique_ptr SampleDynamicWorkloadFactory::CreateTensorHandle(const TensorInfo& tensorInfo, + DataLayout dataLayout, + const bool isMemoryManaged) const +{ + return std::make_unique(tensorInfo); +} + +std::unique_ptr SampleDynamicWorkloadFactory::CreateAddition(const AdditionQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return std::make_unique(descriptor, info); +} + +std::unique_ptr SampleDynamicWorkloadFactory::CreateInput(const InputQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return std::make_unique(descriptor, info); +} + +std::unique_ptr SampleDynamicWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return std::make_unique(descriptor, info); +} + +} // namespace armnn -- cgit v1.2.1