/**
* @brief Initialise the kernel's input, output and border mode.
* @param[in] input An input tensor. Data types supported: U8/QASYMM8/S32/F32.
- * @param[out] output The output tensor, Data types supported: same as @p input.
+ * @param[out] output The output tensor, Data types supported: S32.
* @param[in] axis Axis along which to reduce. It must be sorted and no duplicates.
+ * @param[in] op Arg operation to perform.
* return N/A
*/
void configure(const ICLTensor *input, ICLTensor *output, const uint32_t axis, ArgOperation op);
* @brief Static function to check if given info will lead to a valid configuration of @ref
* CLArgOperationKernel
* @param[in] input An input tensor info. Data types supported: U8/QASYMM8/S32/F32.
- * @param[in] output The output tensor info, Data types supported: same as @p input1.
+ * @param[in] output The output tensor info, Data types supported: S32.
* @param[in] axis Axis along which to reduce. It must be sorted and no duplicates.
- * Note: U8 requires both inputs to be U8.
+ * @param[in] op Arg operation to perform.
* @return a status
*/
static Status validate(const ITensorInfo *input, const ITensorInfo *output, const uint32_t axis,
/**
* @brief Initialise the kernel's inputs and outputs.
* @param[in] input Input tensor. Data types supported: U8/QASYMM8/S32/F32.
- * @param[out] output The result of arg operation. Data types supported: same as @p
- * input.
+ * @param[out] output The result of arg operation. Data types supported: S32.
* @param[in] axis Axis along which to reduce. It must be sorted and no duplicates.
+ * @param[in] op Arg operation to perform.
* @return N/A
*/
void configure(ICLTensor *input, ICLTensor *output, std::vector<uint32_t> axis, ArgOperation op);
* @brief Static function to check if given info will lead to a valid configuration
* @param[in] input Input tensor. Data types supported: U8/QASYMM8/S32/F32.
* @param[in] axis Axis along which to reduce. It must be sorted and no duplicates.
- * @param[out] output The result of arg operation. Data types supported: same as @p
- * input.
+ * @param[out] output The result of arg operation. Data types supported: S32.
+ * @param[in] op Arg operation to perform.
* @return a status
*/
static Status validate(const ITensorInfo *input, const std::vector<uint32_t> &axis,
* @attention Operation type(code) specifying which operation to perform should be passed as preprocessor argument using
* -DOP_CODE = number. e.g. -DOP_CODE=1
*
- * @param[in] input_ptr Pointer to the source image. Supported data types: U8/S8/U16/S16/F16/U32/S32/F32
+ * @param[in] input_ptr Pointer to the source image. Supported data types: U8/QASYMM8/S8/U16/S16/F16/U32/S32/F32
* @param[in] input_stride_x Stride of the source image in X dimension (in bytes)
* @param[in] input_step_x input_stride_x * number of elements along X processed per workitem(in bytes)
* @param[in] input_stride_y Stride of the source image in Y dimension (in bytes)
Status validate_arguments(const ITensorInfo *input, const ITensorInfo *output, const uint32_t axis,
ArgOperation /*op*/)
{
- ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(input, DataType::S32, DataType::F32, DataType::U8);
+ ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(input, DataType::S32, DataType::F32, DataType::U8,
+ DataType::QASYMM8);
ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(output, DataType::S32);
ARM_COMPUTE_RETURN_ERROR_ON_MSG(input->tensor_shape().num_dimensions() !=
// Set kernel build options
std::set<std::string> build_opts;
- build_opts.emplace("-DDATA_TYPE=" + get_cl_type_from_data_type(output_info->data_type()));
+ build_opts.emplace("-DDATA_TYPE=" + get_cl_type_from_data_type(input->info()->data_type()));
build_opts.emplace("-DDEPTH_OUT=" + support::cpp11::to_string(output_info->dimension(2)));
build_opts.emplace("-DOP_CODE=" + support::cpp11::to_string(op_code));
-GeneratedTests.argmax_ex_quant8*
GeneratedTests.logistic_quant8_1
GeneratedTests.logistic_quant8_2
GeneratedTests.lsh_projection