aboutsummaryrefslogtreecommitdiff
path: root/src/core/CL/kernels/CLMinMaxLocationKernel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/CL/kernels/CLMinMaxLocationKernel.cpp')
-rw-r--r--src/core/CL/kernels/CLMinMaxLocationKernel.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/core/CL/kernels/CLMinMaxLocationKernel.cpp b/src/core/CL/kernels/CLMinMaxLocationKernel.cpp
index 3cead37cd8..77c945bed1 100644
--- a/src/core/CL/kernels/CLMinMaxLocationKernel.cpp
+++ b/src/core/CL/kernels/CLMinMaxLocationKernel.cpp
@@ -62,6 +62,11 @@ CLMinMaxKernel::CLMinMaxKernel()
void CLMinMaxKernel::configure(const ICLImage *input, cl::Buffer *min_max)
{
+ configure(CLKernelLibrary::get().get_compile_context(), input, min_max);
+}
+
+void CLMinMaxKernel::configure(CLCompileContext &compile_context, const ICLImage *input, cl::Buffer *min_max)
+{
ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::U8, DataType::S16, DataType::F32);
ARM_COMPUTE_ERROR_ON_TENSOR_NOT_2D(input);
ARM_COMPUTE_ERROR_ON(min_max == nullptr);
@@ -109,7 +114,7 @@ void CLMinMaxKernel::configure(const ICLImage *input, cl::Buffer *min_max)
}
// Create kernel
- _kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("minmax", build_opts));
+ _kernel = create_kernel(compile_context, "minmax", build_opts);
// Set fixed arguments
unsigned int idx = num_arguments_per_2D_tensor(); //Skip the input and output parameters
@@ -169,6 +174,12 @@ CLMinMaxLocationKernel::CLMinMaxLocationKernel()
void CLMinMaxLocationKernel::configure(const ICLImage *input, cl::Buffer *min_max, cl::Buffer *min_max_count, ICLCoordinates2DArray *min_loc, ICLCoordinates2DArray *max_loc)
{
+ configure(CLKernelLibrary::get().get_compile_context(), input, min_max, min_max_count, min_loc, max_loc);
+}
+
+void CLMinMaxLocationKernel::configure(CLCompileContext &compile_context, const ICLImage *input, cl::Buffer *min_max, cl::Buffer *min_max_count, ICLCoordinates2DArray *min_loc,
+ ICLCoordinates2DArray *max_loc)
+{
ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::U8, DataType::S16, DataType::F32);
ARM_COMPUTE_ERROR_ON_TENSOR_NOT_2D(input);
ARM_COMPUTE_ERROR_ON(min_max == nullptr);
@@ -189,7 +200,7 @@ void CLMinMaxLocationKernel::configure(const ICLImage *input, cl::Buffer *min_ma
}
// Create kernel
- _kernel = static_cast<cl::Kernel>(CLKernelLibrary::get().create_kernel("minmaxloc", build_opts));
+ _kernel = create_kernel(compile_context, "minmaxloc", build_opts);
// Set static arguments
unsigned int idx = num_arguments_per_2D_tensor(); //Skip the input and output parameters