// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "RefPermuteWorkload.hpp" #include "RefWorkloadUtils.hpp" #include #include namespace armnn { template void RefPermuteWorkload::Execute() const { Execute(m_Data.m_Inputs, m_Data.m_Outputs); } template void RefPermuteWorkload::ExecuteAsync(WorkingMemDescriptor &workingMemDescriptor) { Execute(workingMemDescriptor.m_Inputs, workingMemDescriptor.m_Outputs); } template void RefPermuteWorkload::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::Permute(GetTensorInfo(dst).GetShape(), mappings, src->Map(), dst->Map(), sizeof(T)); } template class RefPermuteWorkload; template class RefPermuteWorkload; template class RefPermuteWorkload; template class RefPermuteWorkload; template class RefPermuteWorkload; template class RefPermuteWorkload; } //namespace armnn