xref: /aosp_15_r20/external/armnn/src/backends/cl/workloads/ClPermuteWorkload.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 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 ClPermuteWorkloadValidate(const TensorInfo& input,
20                                               const TensorInfo& output,
21                                               const PermuteDescriptor& descriptor);
22 
23 class ClPermuteWorkload : public ClBaseWorkload<PermuteQueueDescriptor>
24 {
25 public:
GetName()26     static const std::string& GetName()
27     {
28         static const std::string name = std::string("ClPermuteWorkload");
29         return name;
30     }
31 
32     ClPermuteWorkload(const PermuteQueueDescriptor& descriptor,
33                       const WorkloadInfo& info,
34                       const arm_compute::CLCompileContext& clCompileContext);
35     void Execute() const override;
36 
37 private:
38     using BaseWorkload<PermuteQueueDescriptor>::m_Data;
39     mutable arm_compute::CLPermute m_PermuteFunction;
40 };
41 
42 } // namespace armnn
43