aboutsummaryrefslogtreecommitdiff
path: root/arm_compute
diff options
context:
space:
mode:
authorPablo Marquez Tello <pablo.tello@arm.com>2023-07-12 14:29:58 +0100
committerPablo Marquez Tello <pablo.tello@arm.com>2023-07-13 15:43:57 +0000
commit205ba243309baaec4bccfc82229139978d1a354e (patch)
tree6f3f0cd00b969b77b89ce612d85a339c6644cc56 /arm_compute
parenta359ee9ff349448a744140b352444171efc29899 (diff)
downloadComputeLibrary-205ba243309baaec4bccfc82229139978d1a354e.tar.gz
Added S64/U64 support for the input in CLCast
* Partially resolves MLCE-1089 Change-Id: Ie3d2fc2f755ae99cdb17b57cc90bb3f99a1843e0 Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9909 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute')
-rw-r--r--arm_compute/core/Utils.h9
-rw-r--r--arm_compute/runtime/CL/functions/CLCast.h33
2 files changed, 15 insertions, 27 deletions
diff --git a/arm_compute/core/Utils.h b/arm_compute/core/Utils.h
index 188ae8cf5b..6fa983d24e 100644
--- a/arm_compute/core/Utils.h
+++ b/arm_compute/core/Utils.h
@@ -164,6 +164,9 @@ inline size_t element_size_from_data_type(DataType dt)
case DataType::S32:
case DataType::F32:
return 4;
+ case DataType::U64:
+ case DataType::S64:
+ return 8;
default:
ARM_COMPUTE_ERROR("Undefined element size for given data type");
return 0;
@@ -712,7 +715,7 @@ QuantizationInfo get_softmax_output_quantization_info(DataType input_type, bool
*
* @return The pair with minimum and maximum values
*/
-std::pair<int32_t, int32_t> get_quantized_activation_min_max(const ActivationLayerInfo& act_info, DataType data_type, UniformQuantizationInfo oq_info);
+std::pair<int32_t, int32_t> get_quantized_activation_min_max(const ActivationLayerInfo &act_info, DataType data_type, UniformQuantizationInfo oq_info);
/** Convert a tensor format into a string.
*
@@ -749,7 +752,7 @@ const std::string &string_from_data_type(DataType dt);
*
* @return The string describing the activation function.
*/
-const std::string &string_from_activation_func(const ActivationFunction& act);
+const std::string &string_from_activation_func(const ActivationFunction &act);
/** Translates a given interpolation policy to a string.
*
* @param[in] policy @ref InterpolationPolicy to be translated to string.
@@ -798,7 +801,7 @@ bool is_pool_3d_region_entirely_outside_input(const Pooling3dLayerInfo &info);
*
* @return True if padding is symmetric
*/
-inline bool is_symmetric(const Padding3D& info)
+inline bool is_symmetric(const Padding3D &info)
{
return ((info.left == info.right) && (info.top == info.bottom) && (info.front == info.back));
}
diff --git a/arm_compute/runtime/CL/functions/CLCast.h b/arm_compute/runtime/CL/functions/CLCast.h
index d2cea7a8a2..650cd11b9b 100644
--- a/arm_compute/runtime/CL/functions/CLCast.h
+++ b/arm_compute/runtime/CL/functions/CLCast.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2021 Arm Limited.
+ * Copyright (c) 2018-2021, 2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -61,43 +61,28 @@ public:
* |src |dst |
* |:--------------|:--------------------------------------|
* |U8 | S8, U16, S16, U32, S32, F16, F32 |
+ * |S8 | U8, U16, S16, U32, S32, F16, F32 |
* |U16 | U8, S8, S16, U32, S32, F16, F32 |
* |S16 | U8, S8, U16, U32, S32, F16, F32 |
* |U32 | U8, S8, U16, S16, S32, F16, F32 |
* |S32 | U8, S8, U16, S16, U32, F16, F32 |
- * |F16 | U8, S8, U16, S16, U32, F32 |
- * |F32 | U8, S8, U16, S16, U32, F16 |
+ * |U64 | U8, S8, U16, S16, U32, S32, F16, F32 |
+ * |S64 | U8, S8, U16, S16, U32, S32, F16, F32 |
+ * |F16 | U8, S8, U16, S16, S32, U32, F32 |
+ * |F32 | U8, S8, U16, S16, S32, U32, F16 |
*
* Input data type must be different than output data type.
*
- * @param[in] input The input tensor to convert. Data types supported: U8/S8/U16/S16/U32/S32/F16/F32.
+ * @param[in] input The input tensor to convert. Data types supported: U8/S8/U16/S16/U32/S32/U64/S64/F16/F32.
* @param[out] output The output tensor. Data types supported: U8/S8/U16/S16/U32/S32/F16/F32.
* @param[in] policy Conversion policy.
*/
void configure(const ICLTensor *input, ICLTensor *output, ConvertPolicy policy);
- /** Initialize the function's source, destination
- *
- * Input data type must be different than output data type.
- *
- * Valid conversions Input -> Output :
- *
- * - U8 -> S8, U16, S16, U32, S32, F16, F32
- * - U16 -> U8, S8, S16, U32, S32, F16, F32
- * - S16 -> U8, S8, U16, U32, S32, F16, F32
- * - U32 -> U8, S8, U16, S16, S32, F16, F32
- * - S32 -> U8, S8, U16, S16, U32, F16, F32
- * - F16 -> U8, S8, U16, S16, U32, F32
- * - F32 -> U8, S8, U16, S16, U32, F16
- *
- * @param[in] compile_context The compile context to be used.
- * @param[in] input The input tensor to convert. Data types supported: U8/S8/U16/S16/U32/S32/F16/F32.
- * @param[out] output The output tensor. Data types supported: U8/S8/U16/S16/U32/S32/F16/F32.
- * @param[in] policy Conversion policy.
- */
+ // Initialize the function's source, destination
void configure(const CLCompileContext &compile_context, const ICLTensor *input, ICLTensor *output, ConvertPolicy policy);
/** Static function to check if given info will lead to a valid configuration of @ref CLCast
*
- * @param[in] input Source tensor info. Data types supported: U8/S8/U16/S16/U32/S32/F16/F32.
+ * @param[in] input Source tensor info. Data types supported: U8/S8/U16/S16/U32/S32/U64/S64/F16/F32.
* @param[in] output Destination tensor info. Data type supported: U8/S8/U16/S16/U32/S32/F16/F32.
* @param[in] policy Conversion policy.
*