diff options
Diffstat (limited to 'arm_compute/runtime/CL/functions/CLActivationLayer.h')
-rw-r--r-- | arm_compute/runtime/CL/functions/CLActivationLayer.h | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/arm_compute/runtime/CL/functions/CLActivationLayer.h b/arm_compute/runtime/CL/functions/CLActivationLayer.h index fbb34e5fb9..e158efa093 100644 --- a/arm_compute/runtime/CL/functions/CLActivationLayer.h +++ b/arm_compute/runtime/CL/functions/CLActivationLayer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 ARM Limited. + * Copyright (c) 2016-2021, 2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -24,19 +24,22 @@ #ifndef ARM_COMPUTE_CLACTIVATIONLAYER_H #define ARM_COMPUTE_CLACTIVATIONLAYER_H -#include "arm_compute/runtime/CL/ICLSimpleFunction.h" - #include "arm_compute/core/Types.h" +#include "arm_compute/function_info/ActivationLayerInfo.h" +#include "arm_compute/runtime/CL/CLRuntimeContext.h" +#include "arm_compute/runtime/IFunction.h" namespace arm_compute { +class CLCompileContext; class ICLTensor; +class ITensorInfo; -/** Basic function to run @ref CLActivationLayerKernel +/** Basic function to run @ref opencl::kernels::ClActivationKernel * * @note The function simulates an activation layer with the specified activation function. */ -class CLActivationLayer : public ICLSimpleFunction +class CLActivationLayer : public IFunction { public: /** Constructor @@ -44,16 +47,31 @@ public: * @param[in] ctx Runtime context to be used by the function */ CLActivationLayer(CLRuntimeContext *ctx = nullptr); + /** Destructor */ + ~CLActivationLayer(); /** Prevent instances of this class from being copied (As this class contains pointers) */ CLActivationLayer(const CLActivationLayer &) = delete; /** Default move constructor */ - CLActivationLayer(CLActivationLayer &&) = default; + CLActivationLayer(CLActivationLayer &&); /** Prevent instances of this class from being copied (As this class contains pointers) */ CLActivationLayer &operator=(const CLActivationLayer &) = delete; /** Default move assignment operator */ - CLActivationLayer &operator=(CLActivationLayer &&) = default; + CLActivationLayer &operator=(CLActivationLayer &&); /** Set the input and output tensor. * + * Valid data layouts: + * - All + * + * Valid data type configurations: + * |src |dst | + * |:--------------|:--------------| + * |QASYMM8 |QASYMM8 | + * |QASYMM8_SIGNED |QASYMM8_SIGNED | + * |QSYMM16 |QSYMM16 | + * |F16 |F16 | + * |F32 |F32 | + * + * * @note If the output tensor is a nullptr or is equal to the input, the activation function will be performed in-place * * @param[in, out] input Source tensor. In case of @p output tensor = nullptr, this tensor will store the result @@ -72,7 +90,10 @@ public: * @param[out] output Destination tensor. Data type supported: same as @p input * @param[in] act_info Activation layer parameters. */ - void configure(const CLCompileContext &compile_context, ICLTensor *input, ICLTensor *output, ActivationLayerInfo act_info); + void configure(const CLCompileContext &compile_context, + ICLTensor *input, + ICLTensor *output, + ActivationLayerInfo act_info); /** Static function to check if given info will lead to a valid configuration of @ref CLActivationLayer * * @param[in] input Source tensor info. In case of @p output tensor info = nullptr, this tensor will store the result @@ -83,6 +104,13 @@ public: * @return a status */ static Status validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &act_info); + + // Inherited methods overridden: + void run() override; + +private: + struct Impl; + std::unique_ptr<Impl> _impl; }; } // namespace arm_compute #endif /* ARM_COMPUTE_CLACTIVATIONLAYER_H */ |