1 // 2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #include "RefConstantWorkload.hpp" 7 8 #include "RefWorkloadUtils.hpp" 9 10 #include <armnn/Types.hpp> 11 12 #include <armnn/utility/Assert.hpp> 13 14 #include <cstring> 15 16 namespace armnn 17 { 18 RefConstantWorkload(const ConstantQueueDescriptor & descriptor,const WorkloadInfo & info)19RefConstantWorkload::RefConstantWorkload( 20 const ConstantQueueDescriptor& descriptor, const WorkloadInfo& info) 21 : RefBaseWorkload<ConstantQueueDescriptor>(descriptor, info) {} 22 Execute() const23void RefConstantWorkload::Execute() const 24 { 25 Execute(m_Data.m_Outputs); 26 } 27 ExecuteAsync(ExecutionData & executionData)28void RefConstantWorkload::ExecuteAsync(ExecutionData& executionData) 29 { 30 WorkingMemDescriptor* workingMemDescriptor = static_cast<WorkingMemDescriptor*>(executionData.m_Data); 31 Execute(workingMemDescriptor->m_Outputs); 32 } 33 Execute(std::vector<ITensorHandle * > outputs) const34void RefConstantWorkload::Execute(std::vector<ITensorHandle*> outputs) const 35 { 36 memcpy(outputs[0]->Map(), m_Data.m_LayerOutput->GetConstTensor<void>(), GetTensorInfo(outputs[0]).GetNumBytes()); 37 38 ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefConstantWorkload_Execute"); 39 } 40 41 } //namespace armnn 42