24.02
IWorkload.hpp
Go to the documentation of this file.
1
//
2
// Copyright © 2020-2023 Arm Ltd and Contributors. All rights reserved.
3
// SPDX-License-Identifier: MIT
4
//
5
#pragma once
6
7
#include <
armnn/Types.hpp
>
8
#include <
armnn/backends/WorkloadInfo.hpp
>
9
10
namespace
armnn
11
{
12
13
namespace
experimental
14
{
15
16
struct
ExecutionData
;
17
18
}
// end experimental namespace
19
20
using namespace
armnn::experimental
;
21
22
/// Workload interface to enqueue a layer computation.
23
class
IWorkload
{
24
public
:
25
virtual
~IWorkload
() {}
26
27
// Note: do not call for async networks via ExecuteAsync or otherwise,
28
// as async networks memory is allocated outside the workload.
29
virtual
void
PostAllocationConfigure() = 0;
30
31
virtual
void
Execute()
const
= 0;
32
33
virtual
void
ExecuteAsync(
ExecutionData
& executionData) = 0;
34
35
virtual
arm::pipe::ProfilingGuid GetGuid()
const
= 0;
36
37
// SupportsTensorHandleReplacement signals that a given workload is capable of
38
// replacing any of its I/O tensors via ReplaceInput/OutputTensorHandle
39
virtual
bool
SupportsTensorHandleReplacement()
const
= 0;
40
41
// Replace input tensor handle with the given TensorHandle
42
virtual
void
ReplaceInputTensorHandle(
ITensorHandle
*
/*input*/
,
unsigned
int
/*slot*/
) = 0;
43
44
// Returns the name of the workload
45
virtual
const
std::string& GetName()
const
= 0;
46
47
// Replace output tensor handle with the given TensorHandle
48
virtual
void
ReplaceOutputTensorHandle(
ITensorHandle
*
/*output*/
,
unsigned
int
/*slot*/
) = 0;
49
50
virtual
void
RegisterDebugCallback
(
const
DebugCallbackFunction
&
/*func*/
) {}
51
52
virtual
armnn::Optional<armnn::MemoryRequirements>
GetMemoryRequirements
()
53
{
54
return
armnn::EmptyOptional
();
55
}
56
};
57
58
}
//namespace armnn
armnn::Optional
Definition:
Optional.hpp:270
armnn::IWorkload
Workload interface to enqueue a layer computation.
Definition:
IWorkload.hpp:23
armnn::ITensorHandle
Definition:
ITensorHandle.hpp:16
armnn::IWorkload::GetMemoryRequirements
virtual armnn::Optional< armnn::MemoryRequirements > GetMemoryRequirements()
Definition:
IWorkload.hpp:52
armnn::EmptyOptional
EmptyOptional is used to initialize the Optional class in case we want to have default value for an O...
Definition:
Optional.hpp:32
armnn::experimental
Definition:
IWorkload.hpp:13
armnn::IWorkload::~IWorkload
virtual ~IWorkload()
Definition:
IWorkload.hpp:25
armnn::DebugCallbackFunction
std::function< void(LayerGuid guid, unsigned int slotIndex, ITensorHandle *tensorHandle)> DebugCallbackFunction
Define the type of callback for the Debug layer to call.
Definition:
Types.hpp:398
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition:
01_00_quick_start.dox:6
Types.hpp
armnn::IWorkload::RegisterDebugCallback
virtual void RegisterDebugCallback(const DebugCallbackFunction &)
Definition:
IWorkload.hpp:50
WorkloadInfo.hpp
armnn::experimental::ExecutionData
Definition:
ExecutionData.hpp:14
include
armnn
backends
IWorkload.hpp
Generated on Wed Feb 14 2024 16:36:13 for Arm NN by
1.8.17