aboutsummaryrefslogtreecommitdiff
path: root/src/core/GLES_COMPUTE/kernels
diff options
context:
space:
mode:
authorJoel Liang <joel.liang@arm.com>2018-01-08 15:20:48 +0800
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:42:33 +0000
commitabd03cfc7ba96462bc5a1ca6f4faa9ca22792158 (patch)
treefef70cbe7b3e2ee18f69e880a0586189bd00a37b /src/core/GLES_COMPUTE/kernels
parent088cc7ff4623b268275f38c1ffb6d373584335ed (diff)
downloadComputeLibrary-abd03cfc7ba96462bc5a1ca6f4faa9ca22792158.tar.gz
APPBROWSER-298: Remove the old shader common code
Remove token pasting operator support for GLES shader Remove cs_shdaers/helpers.h (The old GLES shader common code) Remove class BufferParam. We don't need to pass the buffer_data_type_shift to GLES shader. Change-Id: Ic4fa6b2fb7647b8f69759f6077ae4a5b483cc04d Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/115448 Tested-by: Jenkins <bsgcomp@arm.com> Reviewed-by: Frank Lei <frank.lei@arm.com> Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/GLES_COMPUTE/kernels')
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.cpp17
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp58
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp8
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp23
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp33
-rw-r--r--src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp23
6 files changed, 23 insertions, 139 deletions
diff --git a/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.cpp
index a6111782fd..1aac2502e7 100644
--- a/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCDepthConcatenateLayerKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -122,18 +122,9 @@ void GCDepthConcatenateLayerKernel::run(const Window &window)
do
{
- if(_input->info()->data_type() == DataType::F32)
- {
- unsigned int idx = 0;
- add_3D_tensor_argument(idx, _input, 1, slice);
- add_3D_tensor_argument(idx, _output, 2, slice);
- }
- else if(_input->info()->data_type() == DataType::F16)
- {
- unsigned int idx = 0;
- add_3D_tensor_argument(idx, _input, BufferParam(1, 3), slice);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 3), slice);
- }
+ unsigned int idx = 0;
+ add_3D_tensor_argument(idx, _input, 1, slice);
+ add_3D_tensor_argument(idx, _output, 2, slice);
_kernel.update_shader_params();
diff --git a/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp
index 06f9bce498..77423fd8bc 100644
--- a/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCDirectConvolutionLayerKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -397,69 +397,21 @@ void GCDirectConvolutionLayerKernel<kernel_size>::run(const Window &window)
Window slice_in = win_in.first_slice_window_3D();
unsigned int idx1 = 2 * num_arguments_per_3D_tensor();
- add_3D_tensor_argument(idx1, _weights, BufferParam(3, 2), slice);
+ add_3D_tensor_argument(idx1, _weights, 3, slice);
if(_bias != nullptr)
{
Window slice_bias;
slice_bias.use_tensor_dimensions(_bias->info()->tensor_shape());
- add_1D_tensor_argument(idx1, _bias, BufferParam(4, 2), slice_bias);
+ add_1D_tensor_argument(idx1, _bias, 4, slice_bias);
}
do
{
unsigned int idx = 0;
- switch(_input->info()->data_type())
- {
- case DataType::F16:
- switch(kernel_size)
- {
- case 1:
- add_3D_tensor_argument(idx, _input, BufferParam(1, 4), slice_in);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 4), slice);
- break;
-
- case 3:
- add_3D_tensor_argument(idx, _input, BufferParam(1, 3), slice_in);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 3), slice);
- break;
-
- case 5:
- add_3D_tensor_argument(idx, _input, BufferParam(1, 3), slice_in);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 3), slice);
- break;
-
- default:
- ARM_COMPUTE_ERROR("Current kernel size %d is not supported", kernel_size);
- break;
- }
- break;
-
- case DataType::F32:
- switch(kernel_size)
- {
- case 1:
- case 5:
- add_3D_tensor_argument(idx, _input, BufferParam(1, 2), slice_in);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 2), slice);
- break;
-
- case 3:
- add_3D_tensor_argument(idx, _input, BufferParam(1, 4), slice_in);
- add_3D_tensor_argument(idx, _output, BufferParam(2, 4), slice);
- break;
-
- default:
- ARM_COMPUTE_ERROR("Current kernel size %d is not supported", kernel_size);
- break;
- }
- break;
-
- default:
- ARM_COMPUTE_ERROR("Current data type is not supported");
- break;
- }
+ add_3D_tensor_argument(idx, _input, 1, slice_in);
+ add_3D_tensor_argument(idx, _output, 2, slice);
_kernel.update_shader_params();
enqueue(*this, slice, _lws);
diff --git a/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
index e87c902281..cd06be2585 100644
--- a/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCDropoutLayerKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -96,9 +96,9 @@ void GCDropoutLayerKernel::run(const Window &window)
{
unsigned int idx = 0;
- add_3D_tensor_argument(idx, _input, BufferParam(1, 2), slice);
- add_3D_tensor_argument(idx, _mask, BufferParam(2, 2), slice);
- add_3D_tensor_argument(idx, _output, BufferParam(3, 2), slice);
+ add_3D_tensor_argument(idx, _input, 1, slice);
+ add_3D_tensor_argument(idx, _mask, 2, slice);
+ add_3D_tensor_argument(idx, _output, 3, slice);
_kernel.update_shader_params();
enqueue(*this, slice);
diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp
index 944585daff..7ee39346f8 100644
--- a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixAccumulateBiasesKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -117,26 +117,9 @@ void GCGEMMMatrixAccumulateBiasesKernel::run(const Window &window)
{
// Set arguments
unsigned int idx = 0;
- if(_accum->info()->data_type() == DataType::F32)
- {
- add_2D_tensor_argument(idx, _accum, 1, accum_slice);
- add_1D_tensor_argument(idx, _biases, 2, biases_slice);
- }
- else if(_accum->info()->data_type() == DataType::F16)
- {
-#if defined(ACCUM_PROCESS_4X)
- BufferParam param = { 1, 3 };
- add_2D_tensor_argument(idx, _accum, param, accum_slice);
- param.binding_point = 2;
- add_1D_tensor_argument(idx, _biases, param, biases_slice);
-#elif defined(ACCUM_PROCESS_8X) /* ACCUM_PROCESS_4X */
- BufferParam param = { 1, 4 };
- add_2D_tensor_argument(idx, _accum, param, accum_slice);
- param.binding_point = 2;
- add_1D_tensor_argument(idx, _biases, param, biases_slice);
-#endif /* ACCUM_PROCESS_4X */
- }
+ add_2D_tensor_argument(idx, _accum, 1, accum_slice);
+ add_1D_tensor_argument(idx, _biases, 2, biases_slice);
_kernel.update_shader_params();
enqueue(*this, accum_slice, _lws);
diff --git a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp
index baf1a9b85e..32fbbfeefb 100644
--- a/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCGEMMMatrixMultiplyKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -201,35 +201,10 @@ void GCGEMMMatrixMultiplyKernel::run(const Window &window)
}
unsigned int idx = 0;
- switch(_input0->info()->data_type())
- {
- case DataType::F16:
-#if defined(MM_PROCESS_4X)
- add_2D_tensor_argument(idx, _input0, BufferParam(1, 2), slice);
- add_2D_tensor_argument(idx, _input1, BufferParam(2, 3), slice_b);
- add_2D_tensor_argument(idx, _output, BufferParam(3, 3), slice);
-#elif defined(MM_PROCESS_4X_OPTIMIZED) /* MM_PROCESS_4X */
- add_2D_tensor_argument(idx, _input0, BufferParam(1, 4), slice);
- add_2D_tensor_argument(idx, _input1, BufferParam(2, 3), slice_b);
- add_2D_tensor_argument(idx, _output, BufferParam(3, 3), slice);
-#elif defined(MM_PROCESS_8X) /* MM_PROCESS_4X */
- add_2D_tensor_argument(idx, _input0, BufferParam(1, 4), slice);
- add_2D_tensor_argument(idx, _input1, BufferParam(2, 4), slice_b);
- add_2D_tensor_argument(idx, _output, BufferParam(3, 4), slice);
-#endif /* MM_PROCESS_4X */
- break;
-
- case DataType::F32:
- add_2D_tensor_argument(idx, _input0, BufferParam(1, 2), slice);
- add_2D_tensor_argument(idx, _input1, BufferParam(2, 2), slice_b);
- add_2D_tensor_argument(idx, _output, BufferParam(3, 2), slice);
- break;
-
- default:
- ARM_COMPUTE_ERROR("Current data type is not supported");
- break;
- }
+ add_2D_tensor_argument(idx, _input0, 1, slice);
+ add_2D_tensor_argument(idx, _input1, 2, slice_b);
+ add_2D_tensor_argument(idx, _output, 3, 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 5edc23b95e..b3a7a90931 100644
--- a/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp
+++ b/src/core/GLES_COMPUTE/kernels/GCTransposeKernel.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -132,26 +132,9 @@ void GCTransposeKernel::run(const Window &window)
do
{
unsigned int idx = 0;
- if(_input->info()->data_type() == DataType::F32)
- {
- add_2D_tensor_argument(idx, _input, 1, slice);
- add_2D_tensor_argument(idx, _output, 2, slice);
- }
- else if(_input->info()->data_type() == DataType::F16)
- {
-#if defined(TRANSPOSE_4X4)
- BufferParam param = { 1, 3 };
- add_2D_tensor_argument(idx, _input, param, slice);
- param.binding_point = 2;
- add_2D_tensor_argument(idx, _output, param, slice);
-#elif defined(TRANSPOSE_8X8) /* TRANSPOSE_4X4 */
- BufferParam param = { 1, 4 };
- add_2D_tensor_argument(idx, _input, param, slice);
- param.binding_point = 2;
- add_2D_tensor_argument(idx, _output, param, slice);
-#endif /* TRANSPOSE_4X4 */
- }
+ add_2D_tensor_argument(idx, _input, 1, slice);
+ add_2D_tensor_argument(idx, _output, 2, slice);
_kernel.update_shader_params();
enqueue(*this, slice, _lws_hint);
}