blob: ef5bd138c8d7aecdf4ffe367f6485158756e4627 [file] [log] [blame]
Mike Kelly56858022020-01-27 12:14:47 +00001//
Teresa Charlin2ea403d2023-06-19 12:06:19 +01002// Copyright © 2020-2023 Arm Ltd and Contributors. All rights reserved.
Mike Kelly56858022020-01-27 12:14:47 +00003// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
Teresa Charlin588cbdf2022-01-19 15:55:37 +00008#include "NeonBaseWorkload.hpp"
Teresa Charlin2ea403d2023-06-19 12:06:19 +01009#include "NeonWorkloadUtils.hpp"
Mike Kelly56858022020-01-27 12:14:47 +000010
11#include <arm_compute/runtime/NEON/functions/NEBatchToSpaceLayer.h>
Teresa Charlin2ea403d2023-06-19 12:06:19 +010012#include <arm_compute/runtime/NEON/functions/NEReshapeLayer.h>
Mike Kelly56858022020-01-27 12:14:47 +000013
14namespace armnn
15{
16
17arm_compute::Status NeonBatchToSpaceNdWorkloadValidate(const TensorInfo& input,
18 const TensorInfo& output,
19 const BatchToSpaceNdDescriptor& descriptor);
20
Teresa Charlin588cbdf2022-01-19 15:55:37 +000021class NeonBatchToSpaceNdWorkload : public NeonBaseWorkload<BatchToSpaceNdQueueDescriptor>
Mike Kelly56858022020-01-27 12:14:47 +000022{
23public:
Teresa Charlin588cbdf2022-01-19 15:55:37 +000024 using NeonBaseWorkload<BatchToSpaceNdQueueDescriptor>::NeonBaseWorkload;
Mike Kelly56858022020-01-27 12:14:47 +000025
26 NeonBatchToSpaceNdWorkload(const BatchToSpaceNdQueueDescriptor& descriptor, const WorkloadInfo& info);
27
28 virtual void Execute() const override;
29
30private:
31 mutable std::unique_ptr<arm_compute::NEBatchToSpaceLayer> m_Layer;
Teresa Charlin2ea403d2023-06-19 12:06:19 +010032 mutable std::unique_ptr<arm_compute::NEReshapeLayer> m_LayerReshapeInput;
33 mutable std::unique_ptr<arm_compute::NEReshapeLayer> m_LayerReshapeOutput;
34 arm_compute::Tensor m_ReshapeInputTensor;
35 arm_compute::Tensor m_ReshapeOutputTensor;
Mike Kelly56858022020-01-27 12:14:47 +000036};
37
38}