diff options
author | Usama Arif <usama.arif@arm.com> | 2019-05-10 12:06:28 +0100 |
---|---|---|
committer | Usama Arif <usama.arif@arm.com> | 2019-05-13 09:01:24 +0000 |
commit | f6e475c9a092bc6e0fb53f484fbf2832183a9c44 (patch) | |
tree | a6a5f1cd6b48a8615fd942639d2b52c61d5c46be /arm_compute | |
parent | bcfd09a14a61bb8457555c61e7c5697b1f901ddb (diff) | |
download | ComputeLibrary-f6e475c9a092bc6e0fb53f484fbf2832183a9c44.tar.gz |
COMPMID-2268: Implement NEG for NEON.
Change-Id: I90c023dbea8ea12e9af677294ba576b2bfcc02a4
Signed-off-by: Usama Arif <usama.arif@arm.com>
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/184216
Tested-by: bsgcomp <bsgcomp@arm.com>
Comments-Addressed: bsgcomp <bsgcomp@arm.com>
Reviewed-by: Pablo Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1099
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Pablo Marquez <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r-- | arm_compute/core/NEON/kernels/NEElementwiseUnaryKernel.h | 2 | ||||
-rw-r--r-- | arm_compute/core/Types.h | 1 | ||||
-rw-r--r-- | arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h | 20 |
3 files changed, 22 insertions, 1 deletions
diff --git a/arm_compute/core/NEON/kernels/NEElementwiseUnaryKernel.h b/arm_compute/core/NEON/kernels/NEElementwiseUnaryKernel.h index f632b1a93a..2c019b52f0 100644 --- a/arm_compute/core/NEON/kernels/NEElementwiseUnaryKernel.h +++ b/arm_compute/core/NEON/kernels/NEElementwiseUnaryKernel.h @@ -88,7 +88,7 @@ public: protected: // Inherited methods overridden: - static Status validate_arguments(const ITensorInfo &input, const ITensorInfo &output); + static Status validate_arguments(ElementWiseUnary op, const ITensorInfo &input, const ITensorInfo &output); /** Function to use for the particular tensor types passed to configure() */ std::function<void(const ITensor *input, ITensor *output, const Window &window)> _function; diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h index a2dfbb7d82..544ebff410 100644 --- a/arm_compute/core/Types.h +++ b/arm_compute/core/Types.h @@ -578,6 +578,7 @@ enum class ElementWiseUnary { RSQRT, /**< Reverse square root */ EXP, /**< Exponential */ + NEG, /**< Negate */ }; /** The normalization type used for the normalization layer */ diff --git a/arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h b/arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h index 76827903fa..f4b7e89889 100644 --- a/arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h +++ b/arm_compute/runtime/NEON/functions/NEElementwiseUnaryLayer.h @@ -69,5 +69,25 @@ public: */ static Status validate(const ITensorInfo *input, const ITensorInfo *output); }; + +/** Basic function to negate an input tensor. */ +class NENegLayer : public INESimpleFunction +{ +public: + /** Initialize the function + * + * @param[in] input Input tensor. Data types supported: F16/F32/S32. + * @param[out] output Output tensor. Data types supported: same as @p input. + */ + void configure(const ITensor *input, ITensor *output); + /** Static function to check if given info will lead to a valid configuration of @ref NENegLayer + * + * @param[in] input First tensor input info. Data types supported: F16/F32/S32. + * @param[in] output Output tensor info. Data types supported: Same as @p input. + * + * @return a status + */ + static Status validate(const ITensorInfo *input, const ITensorInfo *output); +}; } // namespace arm_compute #endif /* __ARM_COMPUTE_NEELEMENTWISEUNARYLAYER_H__ */ |