// // Copyright © 2020 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "RefTransposeWorkload.hpp" #include "RefWorkloadUtils.hpp" #include #include namespace armnn { template void RefTransposeWorkload::Execute() const { Execute(m_Data.m_Inputs, m_Data.m_Outputs); } template void RefTransposeWorkload::ExecuteAsync(WorkingMemDescriptor &workingMemDescriptor) { Execute(workingMemDescriptor.m_Inputs, workingMemDescriptor.m_Outputs); } template void RefTransposeWorkload::Execute(std::vector inputs, std::vector outputs) const { using T = ResolveType; ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, GetName() + "_Execute"); const ITensorHandle* src = inputs[0]; ITensorHandle* dst = outputs[0]; const PermutationVector& mappings = m_Data.m_Parameters.m_DimMappings; armnnUtils::Transpose(GetTensorInfo(src).GetShape(), mappings, src->Map(), dst->Map(), sizeof(T)); } template class RefTransposeWorkload; template class RefTransposeWorkload; template class RefTransposeWorkload; template class RefTransposeWorkload; template class RefTransposeWorkload; template class RefTransposeWorkload; } //namespace armnn