Add CLAMP operator to Dynamic Fusion interface

Add the CLAMP activation function for GPU backend with generic activation Component and TemplateWriter modules.

CLAMP is internally implemented as LU_BOUNDED_RELU activation function with the alpha and beta variables swapped.

We do NOT consider in-place computation cases in this patch.

* CLAMP operator for GPU backend.
* Activation Component and TemplateWriter for CL backend.
* TemplateWriter generates tiled kernel code.
* Supported data types: F16, F32.
* Validation tests for CLAMP operation.

Resolves: COMPMID-5519

Change-Id: Ieb097d6b1e6a7ed2b882518e88314454efb402f6
Signed-off-by: Jakub Sujak <jakub.sujak@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8762
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Reviewed-by: SiCong Li <sicong.li@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/filelist.json b/filelist.json
index 9b1db9b..89ac646 100644
--- a/filelist.json
+++ b/filelist.json
@@ -2200,6 +2200,7 @@
       "src/dynamic_fusion/runtime/gpu/cl/ClKernelRuntime.cpp",
       "src/dynamic_fusion/runtime/gpu/cl/ClWorkloadRuntime.cpp",
       "src/dynamic_fusion/sketch/attributes/CastAttributes.cpp",
+      "src/dynamic_fusion/sketch/attributes/ClampAttributes.cpp",
       "src/dynamic_fusion/sketch/attributes/DepthwiseConv2dAttributes.cpp",
       "src/dynamic_fusion/sketch/OperatorAttributes.cpp",
       "src/dynamic_fusion/sketch/gpu/GpuKernelArgument.cpp",
@@ -2210,6 +2211,7 @@
       "src/dynamic_fusion/sketch/gpu/GpuOperatorGroup.cpp",
       "src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp",
       "src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp",
+      "src/dynamic_fusion/sketch/gpu/components/cl/ClComponentActivation.cpp",
       "src/dynamic_fusion/sketch/gpu/components/cl/ClComponentCast.cpp",
       "src/dynamic_fusion/sketch/gpu/components/cl/ClComponentDepthwiseConv2d.cpp",
       "src/dynamic_fusion/sketch/gpu/components/cl/ClComponentDirectConv2d.cpp",
@@ -2217,9 +2219,11 @@
       "src/dynamic_fusion/sketch/gpu/components/cl/ClComponentStore.cpp",
       "src/dynamic_fusion/sketch/gpu/operators/GpuAdd.cpp",
       "src/dynamic_fusion/sketch/gpu/operators/GpuCast.cpp",
+      "src/dynamic_fusion/sketch/gpu/operators/GpuClamp.cpp",
       "src/dynamic_fusion/sketch/gpu/operators/GpuConv2d.cpp",
       "src/dynamic_fusion/sketch/gpu/operators/internal/GpuElementwiseBinaryCommon.cpp",
       "src/dynamic_fusion/sketch/gpu/operators/GpuDepthwiseConv2d.cpp",
+      "src/dynamic_fusion/sketch/gpu/template_writer/cl/ClTemplateActivation.cpp",
       "src/dynamic_fusion/sketch/gpu/template_writer/cl/ClTemplateCast.cpp",
       "src/dynamic_fusion/sketch/gpu/template_writer/cl/ClTemplateDepthwiseConv2d.cpp",
       "src/dynamic_fusion/sketch/gpu/template_writer/cl/ClTemplateDirectConv2d.cpp",