Add multi-sketch support for dynamic fusion

* Tensors are owned by workload context instead of workload sketch
  so that they can be used by multiple sketches.
* Add an integration test for multi-sketch case.

Resolves: COMPMID-6148
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: I37d0de5ac103fb2a85020aa1c26e49eb304f47b7
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9706
Comments-Addressed: Arm Jenkins <bsgcomp@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/tests/validation/dynamic_fusion/gpu/cl/Mul.cpp b/tests/validation/dynamic_fusion/gpu/cl/Mul.cpp
index a9e8f9c..2da2b9e 100644
--- a/tests/validation/dynamic_fusion/gpu/cl/Mul.cpp
+++ b/tests/validation/dynamic_fusion/gpu/cl/Mul.cpp
@@ -102,12 +102,12 @@
 {
     // Create a new workload sketch
     auto              cl_compile_ctx = CLKernelLibrary::get().get_compile_context();
-    auto              gpu_ctx        = GpuWorkloadContext{ &cl_compile_ctx };
-    GpuWorkloadSketch sketch{ &gpu_ctx };
+    auto              context        = GpuWorkloadContext{ &cl_compile_ctx };
+    GpuWorkloadSketch sketch{ &context };
 
     // Validate Elementwise Mul
-    auto          lhs_info         = sketch.create_tensor_info(input1_info);
-    auto          rhs_info         = sketch.create_tensor_info(input2_info);
+    auto          lhs_info         = context.create_tensor_info(input1_info);
+    auto          rhs_info         = context.create_tensor_info(input2_info);
 
     bool res = bool(GpuMul::validate_op(sketch, &lhs_info, &rhs_info));
     ARM_COMPUTE_EXPECT(res == expected, framework::LogLevel::ERRORS);