From aa51a5ba9a3f05be08b94859b53c398edee5d2e3 Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Sun, 22 Nov 2020 00:49:42 +0000 Subject: COMPMID-3870: Create ActivationLayer SVE/SVE2 Adds support for ActivationLayer for SVE and SVE2. Datatypes supported: *FP32 *FP16 *QASYMM8 *QASYMM8_SIGNED *QSYMM16 Change-Id: Ia3583891795cda4ca2f9fa27c440731a5c27710d Signed-off-by: Michalis Spyrou Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4566 Tested-by: Arm Jenkins Reviewed-by: Georgios Pinitas Comments-Addressed: Arm Jenkins --- src/core/common/Registrars.h | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'src/core/common/Registrars.h') diff --git a/src/core/common/Registrars.h b/src/core/common/Registrars.h index dcea3e8d38..649fe468a3 100644 --- a/src/core/common/Registrars.h +++ b/src/core/common/Registrars.h @@ -24,34 +24,63 @@ #ifndef SRC_CORE_COMMON_REGISTRARS_H #define SRC_CORE_COMMON_REGISTRARS_H -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) +#if defined(ENABLE_FP16_KERNELS) + +#if defined(__ARM_FEATURE_SVE) +#define REGISTER_FP16_SVE(func_name) &(func_name) +#else /* !defined(__ARM_FEATURE_SVE) */ +#define REGISTER_FP16_SVE(func_name) nullptr +#endif /* defined(__ARM_FEATURE_SVE) */ + +#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) #define REGISTER_FP16_NEON(func_name) &(func_name) -#else /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) */ +#else /* !defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) */ +#define REGISTER_FP16_NEON(func_name) nullptr +#endif /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) */ + +#else /* !defined(ENABLE_FP16_KERNELS) */ #define REGISTER_FP16_NEON(func_name) nullptr +#define REGISTER_FP16_SVE(func_name) nullptr #endif /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) */ #if defined(ENABLE_FP32_KERNELS) +#if defined(__ARM_FEATURE_SVE) +#define REGISTER_FP32_SVE(func_name) &(func_name) +#endif /* defined(__ARM_FEATURE_SVE) */ #define REGISTER_FP32_NEON(func_name) &(func_name) #else /* defined(ENABLE_FP32_KERNELS) */ #define REGISTER_FP32_NEON(func_name) nullptr +#define REGISTER_FP32_SVE(func_name) nullptr #endif /* defined(ENABLE_FP32_KERNELS) */ #if defined(ENABLE_QASYMM8_SIGNED_KERNELS) +#if defined(__ARM_FEATURE_SVE) +#define REGISTER_QASYMM8_SIGNED_SVE(func_name) &(func_name) +#endif /* defined(__ARM_FEATURE_SVE) */ #define REGISTER_QASYMM8_SIGNED_NEON(func_name) &(func_name) #else /* defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ #define REGISTER_QASYMM8_SIGNED_NEON(func_name) nullptr +#define REGISTER_QASYMM8_SIGNED_SVE(func_name) nullptr #endif /* defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ #if defined(ENABLE_QASYMM8_KERNELS) +#if defined(__ARM_FEATURE_SVE) +#define REGISTER_QASYMM8_SVE(func_name) &(func_name) +#endif /* defined(__ARM_FEATURE_SVE) */ #define REGISTER_QASYMM8_NEON(func_name) &(func_name) #else /* defined(ENABLE_QASYMM8_KERNELS) */ #define REGISTER_QASYMM8_NEON(func_name) nullptr +#define REGISTER_QASYMM8_SVE(func_name) nullptr #endif /* defined(ENABLE_QASYMM8_KERNELS) */ #if defined(ENABLE_QSYMM16_KERNELS) +#if defined(__ARM_FEATURE_SVE) +#define REGISTER_QSYMM16_SVE(func_name) &(func_name) +#endif /* defined(__ARM_FEATURE_SVE) */ #define REGISTER_QSYMM16_NEON(func_name) &(func_name) #else /* defined(ENABLE_QSYMM16_KERNELS) */ #define REGISTER_QSYMM16_NEON(func_name) nullptr +#define REGISTER_QSYMM16_SVE(func_name) nullptr #endif /* defined(ENABLE_QSYMM16_KERNELS) */ #endif /* SRC_CORE_COMMON_REGISTRARS_H */ -- cgit v1.2.1