diff options
Diffstat (limited to 'src/core/GLES_COMPUTE/kernels')
19 files changed, 28 insertions, 176 deletions
diff --git a/src/core/GLES_COMPUTE/kernels/GCAbsoluteDifferenceKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCAbsoluteDifferenceKernel.cpp index d76ae8ff1c..c0f454d563 100644 --- a/src/core/GLES_COMPUTE/kernels/GCAbsoluteDifferenceKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCAbsoluteDifferenceKernel.cpp @@ -80,11 +80,6 @@ void GCAbsoluteDifferenceKernel::configure(const IGCTensor *input1, const IGCTen output_access.set_valid_region(win, valid_region); - _kernel.clear_params(); - - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCActivationLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCActivationLayerKernel.cpp index 42433cf076..b8672c662d 100644 --- a/src/core/GLES_COMPUTE/kernels/GCActivationLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCActivationLayerKernel.cpp @@ -99,10 +99,6 @@ void GCActivationLayerKernel::configure(IGCTensor *input, IGCTensor *output, Act AccessWindowHorizontal(input->info(), 0, num_elems_processed_per_iteration)); } - _kernel.clear_params(); - - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCBatchNormalizationLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCBatchNormalizationLayerKernel.cpp index 9c24d2ef42..982143f0b2 100644 --- a/src/core/GLES_COMPUTE/kernels/GCBatchNormalizationLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCBatchNormalizationLayerKernel.cpp @@ -91,10 +91,6 @@ void GCBatchNormalizationLayerKernel::configure(const IGCTensor *input, IGCTenso update_window_and_padding(win, input_access, output_access, mean_access, var_access, beta_access, gamma_access); output_access.set_valid_region(win, input->info()->valid_region()); - _kernel.clear_params(); - - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCCol2ImKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCCol2ImKernel.cpp index 10716232c9..492f708a98 100644 --- a/src/core/GLES_COMPUTE/kernels/GCCol2ImKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCCol2ImKernel.cpp @@ -46,8 +46,6 @@ void GCCol2ImKernel::configure(const IGCTensor *input, IGCTensor *output, ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN(input, 1, DataType::F32); ARM_COMPUTE_ERROR_ON_MISMATCHING_DATA_TYPES(input, output); - _kernel.clear_params(); - _input = input; _output = output; _convolved_dims = convolved_dims; @@ -63,7 +61,7 @@ void GCCol2ImKernel::configure(const IGCTensor *input, IGCTensor *output, // Set static kernel arguments unsigned int idx = num_arguments_per_2D_tensor() + num_arguments_per_3D_tensor(); - _kernel.set_params(idx++, _convolved_dims.first); + _kernel.set_argument(idx++, _convolved_dims.first); // Configure window Window win = calculate_max_window(*input->info(), Steps()); @@ -71,9 +69,6 @@ void GCCol2ImKernel::configure(const IGCTensor *input, IGCTensor *output, // The GCCol2ImKernel doesn't need padding so update_window_and_padding() can be skipped output->info()->set_valid_region(ValidRegion(Coordinates(), output->info()->tensor_shape())); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateKernel.cpp index 7f9f438a46..b90a8e7b89 100644 --- a/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateKernel.cpp @@ -108,8 +108,6 @@ void GCDepthConcatenateKernel::configure(const IGCTensor *input, unsigned int de update_window_and_padding(win, input_access, output_access); output_access.set_valid_region(win, ValidRegion(Coordinates(0, 0), output->info()->tensor_shape())); - _kernel.clear_params(); - _kernel.set_shader_params_binding_point(0); IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp index 1fa2a71fff..5c7320aa8d 100644 --- a/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp @@ -228,8 +228,6 @@ void GCDirectConvolutionLayerKernel<kernel_size>::configure(const IGCTensor *inp _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel(kernel_name.str(), options)); - _kernel.clear_params(); - unsigned int idx = (_bias == nullptr) ? 3 * num_arguments_per_3D_tensor() : (num_arguments_per_1D_tensor() + 3 * num_arguments_per_3D_tensor()); // Calculate output right and bottom border @@ -290,11 +288,8 @@ void GCDirectConvolutionLayerKernel<kernel_size>::configure(const IGCTensor *inp output_access.set_valid_region(win, ValidRegion(Coordinates(), output->info()->tensor_shape())); - _kernel.set_params(idx++, _weights->info()->strides_in_bytes()[3]); // weights_stride_w - _kernel.set_params(idx++, _weights->info()->dimension(2)); // weights_depth - - // set shader params binding point - _kernel.set_shader_params_binding_point(0); + _kernel.set_argument(idx++, _weights->info()->strides_in_bytes()[3]); // weights_stride_w + _kernel.set_argument(idx++, _weights->info()->dimension(2)); // weights_depth IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp index 6244fbef80..cdd6a9d989 100644 --- a/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCDropoutKernel.cpp @@ -53,7 +53,6 @@ void GCDropoutKernel::configure(const IGCTensor *input, IGCTensor *mask, IGCTens _input = input; _mask = mask; _output = output; - _kernel.clear_params(); std::set<std::string> build_opts; std::string dt_name = (input->info()->data_type() == DataType::F32) ? "DATA_TYPE_FP32" : "DATA_TYPE_FP16"; @@ -81,8 +80,6 @@ void GCDropoutKernel::configure(const IGCTensor *input, IGCTensor *mask, IGCTens output->info()->set_valid_region(ValidRegion(Coordinates(), output->info()->tensor_shape())); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCFillBorderKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCFillBorderKernel.cpp index 36742ef81e..b4efc0b9a0 100644 --- a/src/core/GLES_COMPUTE/kernels/GCFillBorderKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCFillBorderKernel.cpp @@ -54,7 +54,7 @@ void GCFillBorderKernel::set_constant_border(unsigned int idx, const PixelValue { T value; constant_border_value.get(value); - _kernel.set_params(idx, static_cast<T>(value)); + _kernel.set_argument(idx, static_cast<T>(value)); } void GCFillBorderKernel::configure(const IGCTensor *tensor, BorderSize border_size, BorderMode border_mode, const PixelValue &constant_border_value) @@ -112,8 +112,6 @@ void GCFillBorderKernel::configure(const IGCTensor *tensor, BorderSize border_si _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel(kernel_name, build_opts)); _tensor = tensor; - _kernel.clear_params(); - // Create static kernel arguments const unsigned int valid_width = tensor->info()->valid_region().shape[0]; const unsigned int valid_height = tensor->info()->valid_region().shape[1]; @@ -121,10 +119,10 @@ void GCFillBorderKernel::configure(const IGCTensor *tensor, BorderSize border_si // Set static kernel arguments unsigned int idx = num_arguments_per_3D_tensor(); //Skip the tensor parameters - _kernel.set_params(idx++, valid_width); - _kernel.set_params(idx++, valid_height); - _kernel.set_params(idx++, tensor->info()->valid_region().anchor[0]); - _kernel.set_params(idx++, tensor->info()->valid_region().anchor[1]); + _kernel.set_argument(idx++, valid_width); + _kernel.set_argument(idx++, valid_height); + _kernel.set_argument(idx++, tensor->info()->valid_region().anchor[0]); + _kernel.set_argument(idx++, tensor->info()->valid_region().anchor[1]); if(BorderMode::CONSTANT == border_mode) { @@ -137,8 +135,6 @@ void GCFillBorderKernel::configure(const IGCTensor *tensor, BorderSize border_si win.set(Window::DimY, Window::Dimension(0, 1, 1)); win.use_tensor_dimensions(tensor->info()->tensor_shape(), Window::DimZ); - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMInterleave4x4Kernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMInterleave4x4Kernel.cpp index 5e3788af99..4bc6731064 100644 --- a/src/core/GLES_COMPUTE/kernels/GCGEMMInterleave4x4Kernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCGEMMInterleave4x4Kernel.cpp @@ -84,11 +84,6 @@ void GCGEMMInterleave4x4Kernel::configure(const IGCTensor *input, IGCTensor *out output_access.set_valid_region(win, input->info()->valid_region()); - _kernel.clear_params(); - - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp index 434070a46c..8625d371e5 100644 --- a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp @@ -80,10 +80,6 @@ void GCGEMMMatrixAccumulateBiasesKernel::configure(IGCTensor *accum, const IGCTe update_window_and_padding(win, biases_access, accum_access); - _kernel.clear_params(); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAdditionKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAdditionKernel.cpp index fa0415249a..cf5d37811f 100644 --- a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAdditionKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAdditionKernel.cpp @@ -74,10 +74,6 @@ void GCGEMMMatrixAdditionKernel::configure(const IGCTensor *input, IGCTensor *ou output_access.set_valid_region(win, input->info()->valid_region()); - _kernel.clear_params(); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp index ea9b3874b2..a75ab6b609 100644 --- a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp @@ -155,8 +155,6 @@ void GCGEMMMatrixMultiplyKernel::configure(const IGCTensor *input0, const IGCTen output_access.set_valid_region(win, ValidRegion(coord, output->info()->tensor_shape())); } - _kernel.clear_params(); - _kernel.set_shader_params_binding_point(0); IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMTranspose1xWKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMTranspose1xWKernel.cpp index a1270b4c3d..c361b60f84 100644 --- a/src/core/GLES_COMPUTE/kernels/GCGEMMTranspose1xWKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCGEMMTranspose1xWKernel.cpp @@ -92,10 +92,6 @@ void GCGEMMTranspose1xWKernel::configure(const IGCTensor *input, IGCTensor *outp output_access.set_valid_region(win, ValidRegion(Coordinates(0, 0), input->info()->tensor_shape())); - _kernel.clear_params(); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCIm2ColKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCIm2ColKernel.cpp index 935d8420ff..97c4dc48a1 100644 --- a/src/core/GLES_COMPUTE/kernels/GCIm2ColKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCIm2ColKernel.cpp @@ -52,7 +52,6 @@ void GCIm2ColKernel::configure(const IGCTensor *input, IGCTensor *output, std::p _input = input; _output = output; - _kernel.clear_params(); std::set<std::string> build_opts; std::string dt_name = (input->info()->data_type() == DataType::F32) ? "DATA_TYPE_FP32" : "DATA_TYPE_FP16"; @@ -141,8 +140,6 @@ void GCIm2ColKernel::configure(const IGCTensor *input, IGCTensor *output, std::p win.set_dimension_step(Window::DimZ, win[Window::DimZ].end() - win[Window::DimZ].start()); } - // set shader params binding point - _kernel.set_shader_params_binding_point(0); IGCKernel::configure(win); } @@ -189,9 +186,9 @@ void GCIm2ColKernel::run_generic(const Window &window) add_3D_tensor_argument(idx, _input, 1, slice_in); add_2D_tensor_argument(idx, _output, 2, slice_out); - _kernel.set_params(idx++, static_cast<unsigned int>(_input->info()->dimension(2))); - _kernel.set_params(idx++, static_cast<unsigned int>(_input->info()->strides_in_bytes()[3])); - _kernel.set_params(idx++, static_cast<unsigned int>(_output->info()->strides_in_bytes()[3])); + _kernel.set_argument(idx++, static_cast<unsigned int>(_input->info()->dimension(2))); + _kernel.set_argument(idx++, static_cast<unsigned int>(_input->info()->strides_in_bytes()[3])); + _kernel.set_argument(idx++, static_cast<unsigned int>(_output->info()->strides_in_bytes()[3])); _kernel.update_shader_params(); enqueue(*this, slice); @@ -220,8 +217,8 @@ void GCIm2ColKernel::run_reduced(const Window &window) add_3D_tensor_argument(idx, _input, 1, in_slice); add_1D_tensor_argument(idx, _output, 2, out_slice); - _kernel.set_params(idx++, _input->info()->dimension(0)); - _kernel.set_params(idx++, _input->info()->dimension(1)); + _kernel.set_argument(idx++, _input->info()->dimension(0)); + _kernel.set_argument(idx++, _input->info()->dimension(1)); _kernel.update_shader_params(); enqueue(*this, in_slice); diff --git a/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp index 65e54f538c..c0c2445c6f 100644 --- a/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCNormalizationLayerKernel.cpp @@ -92,10 +92,6 @@ void GCNormalizationLayerKernel::configure(const IGCTensor *input, const IGCTens output_access.set_valid_region(win, input->info()->valid_region()); - _kernel.clear_params(); - - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCPixelWiseMultiplicationKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCPixelWiseMultiplicationKernel.cpp index 2b5cee455c..21e967a67a 100644 --- a/src/core/GLES_COMPUTE/kernels/GCPixelWiseMultiplicationKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCPixelWiseMultiplicationKernel.cpp @@ -80,8 +80,6 @@ void GCPixelWiseMultiplicationKernel::configure(const IGCTensor *input1, const I // Create kernel _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel("pixelwise_mul_float", build_opts)); - _kernel.clear_params(); - // Configure kernel window constexpr unsigned int num_elems_processed_per_iteration = 1; @@ -97,9 +95,6 @@ void GCPixelWiseMultiplicationKernel::configure(const IGCTensor *input1, const I input2->info()->valid_region()); output_access.set_valid_region(win, valid_region); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCPoolingLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCPoolingLayerKernel.cpp index 073c3961f2..0b6ba583a3 100644 --- a/src/core/GLES_COMPUTE/kernels/GCPoolingLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCPoolingLayerKernel.cpp @@ -219,9 +219,6 @@ void GCPoolingLayerKernel::configure(const IGCTensor *input, IGCTensor *output, output_access.set_valid_region(win, ValidRegion(Coordinates(), output->info()->tensor_shape())); } - _kernel.clear_params(); - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } diff --git a/src/core/GLES_COMPUTE/kernels/GCSoftmaxLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCSoftmaxLayerKernel.cpp index 09a0f79ab2..29a1385f87 100644 --- a/src/core/GLES_COMPUTE/kernels/GCSoftmaxLayerKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCSoftmaxLayerKernel.cpp @@ -75,11 +75,9 @@ void GCLogits1DMaxKernel::configure(const IGCTensor *input, IGCTensor *output) // Create kernel _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel("softmax_layer_max", build_opts)); - _kernel.clear_params(); - // Set fixed arguments unsigned int idx = 2 * num_arguments_per_3D_tensor(); //Skip the input and output parameters - _kernel.set_params(idx++, input->info()->dimension(0)); + _kernel.set_argument(idx++, input->info()->dimension(0)); // Configure kernel window // The kernel loops over all elements in steps of 4 @@ -98,46 +96,9 @@ void GCLogits1DMaxKernel::configure(const IGCTensor *input, IGCTensor *output) output_access.set_valid_region(win, ValidRegion(Coordinates(), output->info()->tensor_shape())); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } -void GCLogits1DMaxKernel::run(const Window &window) -{ - ARM_COMPUTE_ERROR_ON_INVALID_SUBWINDOW(IKernel::window(), window); - - Window slice = window.first_slice_window_3D(); - - _kernel.use(); - - do - { - unsigned int idx1 = 0; - switch(_input->info()->data_type()) - { - case DataType::F16: - add_3D_tensor_argument(idx1, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx1, _output, BufferParam(2, 2), slice); - break; - - case DataType::F32: - add_3D_tensor_argument(idx1, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx1, _output, BufferParam(2, 2), slice); - break; - - default: - ARM_COMPUTE_ERROR("Current data type is mot supported"); - break; - } - - _kernel.update_shader_params(); - enqueue(*this, slice); - } - while(window.slide_window_slice_3D(slice)); -} - GCLogits1DShiftExpSumKernel::GCLogits1DShiftExpSumKernel() : _input(nullptr), _max(nullptr), _output(nullptr), _sum(nullptr) { @@ -179,11 +140,9 @@ void GCLogits1DShiftExpSumKernel::configure(const IGCTensor *input, const IGCTen // Create kernel _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel("softmax_layer_shift_exp_sum", build_opts)); - _kernel.clear_params(); - // Set fixed arguments unsigned int idx = 4 * num_arguments_per_3D_tensor(); //Skip the input and output parameters - _kernel.set_params(idx++, input->info()->dimension(0)); + _kernel.set_argument(idx++, input->info()->dimension(0)); // Configure window // The kernel loops over all elements in steps of 4 @@ -206,9 +165,6 @@ void GCLogits1DShiftExpSumKernel::configure(const IGCTensor *input, const IGCTen output_access.set_valid_region(win, input->info()->valid_region()); sum_access.set_valid_region(win, ValidRegion(Coordinates(), sum->info()->tensor_shape())); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } @@ -224,28 +180,13 @@ void GCLogits1DShiftExpSumKernel::run(const Window &window) do { - unsigned int idx = 0; - switch(_input->info()->data_type()) - { - case DataType::F16: - add_3D_tensor_argument(idx, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx, _max, BufferParam(2, 2), slice); - add_3D_tensor_argument(idx, _output, BufferParam(3, 2), slice); - add_3D_tensor_argument(idx, _sum, BufferParam(4, 2), slice); - break; - - case DataType::F32: - add_3D_tensor_argument(idx, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx, _max, BufferParam(2, 2), slice); - add_3D_tensor_argument(idx, _output, BufferParam(3, 2), slice); - add_3D_tensor_argument(idx, _sum, BufferParam(4, 2), slice); - break; - - default: - ARM_COMPUTE_ERROR("Current data type is mot supported"); - break; - } - + unsigned int idx = 0; + unsigned int binding = 1; // SSBO binding starts from 1. + // Set inputs + add_3D_tensor_argument(idx, _input, binding++, slice); + add_3D_tensor_argument(idx, _max, binding++, slice); + add_3D_tensor_argument(idx, _output, binding++, slice); + add_3D_tensor_argument(idx, _sum, binding++, slice); _kernel.update_shader_params(); enqueue(*this, slice); } @@ -303,11 +244,6 @@ void GCLogits1DNormKernel::configure(const IGCTensor *input, const IGCTensor *su output_access.set_valid_region(win, input->info()->valid_region()); - _kernel.clear_params(); - - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } @@ -326,25 +262,12 @@ void GCLogits1DNormKernel::run(const Window &window) Window sum_slice = slice; sum_slice.set(Window::DimX, Window::Dimension(0, 1, 1)); - unsigned int idx1 = 0; - switch(_input->info()->data_type()) - { - case DataType::F16: - add_3D_tensor_argument(idx1, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx1, _sum, BufferParam(2, 2), slice); - add_3D_tensor_argument(idx1, _output, BufferParam(3, 2), slice); - break; - - case DataType::F32: - add_3D_tensor_argument(idx1, _input, BufferParam(1, 2), slice); - add_3D_tensor_argument(idx1, _sum, BufferParam(2, 2), slice); - add_3D_tensor_argument(idx1, _output, BufferParam(3, 2), slice); - break; - - default: - ARM_COMPUTE_ERROR("Current data type is mot supported"); - break; - } + unsigned int idx = 0; + unsigned int binding = 1; // SSBO binding starts from 1. + // Set inputs + add_3D_tensor_argument(idx, _input, binding++, slice); + add_3D_tensor_argument(idx, _sum, binding++, slice); + add_3D_tensor_argument(idx, _output, binding++, slice); _kernel.update_shader_params(); enqueue(*this, slice); diff --git a/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp index b891b42ef8..5bd34c2c85 100644 --- a/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp +++ b/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp @@ -67,8 +67,6 @@ void GCTransposeKernel::configure(const IGCTensor *input, IGCTensor *output) // Create kernel _kernel = static_cast<GCKernel>(GCKernelLibrary::get().create_kernel("transpose", build_opts)); - _kernel.clear_params(); - // Configure kernel window const unsigned int num_elems_processed_per_iteration = 4; @@ -80,9 +78,6 @@ void GCTransposeKernel::configure(const IGCTensor *input, IGCTensor *output) output_access.set_valid_region(win, input->info()->valid_region()); - // set shader params binding point - _kernel.set_shader_params_binding_point(0); - IGCKernel::configure(win); } |