diff options
author | SiCong Li <sicong.li@arm.com> | 2023-04-18 13:49:56 +0100 |
---|---|---|
committer | SiCong Li <sicong.li@arm.com> | 2023-07-13 14:23:10 +0000 |
commit | a359ee9ff349448a744140b352444171efc29899 (patch) | |
tree | ddde428043fc3e9bfae7c2aa250dcb5aac039263 | |
parent | 4c30de056afe8680b42723b26a2241811715b989 (diff) | |
download | ComputeLibrary-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.h | 9 | ||||
-rw-r--r-- | src/runtime/CL/CLMemoryRegion.cpp | 5 |
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); } |