aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-01-08 17:37:12 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:43:10 +0000
commit5518671926c2c493e023a2e0d78b4aef4cb0dcec (patch)
tree3f2a7c39cc037fdb055c202ee7833d616f77563f /arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h
parent1ff480b9537b19d0226e54d9f0027486a3465bbb (diff)
downloadComputeLibrary-5518671926c2c493e023a2e0d78b4aef4cb0dcec.tar.gz
COMPMID-785: Add QASYMM8 support for pooling layer
Adds generic pooling case for QASYMM8 Change-Id: I37d38a92ca61651e915fbbbb6da88e180390b4ab Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/115439 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h')
-rw-r--r--arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h28
1 files changed, 24 insertions, 4 deletions
diff --git a/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h b/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h
index 87d14e5f91..19c4656679 100644
--- a/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h
+++ b/arm_compute/core/NEON/kernels/NEPoolingLayerKernel.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -50,7 +50,7 @@ public:
*
* @note QS8, QS16 and F16 are supported for pool sizes 2 and 3 only
*
- * @param[in] input Source tensor. Data types supported: QS8/QS16/F16/F32.
+ * @param[in] input Source tensor. Data types supported: QS8/QASYMM8/QS16/F16/F32.
* @param[out] output Destination tensor. Data types supported: Same as @p input.
* @param[in] pool_info Contains pooling operation information described in @ref PoolingLayerInfo.
*/
@@ -59,7 +59,7 @@ public:
*
* @note QS8, QS16 and F16 are supported for pool sizes 2 and 3 only
*
- * @param[in] input Source tensor. Data types supported: QS8/QS16/F16/F32.
+ * @param[in] input Source tensor. Data types supported: QS8/QASYMM8/QS16/F16/F32.
* @param[in] output Destination tensor. Data types supported: Same as @p input.
* @param[in] pool_info Contains pooling operation information described in @ref PoolingLayerInfo.
*
@@ -86,7 +86,6 @@ private:
*/
template <PoolingType pooling_type, bool exclude_padding = false>
void pooling2_f16(const Window &window_input, const Window &window);
-
/** Function to perform 2x2 pooling for 8bit fixed point.
*
* @param[in] window_input Input region on which to execute the kernel.
@@ -94,6 +93,13 @@ private:
*/
template <PoolingType pooling_type>
void pooling2_q8(const Window &window_input, const Window &window);
+ /** Function to perform 2x2 pooling for 8bit asymmetric fixed point.
+ *
+ * @param[in] window_input Input region on which to execute the kernel.
+ * @param[in] window Output region on which to execute the kernel.
+ */
+ template <PoolingType pooling_type, bool exclude_padding = false>
+ void pooling2_qasymm8(const Window &window_input, const Window &window);
/** Function to perform 2x2 pooling for 16bit fixed point.
*
* @param[in] window_input Input region on which to execute the kernel.
@@ -122,6 +128,13 @@ private:
*/
template <PoolingType pooling_type>
void pooling3_q8(const Window &window_input, const Window &window);
+ /** Function to perform 3x3 pooling for 8bit quantized fixed point.
+ *
+ * @param[in] window_input Input region on which to execute the kernel.
+ * @param[in] window Output region on which to execute the kernel.
+ */
+ template <PoolingType pooling_type, bool exclude_padding = false>
+ void pooling3_qasymm8(const Window &window_input, const Window &window);
/** Function to perform 3x3 pooling for 16bit fixed point.
*
* @param[in] window_input Input region on which to execute the kernel.
@@ -142,6 +155,13 @@ private:
* @param[in] window Output region on which to execute the kernel.
*/
template <PoolingType pooling_type, bool exclude_padding = false>
+ void poolingN_qasymm8(const Window &window_input, const Window &window);
+ /** Function to perform NxN pooling.
+ *
+ * @param[in] window_input Input region on which to execute the kernel.
+ * @param[in] window Output region on which to execute the kernel.
+ */
+ template <PoolingType pooling_type, bool exclude_padding = false>
void poolingN_f32(const Window &window_input, const Window &window);
/** Common signature for all the specialised Pooling functions
*