blob: 530d3c9145e35de25c21a81dfb86cdcca4bbb491 [file] [log] [blame]
Matthew Bentham29cadb32018-10-01 17:22:32 +01001//
Teresa Charlin588cbdf2022-01-19 15:55:37 +00002// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
Matthew Bentham29cadb32018-10-01 17:22:32 +01003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Teresa Charlin588cbdf2022-01-19 15:55:37 +00008#include "ClBaseWorkload.hpp"
Matthew Bentham29cadb32018-10-01 17:22:32 +01009
Matthew Bentham9b3e7382020-02-05 21:39:55 +000010#include <arm_compute/core/Error.h>
11#include <arm_compute/runtime/IFunction.h>
Sadik Armagane9444752020-12-02 11:28:58 +000012#include <arm_compute/runtime/CL/functions/CLSplit.h>
Narumol Prangnawarat74135832019-05-23 15:07:33 +010013
14#include <functional>
15
Matthew Bentham29cadb32018-10-01 17:22:32 +010016namespace armnn
17{
18
Narumol Prangnawarat74135832019-05-23 15:07:33 +010019arm_compute::Status ClSplitterWorkloadValidate(const TensorInfo& input,
20 const std::vector<std::reference_wrapper<TensorInfo>>& outputs,
21 unsigned int splitAxis);
22
Teresa Charlin588cbdf2022-01-19 15:55:37 +000023class ClSplitterWorkload : public ClBaseWorkload<SplitterQueueDescriptor>
Matthew Bentham29cadb32018-10-01 17:22:32 +010024{
25public:
Sadik Armagane9444752020-12-02 11:28:58 +000026 ClSplitterWorkload(const SplitterQueueDescriptor& descriptor,
27 const WorkloadInfo& info,
28 const arm_compute::CLCompileContext& clCompileContext);
Matthew Bentham29cadb32018-10-01 17:22:32 +010029
Narumol Prangnawarat74135832019-05-23 15:07:33 +010030 void Execute() const override;
31
32private:
Matthew Bentham9b3e7382020-02-05 21:39:55 +000033 std::unique_ptr<arm_compute::IFunction> m_Layer;
Matthew Bentham29cadb32018-10-01 17:22:32 +010034};
35
36} //namespace armnn