aboutsummaryrefslogtreecommitdiff
path: root/src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp
diff options
context:
space:
mode:
authorViet-Hoa Do <viet-hoa.do@arm.com>2024-01-18 16:10:46 +0000
committerViet-Hoa Do <viet-hoa.do@arm.com>2024-01-23 09:52:40 +0000
commitfdf56fb9d414a754e7cedfdc1351ab0ce2866a0c (patch)
tree75b48446e9b4041ae9c520070e432d32b9748ef7 /src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp
parente812c0cafc6f224ec9caca30c2e97ec062012d53 (diff)
downloadComputeLibrary-fdf56fb9d414a754e7cedfdc1351ab0ce2866a0c.tar.gz
Make GpuWorkloadContext own all tensor info objects
* The tensor info objects created by calling create_tensor_info is now solely owned by the context object. The user only receives pointers to those objects. - Internally pointers to tensor info objects are used in various places. It's safer for dynamic fusion to manage these objects directly rather than relying on the users. - The validation test is updated to use the modified API. * Make various changes in dynamic fusion API to make it more friendly (e.g. making some of the objects moveable). Partially resolves: COMPMID-6707 Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com> Change-Id: Ifee70e53c05f8e7b72bf9ef123701ff291c5ee80 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10990 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp')
-rw-r--r--src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp b/src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp
index 36cad790c7..fab18aabb4 100644
--- a/src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp
+++ b/src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022-2023 Arm Limited.
+ * Copyright (c) 2022-2024 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -60,9 +60,9 @@ const CLCompileContext *GpuWorkloadContext::cl_compile_context() const
return _impl->cl_compile_context();
}
-void GpuWorkloadContext::register_user_tensor(ITensorInfo &tensor_info)
+void GpuWorkloadContext::register_user_tensor(std::unique_ptr<TensorInfo> &&tensor_info)
{
- _impl->register_user_tensor(tensor_info);
+ _impl->register_user_tensor(std::move(tensor_info));
}
GpuWorkloadContext::Impl &GpuWorkloadContext::implementation()
@@ -99,17 +99,17 @@ const MemoryDescriptorMap &GpuWorkloadContext::Impl::mem_map() const
return _mem_map;
}
-void GpuWorkloadContext::Impl::register_user_tensor(ITensorInfo &tensor_info)
+void GpuWorkloadContext::Impl::register_user_tensor(std::unique_ptr<TensorInfo> &&tensor_info)
{
- ARM_COMPUTE_ERROR_ON(tensor_info.has_valid_id());
+ ARM_COMPUTE_ERROR_ON(tensor_info->has_valid_id());
const auto tensor_id = next_tensor_id();
- tensor_info.set_id(tensor_id);
+ tensor_info->set_id(tensor_id);
_mem_map[tensor_id] = MemoryDescriptor{MemoryType::User};
// Save a *copy* of the user tensor info in workload context for future reference
// Note that this means if the user modifies the @p tensor_info, the change will not be reflected in the context
- _managed_tensor_info.emplace(tensor_info.id(), std::make_unique<TensorInfo>(tensor_info));
+ _managed_tensor_info.emplace(tensor_info->id(), std::move(tensor_info));
}
ITensorInfo *GpuWorkloadContext::Impl::create_virtual_tensor()