aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-02-03 12:29:56 +0000
committerJim Flynn <jim.flynn@arm.com>2020-02-03 16:36:55 +0000
commit867eba59ffd2276086a14f7b2632b390c94392d3 (patch)
treed7626f933f2a72e8c398c0f43c71b4950e980a09 /include
parent9d0ff74843b9d36d9f233d208e18a96de1b7d47b (diff)
downloadarmnn-867eba59ffd2276086a14f7b2632b390c94392d3.tar.gz
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 <narumol.prangnawarat@arm.com> Change-Id: I0753ce35b8e8a6223a1471388b49246d82438a44
Diffstat (limited to 'include')
-rw-r--r--include/armnn/backends/CMakeLists.txt4
-rw-r--r--include/armnn/backends/IWorkload.hpp26
-rw-r--r--include/armnn/backends/WorkloadInfo.hpp22
3 files changed, 51 insertions, 1 deletions
diff --git a/include/armnn/backends/CMakeLists.txt b/include/armnn/backends/CMakeLists.txt
index 90a022aad7..94e757fe8a 100644
--- a/include/armnn/backends/CMakeLists.txt
+++ b/include/armnn/backends/CMakeLists.txt
@@ -8,10 +8,12 @@ list(APPEND armnnBackendsAPI_sources
DynamicBackend.hpp
IBackendInternal.hpp
IBackendContext.hpp
- ITensorHandleFactory.hpp
IMemoryManager.hpp
ITensorHandle.hpp
+ ITensorHandleFactory.hpp
+ IWorkload.hpp
OptimizationViews.hpp
+ WorkloadInfo.hpp
profiling/IBackendProfiling.hpp
profiling/IBackendProfilingContext.hpp
)
diff --git a/include/armnn/backends/IWorkload.hpp b/include/armnn/backends/IWorkload.hpp
new file mode 100644
index 0000000000..0bd8d2db75
--- /dev/null
+++ b/include/armnn/backends/IWorkload.hpp
@@ -0,0 +1,26 @@
+//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/Types.hpp>
+
+namespace armnn
+{
+
+/// Workload interface to enqueue a layer computation.
+class IWorkload {
+public:
+ virtual ~IWorkload() {}
+
+ virtual void PostAllocationConfigure() = 0;
+
+ virtual void Execute() const = 0;
+
+ virtual profiling::ProfilingGuid GetGuid() const = 0;
+
+ virtual void RegisterDebugCallback(const DebugCallbackFunction & /*func*/) {}
+};
+
+} //namespace armnn
diff --git a/include/armnn/backends/WorkloadInfo.hpp b/include/armnn/backends/WorkloadInfo.hpp
new file mode 100644
index 0000000000..edf3581791
--- /dev/null
+++ b/include/armnn/backends/WorkloadInfo.hpp
@@ -0,0 +1,22 @@
+//
+// Copyright © 2020 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/Tensor.hpp>
+
+#include <vector>
+
+namespace armnn
+{
+
+/// Contains information about inputs and outputs to a layer.
+/// This is needed at construction of workloads, but are not stored.
+struct WorkloadInfo
+{
+ std::vector<TensorInfo> m_InputTensorInfos;
+ std::vector<TensorInfo> m_OutputTensorInfos;
+};
+
+} //namespace armnn