From 47370943471c98b5ed4c954b350b925d368a810e Mon Sep 17 00:00:00 2001 From: Viet-Hoa Do Date: Mon, 13 Nov 2023 17:20:45 +0000 Subject: Optimize CPU depth-to-space Resolves: COMPMID-6622 Signed-off-by: Viet-Hoa Do Change-Id: Ibac276618bdda125dcbb9c851c547f12739b15b4 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10749 Tested-by: Arm Jenkins Reviewed-by: Gunes Bayir Comments-Addressed: Arm Jenkins Benchmark: Arm Jenkins --- .../runtime/NEON/functions/NEDepthToSpaceLayer.h | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'arm_compute') diff --git a/arm_compute/runtime/NEON/functions/NEDepthToSpaceLayer.h b/arm_compute/runtime/NEON/functions/NEDepthToSpaceLayer.h index c7df29a704..d27369670e 100644 --- a/arm_compute/runtime/NEON/functions/NEDepthToSpaceLayer.h +++ b/arm_compute/runtime/NEON/functions/NEDepthToSpaceLayer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2021 Arm Limited. + * Copyright (c) 2019-2021, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -21,25 +21,27 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#ifndef ARM_COMPUTE_NEDEPTHTOSPACELAYER_H -#define ARM_COMPUTE_NEDEPTHTOSPACELAYER_H +#ifndef ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NEDEPTHTOSPACELAYER_H +#define ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NEDEPTHTOSPACELAYER_H #include "arm_compute/core/Types.h" #include "arm_compute/runtime/IFunction.h" -#include "arm_compute/runtime/NEON/INESimpleFunctionNoBorder.h" + +#include namespace arm_compute { // Forward declarations class ITensor; class ITensorInfo; +class NEDepthToSpaceLayerKernel; /** Basic function to run @ref NEDepthToSpaceLayerKernel. */ -class NEDepthToSpaceLayer : public INESimpleFunctionNoBorder +class NEDepthToSpaceLayer : public IFunction { public: /** Constructor */ - NEDepthToSpaceLayer() = default; + NEDepthToSpaceLayer(); /** Prevent instances of this class from being copied (As this class contains pointers) */ NEDepthToSpaceLayer(const NEDepthToSpaceLayer &) = delete; /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -49,7 +51,7 @@ public: /** Prevent instances of this class from being moved (As this class contains non movable objects) */ NEDepthToSpaceLayer &operator=(NEDepthToSpaceLayer &&) = delete; /** Default destructor */ - ~NEDepthToSpaceLayer() = default; + ~NEDepthToSpaceLayer(); /** Set the input and output tensors. * * Valid data layouts: @@ -75,6 +77,11 @@ public: * @return a status */ static Status validate(const ITensorInfo *input, const ITensorInfo *output, int32_t block_shape); + + void run() override; + +private: + std::unique_ptr _kernel; }; } // namespace arm_compute -#endif /* ARM_COMPUTE_NEDEPTHTOSPACELAYER_H */ +#endif // ACL_ARM_COMPUTE_RUNTIME_NEON_FUNCTIONS_NEDEPTHTOSPACELAYER_H -- cgit v1.2.1