From 16789a14afc27c1a77c8ca1e3d04b79cda6c833b Mon Sep 17 00:00:00 2001 From: Pablo Marquez Tello Date: Mon, 25 Jul 2022 14:41:26 +0100 Subject: Compute Hard-Swish with a Lookup table for qasymm8_signed. * Resolves COMPMID-5211 Change-Id: I7cc72662bb1cf52bf112685639d3dbba33d1333f Signed-off-by: Pablo Marquez Tello Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7993 Comments-Addressed: Arm Jenkins Reviewed-by: Gunes Bayir Benchmark: Arm Jenkins Tested-by: Arm Jenkins --- arm_compute/core/QuantizationInfo.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'arm_compute/core/QuantizationInfo.h') diff --git a/arm_compute/core/QuantizationInfo.h b/arm_compute/core/QuantizationInfo.h index ed1025edc0..ddf1342e32 100644 --- a/arm_compute/core/QuantizationInfo.h +++ b/arm_compute/core/QuantizationInfo.h @@ -409,6 +409,16 @@ inline qasymm8_t qasymm8_hard_swish(qasymm8_t in, return tmp; } +inline qasymm8_signed_t qasymm8_signed_hard_swish(qasymm8_signed_t in, + const UniformQuantizationInfo &qi_in, + const UniformQuantizationInfo &qi_out) +{ + float tmp_f = dequantize_qasymm8_signed(in, qi_in); + tmp_f = tmp_f * ((std::min(std::max((tmp_f + 3), 0.0f), 6.0f)) * 0.166666667f); + const qasymm8_t tmp = quantize_qasymm8_signed(tmp_f, qi_out); + return tmp; +} + inline qasymm8_t qasymm8_leaky_relu(qasymm8_t in, const UniformQuantizationInfo &qi_in, const UniformQuantizationInfo &qi_out, -- cgit v1.2.1