From 7317e393de848cb20dd326a45a9efb18a3ee7701 Mon Sep 17 00:00:00 2001 From: Michalis Spyrou Date: Fri, 17 Jan 2020 11:27:49 +0000 Subject: COMPMID-2941 Add QAsymm8 and S32 support for ArgMinMax to CL Select operation does not work with any combination of datatypes. Added a new OpenCL build option, DATA_TYPE_SELECT, in oder to specify the select result. Change-Id: I5c73c2a6b1d121288b7f6edba3e0cb1104636844 Signed-off-by: Michalis Spyrou Reviewed-on: https://review.mlplatform.org/c/2601 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- arm_compute/core/CL/CLHelpers.h | 10 +++++++++- arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'arm_compute') diff --git a/arm_compute/core/CL/CLHelpers.h b/arm_compute/core/CL/CLHelpers.h index 4c9cfff2bf..4b9ca4d253 100644 --- a/arm_compute/core/CL/CLHelpers.h +++ b/arm_compute/core/CL/CLHelpers.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2019 ARM Limited. + * Copyright (c) 2016-2020 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -66,6 +66,14 @@ std::string get_cl_promoted_type_from_data_type(const DataType &dt); */ std::string get_cl_unsigned_type_from_element_size(size_t element_size); +/** Translates the element size to an signed integer data type + * + * @param[in] element_size Size in bytes of an element. + * + * @return The string specifying the OpenCL type to be used. + */ +std::string get_cl_signed_type_from_element_size(size_t element_size); + /** Translates a tensor data type to the appropriate OpenCL select type. * * @param[in] dt @ref DataType to be translated to OpenCL select type. diff --git a/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h b/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h index 21cded0417..a26fcfda56 100644 --- a/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h +++ b/arm_compute/runtime/CL/functions/CLArgMinMaxLayer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 ARM Limited. + * Copyright (c) 2018-2020 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -55,7 +55,7 @@ public: CLArgMinMaxLayer(std::shared_ptr memory_manager = nullptr); /** Set the input and output tensors. * - * @param[in] input Input source tensor. Data types supported: F16/F32. + * @param[in] input Input source tensor. Data types supported: QASYMM8/F16/F32. * @param[in] axis Axis to find max/min index. * @param[out] output Output source tensor. Data types supported: U32/S32. * @param[in] op Reduction operation to perform. Operations supported: ARG_IDX_MAX, ARG_IDX_MIN @@ -63,7 +63,7 @@ public: void configure(const ICLTensor *input, int axis, ICLTensor *output, const ReductionOperation &op); /** Static function to check if given info will lead to a valid configuration of @ref CLArgMinMaxLayer * - * @param[in] input Input source tensor info. Data types supported: F16/F32. + * @param[in] input Input source tensor info. Data types supported: QASYMM8/F16/F32. * @param[in] axis Axis to find max/min index. * @param[in] output Output source tensor info. Data types supported: U32/S32. * @param[in] op Reduction operation to perform. Operations supported: ARG_IDX_MAX, ARG_IDX_MIN -- cgit v1.2.1