aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/armnn/backends/IWorkload.hpp4
-rw-r--r--include/armnn/backends/Workload.hpp11
-rw-r--r--include/armnnTestUtils/MockWorkloadFactoryHelper.hpp41
3 files changed, 13 insertions, 43 deletions
diff --git a/include/armnn/backends/IWorkload.hpp b/include/armnn/backends/IWorkload.hpp
index d63e0acc72..ce3914bc5a 100644
--- a/include/armnn/backends/IWorkload.hpp
+++ b/include/armnn/backends/IWorkload.hpp
@@ -31,6 +31,10 @@ public:
virtual profiling::ProfilingGuid GetGuid() const = 0;
+ // SupportsTensorHandleReplacement signals that a given workload is capable of
+ // replacing any of its I/O tensors via ReplaceInput/OutputTensorHandle
+ virtual bool SupportsTensorHandleReplacement() const = 0;
+
// Replace input tensor handle with the given TensorHandle
virtual void ReplaceInputTensorHandle(ITensorHandle* /*input*/, unsigned int /*slot*/) = 0;
diff --git a/include/armnn/backends/Workload.hpp b/include/armnn/backends/Workload.hpp
index 07e1abb392..21109480dc 100644
--- a/include/armnn/backends/Workload.hpp
+++ b/include/armnn/backends/Workload.hpp
@@ -54,16 +54,23 @@ public:
profiling::ProfilingGuid GetGuid() const final { return m_Guid; }
+ virtual bool SupportsTensorHandleReplacement() const override
+ {
+ return false;
+ }
+
// Replace input tensor handle with the given TensorHandle
void ReplaceInputTensorHandle(ITensorHandle* tensorHandle, unsigned int slot) override
{
- m_Data.m_Inputs[slot] = tensorHandle;
+ armnn::IgnoreUnused(tensorHandle, slot);
+ throw armnn::UnimplementedException("ReplaceInputTensorHandle not implemented for this workload");
}
// Replace output tensor handle with the given TensorHandle
void ReplaceOutputTensorHandle(ITensorHandle* tensorHandle, unsigned int slot) override
{
- m_Data.m_Outputs[slot] = tensorHandle;
+ armnn::IgnoreUnused(tensorHandle, slot);
+ throw armnn::UnimplementedException("ReplaceOutputTensorHandle not implemented for this workload");
}
protected:
diff --git a/include/armnnTestUtils/MockWorkloadFactoryHelper.hpp b/include/armnnTestUtils/MockWorkloadFactoryHelper.hpp
deleted file mode 100644
index e9f2b2f6cf..0000000000
--- a/include/armnnTestUtils/MockWorkloadFactoryHelper.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "MockBackend.hpp"
-#include "MockTensorHandleFactory.hpp"
-#include <backendsCommon/test/WorkloadFactoryHelper.hpp>
-
-namespace
-{
-
-template <>
-struct WorkloadFactoryHelper<armnn::MockWorkloadFactory>
-{
- static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
- {
- armnn::MockBackend backend;
- return backend.CreateMemoryManager();
- }
-
- static armnn::MockWorkloadFactory
- GetFactory(const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
- {
- IgnoreUnused(memoryManager);
- return armnn::MockWorkloadFactory();
- }
-
- static armnn::MockTensorHandleFactory
- GetTensorHandleFactory(const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
- {
-
- return armnn::MockTensorHandleFactory(std::static_pointer_cast<armnn::MockMemoryManager>(memoryManager));
- }
-};
-
-using MockWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::MockWorkloadFactory>;
-
-} // anonymous namespace