diff options
author | SiCong Li <sicong.li@arm.com> | 2023-01-12 12:54:49 +0000 |
---|---|---|
committer | SiCong Li <sicong.li@arm.com> | 2023-01-20 15:21:31 +0000 |
commit | 5a2bc0169d942f7029d73a3afff1eab18b6f65ef (patch) | |
tree | efa7850199b40109b73b0ee35bb8f57531c983e9 /src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp | |
parent | a18d85c6d2c0025938c2dc10e553eb82c01922f2 (diff) | |
download | ComputeLibrary-5a2bc0169d942f7029d73a3afff1eab18b6f65ef.tar.gz |
Add Auxiliary tensors
The asssign_memory_descriptors method could not automatically assign
Auxiliary tensors. Therefore changes are made to allow developers to
explicitly mark auxiliary tensors.
However, to avoid ambiguity between auxiliary and "intermediate"
tensors, we solidify the definitions of both:
Intermediate tensors are a strictly topological term. They are defined
as "inner" tensors within a workload, hidden from the user, as opposed
to input and output tensors exposed to the users.
Auxiliary tensors are a subcategory of Intermediate tensors, and are
also about memory allocation. They are intermediate tensors that need
real memory backing.
For more details please see the documentation of MemoryType enum
Rename MemoryType::NoAlloc to MemoryType::Virtual
Partially resolves: COMPMID-5523
Signed-off-by: SiCong Li <sicong.li@arm.com>
Change-Id: Ibde44c2ec1570be9423e0fb38b53bb136ffc36dd
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8940
Benchmark: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Diffstat (limited to 'src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp')
-rw-r--r-- | src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp b/src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp index ce7cf1e908..33f672071d 100644 --- a/src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp +++ b/src/dynamic_fusion/sketch/gpu/GpuWorkloadSketch.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Arm Limited. + * Copyright (c) 2022-2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -43,23 +43,18 @@ const GpuWorkloadSketch::Context *GpuWorkloadSketch::gpu_context() const return _impl->context(); } -TensorInfo GpuWorkloadSketch::create_tensor_info(const ITensorInfo &tensor_info) +void GpuWorkloadSketch::register_new_tensor(ITensorInfo &tensor_info) { - TensorInfo tensor{ tensor_info }; - tensor.set_id(allocate_new_tensor_id()); - return tensor; + tensor_info.set_id(_impl->allocate_new_tensor_id()); + // All input output tensors are User tensors that need real backing memory + _impl->register_memory_descriptor(tensor_info, MemoryDescriptor{ MemoryType::User }); } TensorInfo GpuWorkloadSketch::create_tensor_info() { - TensorInfo tensor{}; - tensor.set_id(allocate_new_tensor_id()); - return tensor; -} - -ITensorInfo::Id GpuWorkloadSketch::allocate_new_tensor_id() -{ - return _impl->allocate_new_tensor_id(); + TensorInfo tensor_info{}; + register_new_tensor(tensor_info); + return tensor_info; } GpuWorkloadSketch::Implementation &GpuWorkloadSketch::implementation() |