blob: eaeeebe55fb4865d5977447da9d4251479f23562 [file] [log] [blame]
Matthew Bentham29cadb32018-10-01 17:22:32 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Colm Donelan0c479742021-12-10 12:43:54 +00008#include <armnn/backends/Workload.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
Matthew Bentham29cadb32018-10-01 17:22:32 +010023class ClSplitterWorkload : public BaseWorkload<SplitterQueueDescriptor>
24{
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