diff options
author | Viet-Hoa Do <viet-hoa.do@arm.com> | 2024-01-18 16:10:46 +0000 |
---|---|---|
committer | Viet-Hoa Do <viet-hoa.do@arm.com> | 2024-01-23 09:52:40 +0000 |
commit | fdf56fb9d414a754e7cedfdc1351ab0ce2866a0c (patch) | |
tree | 75b48446e9b4041ae9c520070e432d32b9748ef7 /src/dynamic_fusion/sketch/gpu/GpuWorkloadContext.cpp | |
parent | e812c0cafc6f224ec9caca30c2e97ec062012d53 (diff) | |
download | ComputeLibrary-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.cpp | 14 |
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() |