ArmNN
NotReleased
RefElementwiseWorkload.hpp
Go to the documentation of this file.
1
//
2
// Copyright © 2017 Arm Ltd. All rights reserved.
3
// SPDX-License-Identifier: MIT
4
//
5
6
#pragma once
7
8
#include <
armnn/Types.hpp
>
9
#include <
backendsCommon/Workload.hpp
>
10
#include <
backendsCommon/WorkloadData.hpp
>
11
#include "
BaseIterator.hpp
"
12
#include "
ElementwiseFunction.hpp
"
13
#include "
Maximum.hpp
"
14
#include "
Minimum.hpp
"
15
#include "
StringMapping.hpp
"
16
17
namespace
armnn
18
{
19
20
template
<
typename
Functor,
typename
ParentDescriptor,
typename
armnn::StringMapping::Id DebugString>
21
class
RefElementwiseWorkload
:
public
BaseWorkload
<ParentDescriptor>
22
{
23
public
:
24
using
InType
=
typename
ElementwiseBinaryFunction<Functor>::InType
;
25
using
OutType
=
typename
ElementwiseBinaryFunction<Functor>::OutType
;
26
using
BaseWorkload<ParentDescriptor>::m_Data
;
27
28
RefElementwiseWorkload
(
const
ParentDescriptor& descriptor,
const
WorkloadInfo
&
info
);
29
void
PostAllocationConfigure
()
override
;
30
void
Execute
()
const override
;
31
32
private
:
33
std::unique_ptr<Decoder<InType>> m_Input0;
34
std::unique_ptr<Decoder<InType>> m_Input1;
35
std::unique_ptr<Encoder<OutType>> m_Output;
36
};
37
38
using
RefAdditionWorkload
=
39
RefElementwiseWorkload<std::plus<float>
,
40
AdditionQueueDescriptor
,
41
StringMapping::RefAdditionWorkload_Execute
>;
42
43
using
RefSubtractionWorkload
=
44
RefElementwiseWorkload<std::minus<float>
,
45
SubtractionQueueDescriptor
,
46
StringMapping::RefSubtractionWorkload_Execute
>;
47
48
using
RefMultiplicationWorkload
=
49
RefElementwiseWorkload<std::multiplies<float>
,
50
MultiplicationQueueDescriptor
,
51
StringMapping::RefMultiplicationWorkload_Execute
>;
52
53
using
RefDivisionWorkload
=
54
RefElementwiseWorkload<std::divides<float>
,
55
DivisionQueueDescriptor
,
56
StringMapping::RefDivisionWorkload_Execute
>;
57
58
using
RefMaximumWorkload
=
59
RefElementwiseWorkload<armnn::maximum<float>
,
60
MaximumQueueDescriptor
,
61
StringMapping::RefMaximumWorkload_Execute
>;
62
63
using
RefMinimumWorkload
=
64
RefElementwiseWorkload<armnn::minimum<float>
,
65
MinimumQueueDescriptor
,
66
StringMapping::RefMinimumWorkload_Execute
>;
67
68
}
// armnn
armnn::StringMapping::RefMultiplicationWorkload_Execute
Definition:
StringMapping.hpp:24
armnn::RefElementwiseWorkload::InType
typename ElementwiseBinaryFunction< Functor >::InType InType
Definition:
RefElementwiseWorkload.hpp:24
armnn::BoostLogSeverityMapping::info
StringMapping.hpp
armnn::StringMapping::RefSubtractionWorkload_Execute
Definition:
StringMapping.hpp:25
armnn::ElementwiseBinaryFunction::OutType
typename Functor::result_type OutType
Definition:
ElementwiseFunction.hpp:17
Workload.hpp
armnn::WorkloadInfo
Definition:
WorkloadInfo.hpp:16
Maximum.hpp
BaseIterator.hpp
armnn::StringMapping::RefMinimumWorkload_Execute
Definition:
StringMapping.hpp:23
armnn::RefElementwiseWorkload::OutType
typename ElementwiseBinaryFunction< Functor >::OutType OutType
Definition:
RefElementwiseWorkload.hpp:25
armnn::ElementwiseBinaryFunction::InType
typename Functor::first_argument_type InType
Definition:
ElementwiseFunction.hpp:18
armnn::MultiplicationQueueDescriptor
Definition:
WorkloadData.hpp:222
armnn::DivisionQueueDescriptor
Definition:
WorkloadData.hpp:228
WorkloadData.hpp
armnn
Definition:
BackendHelper.hpp:11
Types.hpp
armnn::RefElementwiseWorkload
Definition:
RefElementwiseWorkload.hpp:21
Minimum.hpp
armnn::RefElementwiseWorkload::Execute
void Execute() const override
Definition:
RefElementwiseWorkload.cpp:41
armnn::AdditionQueueDescriptor
Definition:
WorkloadData.hpp:216
ElementwiseFunction.hpp
armnn::MaximumQueueDescriptor
Definition:
WorkloadData.hpp:240
armnn::MinimumQueueDescriptor
Definition:
WorkloadData.hpp:431
armnn::SubtractionQueueDescriptor
Definition:
WorkloadData.hpp:234
armnn::RefElementwiseWorkload::RefElementwiseWorkload
RefElementwiseWorkload(const ParentDescriptor &descriptor, const WorkloadInfo &info)
Definition:
RefElementwiseWorkload.cpp:21
armnn::RefElementwiseWorkload::PostAllocationConfigure
void PostAllocationConfigure() override
Definition:
RefElementwiseWorkload.cpp:29
armnn::BaseWorkload
Definition:
Workload.hpp:28
armnn::StringMapping::RefDivisionWorkload_Execute
Definition:
StringMapping.hpp:21
armnn::StringMapping::RefMaximumWorkload_Execute
Definition:
StringMapping.hpp:22
armnn::StringMapping::RefAdditionWorkload_Execute
Definition:
StringMapping.hpp:20
src
backends
reference
workloads
RefElementwiseWorkload.hpp
Generated on Fri Mar 13 2020 16:06:58 for ArmNN by
1.8.13