1 // 2 // Copyright © 2022 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #include "RefBaseWorkload.hpp" 9 10 #include <armnn/TypesUtils.hpp> 11 12 namespace armnn 13 { 14 15 template <armnn::DataType DataType> 16 class RefTransposeWorkload : public TypedWorkload<TransposeQueueDescriptor, DataType> 17 { 18 public: GetName()19 static const std::string& GetName() 20 { 21 static const std::string name = std::string("RefTranspose") + GetDataTypeName(DataType) + "Workload"; 22 return name; 23 } 24 25 using TypedWorkload<TransposeQueueDescriptor, DataType>::m_Data; 26 using TypedWorkload<TransposeQueueDescriptor, DataType>::TypedWorkload; 27 void Execute() const override; 28 void ExecuteAsync(ExecutionData& executionData) override; 29 private: 30 void Execute(std::vector<ITensorHandle*> inputs, std::vector<ITensorHandle*> outputs) const; 31 }; 32 33 using RefTransposeBFloat16Workload = RefTransposeWorkload<DataType::BFloat16>; 34 using RefTransposeFloat16Workload = RefTransposeWorkload<DataType::Float16>; 35 using RefTransposeFloat32Workload = RefTransposeWorkload<DataType::Float32>; 36 using RefTransposeQAsymmS8Workload = RefTransposeWorkload<DataType::QAsymmS8>; 37 using RefTransposeQAsymm8Workload = RefTransposeWorkload<DataType::QAsymmU8>; 38 using RefTransposeQSymm16Workload = RefTransposeWorkload<DataType::QSymmS16>; 39 40 } //namespace armnn