aboutsummaryrefslogtreecommitdiff
path: root/arm_compute/runtime/CL/functions/CLRemap.h
diff options
context:
space:
mode:
authorFreddie Liardet <frederick.liardet@arm.com>2021-06-10 16:45:58 +0100
committerfrederick.liardet <frederick.liardet@arm.com>2021-06-22 12:39:24 +0000
commitef5aac6c1e119e8db16a33332b5551829f409786 (patch)
tree78b7d34c9da20e8c6e4393981ada8e1253f239b2 /arm_compute/runtime/CL/functions/CLRemap.h
parent8266ae50a7da14ce27592f89181287be81969fd0 (diff)
downloadComputeLibrary-ef5aac6c1e119e8db16a33332b5551829f409786.tar.gz
Add FP16 support to CLRemap
Add FP16 support to CLRemap when data layout is NHWC. Add relevant tests for FP16 and validation. Update NERemap function level to be consistent with CLRemap. Add depreciation notice for uint_8 only function level methods. Resolves: COMPMID-4335 Signed-off-by: Freddie Liardet <frederick.liardet@arm.com> Change-Id: If05f06801aef7a169b73ff1ebe760a42f11ca05c Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5816 Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'arm_compute/runtime/CL/functions/CLRemap.h')
-rw-r--r--arm_compute/runtime/CL/functions/CLRemap.h47
1 files changed, 43 insertions, 4 deletions
diff --git a/arm_compute/runtime/CL/functions/CLRemap.h b/arm_compute/runtime/CL/functions/CLRemap.h
index f69b045c9b..8322f7a8a9 100644
--- a/arm_compute/runtime/CL/functions/CLRemap.h
+++ b/arm_compute/runtime/CL/functions/CLRemap.h
@@ -24,6 +24,7 @@
#ifndef ARM_COMPUTE_CLREMAP_H
#define ARM_COMPUTE_CLREMAP_H
+#include "arm_compute/core/PixelValue.h"
#include "arm_compute/core/Types.h"
#include "arm_compute/runtime/CL/ICLSimpleFunction.h"
@@ -33,6 +34,7 @@ namespace arm_compute
{
class CLCompileContext;
class ICLTensor;
+class ITensorInfo;
/** Basic function to execute remap. This function calls the following OpenCL kernels:
*
@@ -51,8 +53,10 @@ public:
* Valid data type configurations:
* |src0 |src1 |src2 |dst |
* |:------|:------|:------|:------|
- * |U8 |F32 |F32 |U 8 |
+ * |U8 |F32 |F32 |U8 |
+ * |F16 |F32 |F32 |F16 |
*
+ * @param[in] compile_context The compile context to be used.
* @param[in,out] input Source tensor. Data types supported: U8. (Written to only for @p border_mode != UNDEFINED)
* @param[in] map_x Map for X coords. Data types supported: F32.
* @param[in] map_y Map for Y coords. Data types supported: F32.
@@ -61,23 +65,58 @@ public:
* @param[in] border_mode Border mode to use on the input tensor. Only CONSTANT and UNDEFINED are supported.
* @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT.
*
+ * @deprecated This function is deprecated and is intended to be removed in 22.02 release
+ *
+ */
+ ARM_COMPUTE_DEPRECATED_REL(22.02)
+ void configure(const CLCompileContext &compile_context, ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
+ InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
+
+ /** Initialise the function's sources, destination, interpolation policy and border mode.
+ *
+ * Similar to @ref CLRemap::configure(const CLCompileContext &compile_context, ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
+ InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value)
+ *
+ * @deprecated This function is deprecated and is intended to be removed in 22.02 release
+ *
*/
+ ARM_COMPUTE_DEPRECATED_REL(22.02)
void configure(ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
+
/** Initialise the function's sources, destination, interpolation policy and border mode.
*
* @param[in] compile_context The compile context to be used.
- * @param[in,out] input Source tensor. Data types supported: U8. (Written to only for @p border_mode != UNDEFINED)
+ * @param[in,out] input Source tensor. Data types supported: U8,(or F16 when layout is NHWC). (Written to only for @p border_mode != UNDEFINED)
* @param[in] map_x Map for X coords. Data types supported: F32.
* @param[in] map_y Map for Y coords. Data types supported: F32.
- * @param[out] output Output tensor. Data types supported: U8.
+ * @param[out] output Output tensor. Data types supported: Same as @p input.
* @param[in] policy Interpolation policy to use. Only NEAREST and BILINEAR are supported.
* @param[in] border_mode Border mode to use on the input tensor. Only CONSTANT and UNDEFINED are supported.
* @param[in] constant_border_value (Optional) Constant value to use for borders if border_mode is set to CONSTANT.
*
*/
void configure(const CLCompileContext &compile_context, ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
- InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value = 0);
+ InterpolationPolicy policy, BorderMode border_mode, PixelValue constant_border_value = PixelValue{});
+
+ /** Initialise the function's sources, destination, interpolation policy and border mode.
+ *
+ * Similar to @ref CLRemap::configure(const CLCompileContext &compile_context, ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
+ InterpolationPolicy policy, BorderMode border_mode, PixelValue constant_border_value)
+ *
+ */
+ void configure(ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
+ InterpolationPolicy policy, BorderMode border_mode, PixelValue constant_border_value = PixelValue{});
+
+ /** Checks if the kernel's input, output and border mode will lead to a valid configuration of @ref CLRemap
+ *
+ * Similar to @ref CLRemap::configure(const CLCompileContext &compile_context, ICLTensor *input, const ICLTensor *map_x, const ICLTensor *map_y, ICLTensor *output,
+ InterpolationPolicy policy, BorderMode border_mode, PixelValue constant_border_value)
+ *
+ * @return a Status
+ */
+ static Status validate(const ITensorInfo *input, const ITensorInfo *map_x, const ITensorInfo *map_y, const ITensorInfo *output,
+ const InterpolationPolicy policy, const BorderMode border_mode, PixelValue constant_border_value = PixelValue{});
};
}
#endif /*ARM_COMPUTE_CLREMAP_H */