From 4c6bd514a8d424a29b776754f1b3426fa3a8c339 Mon Sep 17 00:00:00 2001 From: Manuel Bottini Date: Wed, 8 Apr 2020 10:15:51 +0100 Subject: COMPMID-3280: Make all ML primitives for CL use the new interface - Part 1 - Only CLKernels have been updated Change-Id: Ife55b847c2e39e712a186eb6ca452503d5b66937 Signed-off-by: Manuel Bottini Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3001 Reviewed-by: Michele Di Giorgio Reviewed-by: Michalis Spyrou Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins --- src/core/CL/kernels/CLLKTrackerKernel.cpp | 37 ++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'src/core/CL/kernels/CLLKTrackerKernel.cpp') diff --git a/src/core/CL/kernels/CLLKTrackerKernel.cpp b/src/core/CL/kernels/CLLKTrackerKernel.cpp index 68a210c115..3a7c1b5b9e 100644 --- a/src/core/CL/kernels/CLLKTrackerKernel.cpp +++ b/src/core/CL/kernels/CLLKTrackerKernel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 ARM Limited. + * Copyright (c) 2017-2020 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -41,6 +41,13 @@ using namespace arm_compute; void CLLKTrackerInitKernel::configure(const ICLKeyPointArray *old_points, const ICLKeyPointArray *new_points_estimates, ICLLKInternalKeypointArray *old_points_internal, ICLLKInternalKeypointArray *new_points_internal, bool use_initial_estimate, size_t level, size_t num_levels, float pyramid_scale) +{ + configure(CLKernelLibrary::get().get_compile_context(), old_points, new_points_estimates, old_points_internal, new_points_internal, use_initial_estimate, level, num_levels, pyramid_scale); +} + +void CLLKTrackerInitKernel::configure(CLCompileContext &compile_context, const ICLKeyPointArray *old_points, const ICLKeyPointArray *new_points_estimates, + ICLLKInternalKeypointArray *old_points_internal, ICLLKInternalKeypointArray *new_points_internal, + bool use_initial_estimate, size_t level, size_t num_levels, float pyramid_scale) { ARM_COMPUTE_ERROR_ON(old_points == nullptr); @@ -55,7 +62,7 @@ void CLLKTrackerInitKernel::configure(const ICLKeyPointArray *old_points, const { kernel_name += (use_initial_estimate) ? std::string("_max_initial_estimate") : std::string("_max"); } - _kernel = static_cast(CLKernelLibrary::get().create_kernel(kernel_name)); + _kernel = create_kernel(compile_context, kernel_name); // Set static kernel arguments unsigned int idx = 0; @@ -87,13 +94,18 @@ void CLLKTrackerInitKernel::run(const Window &window, cl::CommandQueue &queue) } void CLLKTrackerFinalizeKernel::configure(ICLLKInternalKeypointArray *new_points_internal, ICLKeyPointArray *new_points) +{ + configure(CLKernelLibrary::get().get_compile_context(), new_points_internal, new_points); +} + +void CLLKTrackerFinalizeKernel::configure(CLCompileContext &compile_context, ICLLKInternalKeypointArray *new_points_internal, ICLKeyPointArray *new_points) { ARM_COMPUTE_ERROR_ON(new_points_internal == nullptr); ARM_COMPUTE_ERROR_ON(new_points == nullptr); // Create kernel - _kernel = static_cast(CLKernelLibrary::get().create_kernel("finalize")); + _kernel = create_kernel(compile_context, "finalize"); // Set static kernel arguments unsigned int idx = 0; @@ -124,6 +136,14 @@ void CLLKTrackerStage0Kernel::configure(const ICLTensor *old_input, const ICLTen ICLLKInternalKeypointArray *old_points_internal, ICLLKInternalKeypointArray *new_points_internal, ICLCoefficientTableArray *coeff_table, ICLOldValArray *old_ival, size_t window_dimension, size_t level) +{ + configure(CLKernelLibrary::get().get_compile_context(), old_input, old_scharr_gx, old_scharr_gy, old_points_internal, new_points_internal, coeff_table, old_ival, window_dimension, level); +} + +void CLLKTrackerStage0Kernel::configure(CLCompileContext &compile_context, const ICLTensor *old_input, const ICLTensor *old_scharr_gx, const ICLTensor *old_scharr_gy, + ICLLKInternalKeypointArray *old_points_internal, ICLLKInternalKeypointArray *new_points_internal, + ICLCoefficientTableArray *coeff_table, ICLOldValArray *old_ival, + size_t window_dimension, size_t level) { ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(old_input, 1, DataType::U8); @@ -175,7 +195,7 @@ void CLLKTrackerStage0Kernel::configure(const ICLTensor *old_input, const ICLTen }; // Create kernel - _kernel = static_cast(CLKernelLibrary::get().create_kernel("lktracker_stage0")); + _kernel = create_kernel(compile_context, "lktracker_stage0"); // Set arguments unsigned int idx = 3 * num_arguments_per_2D_tensor(); @@ -212,6 +232,13 @@ CLLKTrackerStage1Kernel::CLLKTrackerStage1Kernel() void CLLKTrackerStage1Kernel::configure(const ICLTensor *new_input, ICLLKInternalKeypointArray *new_points_internal, ICLCoefficientTableArray *coeff_table, ICLOldValArray *old_ival, Termination termination, float epsilon, size_t num_iterations, size_t window_dimension, size_t level) +{ + configure(CLKernelLibrary::get().get_compile_context(), new_input, new_points_internal, coeff_table, old_ival, termination, epsilon, num_iterations, window_dimension, level); +} + +void CLLKTrackerStage1Kernel::configure(CLCompileContext &compile_context, const ICLTensor *new_input, ICLLKInternalKeypointArray *new_points_internal, ICLCoefficientTableArray *coeff_table, + ICLOldValArray *old_ival, + Termination termination, float epsilon, size_t num_iterations, size_t window_dimension, size_t level) { ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(new_input, 1, DataType::U8); @@ -257,7 +284,7 @@ void CLLKTrackerStage1Kernel::configure(const ICLTensor *new_input, ICLLKInterna const int term_epsilon = (termination == Termination::TERM_CRITERIA_EPSILON || termination == Termination::TERM_CRITERIA_BOTH) ? 1 : 0; // Create kernel - _kernel = static_cast(CLKernelLibrary::get().create_kernel("lktracker_stage1")); + _kernel = create_kernel(compile_context, "lktracker_stage1"); // Set static kernel arguments unsigned int idx = num_arguments_per_2D_tensor(); -- cgit v1.2.1