aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/CL
diff options
context:
space:
mode:
authorMurray Kornelsen <murray.kornelsen@mail.mcgill.ca>2022-07-13 20:43:15 -0400
committerPablo Marquez Tello <pablo.tello@arm.com>2022-09-01 11:16:55 +0000
commitcd083cf70fed41858407d1f7e082f760a2dbe87a (patch)
treec4e1bcfa8ebd4668bc35c77247135f2f1920f3c1 /src/runtime/CL
parenta331e48ad8a4856837cf0afdd44de69af43581af (diff)
downloadComputeLibrary-cd083cf70fed41858407d1f7e082f760a2dbe87a.tar.gz
Use parent buffer in CLSubTensor. This avoids calling enqueueMapBuffer repeatedly when mapping multiple children of the same parent.
Signed-off-by: Murray Kornelsen <murray.kornelsen@mail.mcgill.ca> Change-Id: I7ff554915a37320dfd94f15a6fb01a72a235cf39 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7920 Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Reviewed-by: Pablo Marquez Tello <pablo.tello@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/runtime/CL')
-rw-r--r--src/runtime/CL/CLSubTensor.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/runtime/CL/CLSubTensor.cpp b/src/runtime/CL/CLSubTensor.cpp
index d0822414c3..14936ae23c 100644
--- a/src/runtime/CL/CLSubTensor.cpp
+++ b/src/runtime/CL/CLSubTensor.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2019 Arm Limited.
+ * Copyright (c) 2017-2019, 2022 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -81,11 +81,15 @@ void CLSubTensor::unmap()
uint8_t *CLSubTensor::do_map(cl::CommandQueue &q, bool blocking)
{
ARM_COMPUTE_ERROR_ON(cl_buffer().get() == nullptr);
- return static_cast<uint8_t *>(q.enqueueMapBuffer(cl_buffer(), blocking ? CL_TRUE : CL_FALSE, CL_MAP_READ | CL_MAP_WRITE, 0, info()->total_size()));
+ if(_parent->buffer() == nullptr)
+ {
+ _parent->map(q, blocking);
+ }
+ return _parent->buffer();
}
void CLSubTensor::do_unmap(cl::CommandQueue &q)
{
ARM_COMPUTE_ERROR_ON(cl_buffer().get() == nullptr);
- q.enqueueUnmapMemObject(cl_buffer(), buffer());
+ _parent->unmap(q);
}