From f8f0442e9a6105be0e32f4defec5fbc10248ea6e Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Fri, 8 Jan 2021 17:25:55 +0000 Subject: Make CpuActivation stateless - Rename NEActivationLayer to CpuActivation - Add member function to generate execution window Partially Resolves: COMPMID-3992 Signed-off-by: Georgios Pinitas Change-Id: I4e1ae15cf456b860d3080b2fedc4dbcce7d1bb79 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4791 Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins Reviewed-by: Michalis Spyrou --- src/runtime/NEON/functions/NEActivationLayer.cpp | 47 ++++++------------------ 1 file changed, 12 insertions(+), 35 deletions(-) (limited to 'src/runtime/NEON/functions/NEActivationLayer.cpp') diff --git a/src/runtime/NEON/functions/NEActivationLayer.cpp b/src/runtime/NEON/functions/NEActivationLayer.cpp index 27f01f67ce..2b5c51fa5a 100644 --- a/src/runtime/NEON/functions/NEActivationLayer.cpp +++ b/src/runtime/NEON/functions/NEActivationLayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. + * Copyright (c) 2017-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -23,37 +23,17 @@ */ #include "arm_compute/runtime/NEON/functions/NEActivationLayer.h" -#include "arm_compute/core/Error.h" -#include "arm_compute/core/experimental/Types.h" -#include "arm_compute/runtime/IRuntimeContext.h" -#include "arm_compute/runtime/Tensor.h" -#include "src/core/NEON/kernels/NEActivationLayerKernel.h" +#include "arm_compute/core/Validate.h" +#include "src/runtime/cpu/operators/CpuActivation.h" namespace arm_compute { -namespace experimental -{ -NEActivationLayer::~NEActivationLayer() = default; - -void NEActivationLayer::configure(const ITensorInfo *input, ITensorInfo *output, const ActivationLayerInfo &activation_info) -{ - auto k = std::make_unique(); - k->configure(input, output, activation_info); - _kernel = std::move(k); -} - -Status NEActivationLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &activation_info) -{ - return NEActivationLayerKernel::validate(input, output, activation_info); -} -} // namespace experimental - struct NEActivationLayer::Impl { - const ITensor *src{ nullptr }; - ITensor *dst{ nullptr }; - IRuntimeContext *ctx{ nullptr }; - std::unique_ptr op{ nullptr }; + const ITensor *src{ nullptr }; + ITensor *dst{ nullptr }; + IRuntimeContext *ctx{ nullptr }; + std::unique_ptr op{ nullptr }; }; NEActivationLayer::NEActivationLayer(IRuntimeContext *ctx) @@ -61,27 +41,24 @@ NEActivationLayer::NEActivationLayer(IRuntimeContext *ctx) { _impl->ctx = ctx; } - NEActivationLayer::NEActivationLayer(NEActivationLayer &&) = default; - NEActivationLayer &NEActivationLayer::operator=(NEActivationLayer &&) = default; - -NEActivationLayer::~NEActivationLayer() = default; +NEActivationLayer::~NEActivationLayer() = default; void NEActivationLayer::configure(ITensor *input, ITensor *output, ActivationLayerInfo activation_info) { - ARM_COMPUTE_ERROR_ON_NULLPTR(input); - _impl->src = input; _impl->dst = output == nullptr ? input : output; - _impl->op = std::make_unique(); + ARM_COMPUTE_ERROR_ON_NULLPTR(_impl->src, _impl->dst); + + _impl->op = std::make_unique(); _impl->op->configure(_impl->src->info(), _impl->dst->info(), activation_info); } Status NEActivationLayer::validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &act_info) { - return experimental::NEActivationLayer::validate(input, output, act_info); + return cpu::CpuActivation::validate(input, output, act_info); } void NEActivationLayer::run() -- cgit v1.2.1