From 63485cea64df16d76f37fb74be85e77497471fac Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Wed, 15 Nov 2017 16:04:20 +0000 Subject: COMPMID-685 Extend CLTuner support to other DL functions Change-Id: Ica97857c2145228e4a6088724681ec1c0a138133 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/95918 Reviewed-by: Anthony Barbier Reviewed-by: Gian Marco Iodice Tested-by: Kaizen --- src/core/CL/kernels/CLActivationLayerKernel.cpp | 8 ++++++++ src/core/CL/kernels/CLCol2ImKernel.cpp | 12 ++++++++++++ src/core/CL/kernels/CLNormalizationLayerKernel.cpp | 12 ++++++++++++ src/core/CL/kernels/CLPoolingLayerKernel.cpp | 8 ++++++++ src/core/CL/kernels/CLSoftmaxLayerKernel.cpp | 8 ++++++++ 5 files changed, 48 insertions(+) (limited to 'src/core') diff --git a/src/core/CL/kernels/CLActivationLayerKernel.cpp b/src/core/CL/kernels/CLActivationLayerKernel.cpp index adedebba53..41a74c3a96 100644 --- a/src/core/CL/kernels/CLActivationLayerKernel.cpp +++ b/src/core/CL/kernels/CLActivationLayerKernel.cpp @@ -151,6 +151,14 @@ void CLActivationLayerKernel::configure(ICLTensor *input, ICLTensor *output, Act } ICLKernel::configure(win); + + // Set config_id for enabling LWS tuning + _config_id = "activation_layer_"; + _config_id += lower_string(string_from_data_type(dt)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(1)); } Error CLActivationLayerKernel::validate(const ITensorInfo *input, const ITensorInfo *output, const ActivationLayerInfo &act_info) diff --git a/src/core/CL/kernels/CLCol2ImKernel.cpp b/src/core/CL/kernels/CLCol2ImKernel.cpp index c7884e3c15..9f266135f2 100644 --- a/src/core/CL/kernels/CLCol2ImKernel.cpp +++ b/src/core/CL/kernels/CLCol2ImKernel.cpp @@ -81,6 +81,18 @@ void CLCol2ImKernel::configure(const ICLTensor *input, ICLTensor *output, std::p output->info()->set_valid_region(ValidRegion(coord, output->info()->tensor_shape())); ICLKernel::configure(win); + + // Set config_id for enabling LWS tuning + _config_id = "col2im_"; + _config_id += lower_string(string_from_data_type(input->info()->data_type())); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(1)); + _config_id += "_"; + _config_id += support::cpp11::to_string(output->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(output->info()->dimension(1)); } void CLCol2ImKernel::run(const Window &window, cl::CommandQueue &queue) diff --git a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp index 6481ad0b2a..1a7e38fab4 100644 --- a/src/core/CL/kernels/CLNormalizationLayerKernel.cpp +++ b/src/core/CL/kernels/CLNormalizationLayerKernel.cpp @@ -104,6 +104,18 @@ void CLNormalizationLayerKernel::configure(const ICLTensor *input, ICLTensor *ou output_access.set_valid_region(win, input->info()->valid_region()); ICLKernel::configure(win); + + // Set config_id for enabling LWS tuning + _config_id = "normalization_layer_"; + _config_id += lower_string(string_from_data_type(input->info()->data_type())); + _config_id += "_"; + _config_id += support::cpp11::to_string(static_cast::type>(norm_info.type())); + _config_id += "_"; + _config_id += support::cpp11::to_string(norm_info.norm_size()); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(1)); } void CLNormalizationLayerKernel::run(const Window &window, cl::CommandQueue &queue) diff --git a/src/core/CL/kernels/CLPoolingLayerKernel.cpp b/src/core/CL/kernels/CLPoolingLayerKernel.cpp index e436c46d29..26c26be1fb 100644 --- a/src/core/CL/kernels/CLPoolingLayerKernel.cpp +++ b/src/core/CL/kernels/CLPoolingLayerKernel.cpp @@ -183,6 +183,14 @@ void CLPoolingLayerKernel::configure(const ICLTensor *input, ICLTensor *output, update_window_and_padding(win, input_access, output_access); output_access.set_valid_region(win, ValidRegion(Coordinates(), output->info()->tensor_shape())); ICLKernel::configure(win); + + // Set config_id for enabling LWS tuning + _config_id = "pooling_layer_"; + _config_id += lower_string(string_from_data_type(data_type)); + _config_id += "_"; + _config_id += support::cpp11::to_string(output->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(output->info()->dimension(1)); } Error CLPoolingLayerKernel::validate(const ITensorInfo *input, const ITensorInfo *output, const PoolingLayerInfo &pool_info) diff --git a/src/core/CL/kernels/CLSoftmaxLayerKernel.cpp b/src/core/CL/kernels/CLSoftmaxLayerKernel.cpp index 5331f40838..3eae9e5749 100644 --- a/src/core/CL/kernels/CLSoftmaxLayerKernel.cpp +++ b/src/core/CL/kernels/CLSoftmaxLayerKernel.cpp @@ -136,6 +136,14 @@ void CLLogits1DMaxKernel::configure(const ICLTensor *input, ICLTensor *output) output_access.set_valid_region(win, ValidRegion(Coordinates(), output->info()->tensor_shape())); ICLKernel::configure(win); + + // Set config_id for enabling LWS tuning + _config_id = "softmax_layer_"; + _config_id += lower_string(string_from_data_type(data_type)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(0)); + _config_id += "_"; + _config_id += support::cpp11::to_string(input->info()->dimension(1)); } CLLogits1DShiftExpSumKernel::CLLogits1DShiftExpSumKernel() -- cgit v1.2.1