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 WorkerMultiplicationLayer::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 Workerstd::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 WorkerMultiplicationLayer* 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 Workervoid 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