xref: /aosp_15_r20/external/armnn/src/backends/cl/workloads/ClTransposeWorkload.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include "ClBaseWorkload.hpp"
9 #include <armnn/backends/WorkloadData.hpp>
10 
11 #include <armnn/TypesUtils.hpp>
12 #include <arm_compute/runtime/CL/functions/CLPermute.h>
13 
14 #include <string>
15 
16 namespace armnn
17 {
18 
19 arm_compute::Status ClTransposeWorkloadValidate(const TensorInfo& input,
20                                                 const TensorInfo& output,
21                                                 const TransposeDescriptor& descriptor);
22 
23 class ClTransposeWorkload : public ClBaseWorkload<TransposeQueueDescriptor>
24 {
25 public:
GetName()26     static const std::string& GetName()
27     {
28         static const std::string name = std::string("ClTransposeWorkload");
29         return name;
30     }
31 
32     ClTransposeWorkload(const TransposeQueueDescriptor& descriptor,
33                         const WorkloadInfo& info,
34                         const arm_compute::CLCompileContext& clCompileContext);
35     void Execute() const override;
36 
37 private:
38     using BaseWorkload<TransposeQueueDescriptor>::m_Data;
39     mutable arm_compute::CLPermute m_PermuteFunction;
40 };
41 
42 } // namespace armnn
43