Decouple CpuElementwiseKernel
1- reorganize the folders struct according the new definition
2- separate between unary and binary implementations
3- decuple kernels - unary , binary op and binary comparision
Resolves COMPMID-4634
Change-Id: I0195846cc372e74a63c659069a4508de53a22110
Signed-off-by: Dana Zlotnik <dana.zlotnik@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6860
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp b/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
index 61bc64b..f3a82c2 100644
--- a/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
+++ b/src/cpu/kernels/CpuElementwiseUnaryKernel.cpp
@@ -31,8 +31,7 @@
#include "src/core/common/Registrars.h"
#include "src/core/helpers/AutoConfiguration.h"
#include "src/core/helpers/WindowHelpers.h"
-#include "src/cpu/kernels/elementwise/neon/elementwise_unary_list.h"
-#include "src/cpu/kernels/elementwise/sve/elementwise_unary_list.h"
+#include "src/cpu/kernels/elementwise_unary/list.h"
#include "support/ToolchainSupport.h"
namespace arm_compute
@@ -52,7 +51,7 @@
{
return data.dt == DataType::F32 && data.isa.sve;
},
- REGISTER_FP32_SVE(arm_compute::cpu::elementwise_sve_op<float>)
+ REGISTER_FP32_SVE(sve_fp32_elementwise_unary)
},
{
"sve_fp16_elementwise_unary",
@@ -60,31 +59,31 @@
{
return (data.dt == DataType::F16) && data.isa.sve;
},
- REGISTER_FP16_SVE(arm_compute::cpu::elementwise_sve_op<__fp16>),
+ REGISTER_FP16_SVE(sve_fp16_elementwise_unary),
},
{
"sve_s32_elementwise_unary",
[](const DataTypeISASelectorData & data) { return data.dt == DataType::S32 && data.isa.sve; },
- REGISTER_INTEGER_SVE(arm_compute::cpu::elementwise_sve_op<int32_t>),
+ REGISTER_INTEGER_SVE(sve_s32_elementwise_unary),
},
#endif // defined(ARM_COMPUTE_ENABLE_SVE)
#if defined(ARM_COMPUTE_ENABLE_NEON)
{
"neon_fp32_elementwise_unary",
[](const DataTypeISASelectorData & data) { return data.dt == DataType::F32; },
- REGISTER_FP32_NEON(arm_compute::cpu::elementwise_op<float>),
+ REGISTER_FP32_NEON(neon_fp32_elementwise_unary),
},
#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
{
"neon_fp16_elementwise_unary",
[](const DataTypeISASelectorData & data) { return data.dt == DataType::F16 && data.isa.fp16; },
- REGISTER_FP32_NEON(arm_compute::cpu::elementwise_op<__fp16>),
+ REGISTER_FP32_NEON(neon_fp16_elementwise_unary),
},
#endif // defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
{
"neon_s32_elementwise_unary",
[](const DataTypeISASelectorData & data) { return data.dt == DataType::S32; },
- REGISTER_INTEGER_NEON(arm_compute::cpu::elementwise_op<int32_t>),
+ REGISTER_INTEGER_NEON(neon_s32_elementwise_unary),
},
#endif // defined(ARM_COMPUTE_ENABLE_NEON)
};