diff options
author | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-03-15 14:05:06 +0000 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2023-03-29 14:03:30 +0000 |
commit | fd472f05dc73005a89a5e6275940ab5c9a609485 (patch) | |
tree | 4a00f42f64f4bea72c489961aaa376665d324c60 /src/cpu/kernels/elementwise_unary/list.h | |
parent | 5a7d1571a2de24eefc6f1d8d22deeef9f47521ee (diff) | |
download | ComputeLibrary-fd472f05dc73005a89a5e6275940ab5c9a609485.tar.gz |
Add quantized support for unary elementwise in CPU
* Add quantized unary elementwise in CPU using LUT.
* Widen the input data range of the test suite.
- Fix CPU exponential function overflow/underflow range.
- Fix saturation issue of CL round operator.
Resolves: COMPMID-5763
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: I41445de2b4a33ec6b01e0ab701516c240c852d0b
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9367
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/cpu/kernels/elementwise_unary/list.h')
-rw-r--r-- | src/cpu/kernels/elementwise_unary/list.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cpu/kernels/elementwise_unary/list.h b/src/cpu/kernels/elementwise_unary/list.h index 2a41b74c51..04c3bb6bcb 100644 --- a/src/cpu/kernels/elementwise_unary/list.h +++ b/src/cpu/kernels/elementwise_unary/list.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Arm Limited. + * Copyright (c) 2022-2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -32,17 +32,19 @@ namespace arm_compute namespace cpu { #define DECLARE_ELEMETWISE_UNARY_KERNEL(func_name) \ - void func_name(const ITensor *in, ITensor *out, const Window &window, ElementWiseUnary op) + void func_name(const ITensor *in, ITensor *out, const Window &window, ElementWiseUnary op, const uint8_t *lut) DECLARE_ELEMETWISE_UNARY_KERNEL(sve_fp32_elementwise_unary); DECLARE_ELEMETWISE_UNARY_KERNEL(sve_fp16_elementwise_unary); DECLARE_ELEMETWISE_UNARY_KERNEL(sve_s32_elementwise_unary); +DECLARE_ELEMETWISE_UNARY_KERNEL(sve_q8_elementwise_unary); DECLARE_ELEMETWISE_UNARY_KERNEL(neon_fp32_elementwise_unary); DECLARE_ELEMETWISE_UNARY_KERNEL(neon_fp16_elementwise_unary); DECLARE_ELEMETWISE_UNARY_KERNEL(neon_s32_elementwise_unary); +DECLARE_ELEMETWISE_UNARY_KERNEL(neon_q8_elementwise_unary); #undef DECLARE_ELEMETWISE_UNARY_KERNEL } // namespace cpu } // namespace arm_compute -#endif // SRC_CORE_KERNELS_ELEMETWISE_UNARY_LIST_H
\ No newline at end of file +#endif // SRC_CORE_KERNELS_ELEMETWISE_UNARY_LIST_H |