From 6b3865ad038d60a126fe1f90df815a480527a29f Mon Sep 17 00:00:00 2001 From: morgolock Date: Wed, 4 Mar 2020 14:57:46 +0000 Subject: COMPMID-3080: Implement Hard-Swish activation in CL Change-Id: I5ed35a5e0fba09791e4371b1a74108a1fdfed900 Signed-off-by: morgolock Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2848 Reviewed-by: Sang-Hoon Park Reviewed-by: Giorgio Arena Tested-by: Arm Jenkins Comments-Addressed: Arm Jenkins --- src/core/CL/cl_kernels/activation_quant_helpers.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/core/CL/cl_kernels/activation_quant_helpers.h') diff --git a/src/core/CL/cl_kernels/activation_quant_helpers.h b/src/core/CL/cl_kernels/activation_quant_helpers.h index 0e4eb2b32e..7eaf082df3 100644 --- a/src/core/CL/cl_kernels/activation_quant_helpers.h +++ b/src/core/CL/cl_kernels/activation_quant_helpers.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019 ARM Limited. + * Copyright (c) 2019-2020 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -48,6 +48,11 @@ inline TYPE lu_brelu_op(TYPE x) { return min(max(x, (TYPE)B_VAL), (TYPE)A_VAL); } +// Hard Swish Activation +inline TYPE hard_swish_op(TYPE x) +{ + return (x * ((min(max((TYPE)(x + (TYPE)3.f), (TYPE)0.f), (TYPE)6.f)) * (TYPE)0.166666667f)); +} #define ACTIVATION_OP2(op, x) op##_op(x) #define ACTIVATION_OP(op, x) ACTIVATION_OP2(op, x) @@ -81,4 +86,4 @@ inline TYPE lu_brelu_op(TYPE x) ({ \ data = ACTIVATION_OP(act, data); \ }) -#endif /* defined(S1_VAL) && defined(S2_VAL) */ \ No newline at end of file +#endif /* defined(S1_VAL) && defined(S2_VAL) */ -- cgit v1.2.1