aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorgiuros01 <giuseppe.rossini@arm.com>2019-05-16 11:47:13 +0100
committerGiuseppe Rossini <giuseppe.rossini@arm.com>2019-05-21 11:14:06 +0000
commitf24411ffc842970609a1fb6ba2f9527cfb681dbd (patch)
treece906a524722f37edf22ec257d0f62bb04cb3546 /src/core
parent2ef70cf813a20f12ad11900892c374edb9fa6ee4 (diff)
downloadComputeLibrary-f24411ffc842970609a1fb6ba2f9527cfb681dbd.tar.gz
COMPMID-2255: Implement ABS operator for CL
Change-Id: I8867953f8ae84a77f126aedd32b2f98c062905b1 Signed-off-by: giuros01 <giuseppe.rossini@arm.com> Reviewed-on: https://review.mlplatform.org/c/1151 Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/CL/cl_kernels/elementwise_unary.cl12
-rw-r--r--src/core/CL/kernels/CLElementWiseUnaryLayerKernel.cpp11
2 files changed, 14 insertions, 9 deletions
diff --git a/src/core/CL/cl_kernels/elementwise_unary.cl b/src/core/CL/cl_kernels/elementwise_unary.cl
index 14d6f5dbe1..89bffed16d 100644
--- a/src/core/CL/cl_kernels/elementwise_unary.cl
+++ b/src/core/CL/cl_kernels/elementwise_unary.cl
@@ -26,14 +26,16 @@
#if defined(DATA_TYPE) && defined(OPERATION)
-// Calculate Exponential
-#define exponential(input) exp(input)
+// Calculate exponential
+#define exp_op(input) exp(input)
// Calculate reverse square root
-#define inverse_sqrt(input) rsqrt(input)
+#define rsqrt_op(input) rsqrt(input)
// Calculate negative
-#define neg(input) (-input)
+#define neg_op(input) (-input)
// Calculate sine
-#define sine(input) sin(input)
+#define sin_op(input) sin(input)
+// Calculate abs for floating point values
+#define fabs_op(input) fabs(input)
/** Applies element wise unary operator in a tensor.
*
diff --git a/src/core/CL/kernels/CLElementWiseUnaryLayerKernel.cpp b/src/core/CL/kernels/CLElementWiseUnaryLayerKernel.cpp
index b6484ec737..15823b06ce 100644
--- a/src/core/CL/kernels/CLElementWiseUnaryLayerKernel.cpp
+++ b/src/core/CL/kernels/CLElementWiseUnaryLayerKernel.cpp
@@ -79,16 +79,19 @@ void CLElementWiseUnaryLayerKernel::configure(const ICLTensor *input, ICLTensor
switch(op)
{
case ElementWiseUnary::RSQRT:
- build_opts.add_option("-DOPERATION=inverse_sqrt");
+ build_opts.add_option("-DOPERATION=rsqrt_op");
break;
case ElementWiseUnary::EXP:
- build_opts.add_option("-DOPERATION=exponential");
+ build_opts.add_option("-DOPERATION=exp_op");
break;
case ElementWiseUnary::NEG:
- build_opts.add_option("-DOPERATION=neg");
+ build_opts.add_option("-DOPERATION=neg_op");
break;
case ElementWiseUnary::SIN:
- build_opts.add_option("-DOPERATION=sine");
+ build_opts.add_option("-DOPERATION=sin_op");
+ break;
+ case ElementWiseUnary::ABS:
+ build_opts.add_option("-DOPERATION=fabs_op");
break;
default:
ARM_COMPUTE_ERROR("Not implemented");