xref: /aosp_15_r20/external/armnn/src/armnn/layers/MultiplicationLayer.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "MultiplicationLayer.hpp"
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include "LayerCloneBase.hpp"
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker #include <armnn/TypesUtils.hpp>
11*89c4ff92SAndroid Build Coastguard Worker #include <armnn/backends/WorkloadData.hpp>
12*89c4ff92SAndroid Build Coastguard Worker #include <armnn/backends/WorkloadFactory.hpp>
13*89c4ff92SAndroid Build Coastguard Worker 
14*89c4ff92SAndroid Build Coastguard Worker namespace armnn
15*89c4ff92SAndroid Build Coastguard Worker {
16*89c4ff92SAndroid Build Coastguard Worker 
MultiplicationLayer(const char * name)17*89c4ff92SAndroid Build Coastguard Worker MultiplicationLayer::MultiplicationLayer(const char* name)
18*89c4ff92SAndroid Build Coastguard Worker     : ElementwiseBaseLayer(2, 1, LayerType::Multiplication, name)
19*89c4ff92SAndroid Build Coastguard Worker {
20*89c4ff92SAndroid Build Coastguard Worker }
21*89c4ff92SAndroid Build Coastguard Worker 
CreateWorkload(const IWorkloadFactory & factory) const22*89c4ff92SAndroid Build Coastguard Worker std::unique_ptr<IWorkload> MultiplicationLayer::CreateWorkload(const IWorkloadFactory& factory) const
23*89c4ff92SAndroid Build Coastguard Worker {
24*89c4ff92SAndroid Build Coastguard Worker     MultiplicationQueueDescriptor descriptor;
25*89c4ff92SAndroid Build Coastguard Worker     SetAdditionalInfo(descriptor);
26*89c4ff92SAndroid Build Coastguard Worker 
27*89c4ff92SAndroid Build Coastguard Worker     return factory.CreateWorkload(LayerType::Multiplication, descriptor, PrepInfoAndDesc(descriptor));
28*89c4ff92SAndroid Build Coastguard Worker }
29*89c4ff92SAndroid Build Coastguard Worker 
Clone(Graph & graph) const30*89c4ff92SAndroid Build Coastguard Worker MultiplicationLayer* MultiplicationLayer::Clone(Graph& graph) const
31*89c4ff92SAndroid Build Coastguard Worker {
32*89c4ff92SAndroid Build Coastguard Worker     return CloneBase<MultiplicationLayer>(graph, GetName());
33*89c4ff92SAndroid Build Coastguard Worker }
34*89c4ff92SAndroid Build Coastguard Worker 
ExecuteStrategy(IStrategy & strategy) const35*89c4ff92SAndroid Build Coastguard Worker void MultiplicationLayer::ExecuteStrategy(IStrategy& strategy) const
36*89c4ff92SAndroid Build Coastguard Worker {
37*89c4ff92SAndroid Build Coastguard Worker     strategy.ExecuteStrategy(this, GetParameters(), {}, GetName());
38*89c4ff92SAndroid Build Coastguard Worker }
39*89c4ff92SAndroid Build Coastguard Worker 
40*89c4ff92SAndroid Build Coastguard Worker } // namespace armnn
41