aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiCong Li <sicong.li@arm.com>2023-04-18 13:49:56 +0100
committerSiCong Li <sicong.li@arm.com>2023-07-13 14:23:10 +0000
commita359ee9ff349448a744140b352444171efc29899 (patch)
treeddde428043fc3e9bfae7c2aa250dcb5aac039263
parent4c30de056afe8680b42723b26a2241811715b989 (diff)
downloadComputeLibrary-a359ee9ff349448a744140b352444171efc29899.tar.gz
Fix excessive calls to clReleaseCommandQueue
Use the queue object from the singleton Scheduler to avoid repeatedly freeing cl::CommandQueue object on the stack. Resolves COMPMID-6021 Change-Id: I0baf5891a7974cf4c7efad1b13cc5f28e49a2745 Signed-off-by: SiCong Li <sicong.li@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9896 Reviewed-by: Jakub Sujak <jakub.sujak@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com>
-rw-r--r--arm_compute/runtime/CL/CLMemoryRegion.h9
-rw-r--r--src/runtime/CL/CLMemoryRegion.cpp5
2 files changed, 6 insertions, 8 deletions
diff --git a/arm_compute/runtime/CL/CLMemoryRegion.h b/arm_compute/runtime/CL/CLMemoryRegion.h
index 1fd8fdb79e..690a924f5b 100644
--- a/arm_compute/runtime/CL/CLMemoryRegion.h
+++ b/arm_compute/runtime/CL/CLMemoryRegion.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2021 Arm Limited.
+ * Copyright (c) 2018-2021, 2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -85,10 +85,9 @@ public:
std::unique_ptr<IMemoryRegion> extract_subregion(size_t offset, size_t size) override;
protected:
- cl::CommandQueue _queue;
- cl::Context _ctx;
- void *_mapping;
- cl::Buffer _mem;
+ cl::Context _ctx;
+ void *_mapping;
+ cl::Buffer _mem;
};
/** OpenCL buffer memory region implementation */
diff --git a/src/runtime/CL/CLMemoryRegion.cpp b/src/runtime/CL/CLMemoryRegion.cpp
index 780a563d63..380e4062ee 100644
--- a/src/runtime/CL/CLMemoryRegion.cpp
+++ b/src/runtime/CL/CLMemoryRegion.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2021 Arm Limited.
+ * Copyright (c) 2018-2021, 2023 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -30,7 +30,6 @@ namespace arm_compute
{
ICLMemoryRegion::ICLMemoryRegion(size_t size)
: IMemoryRegion(size),
- _queue(CLScheduler::get().queue()),
_ctx(CLScheduler::get().context()),
_mapping(nullptr),
_mem()
@@ -111,7 +110,7 @@ ICLSVMMemoryRegion::~ICLSVMMemoryRegion()
{
try
{
- clFinish(_queue.get());
+ clFinish(CLScheduler::get().queue().get());
_mem = cl::Buffer();
clSVMFree(_ctx.get(), _ptr);
}