Skip to content

Commit a153a85

Browse files
[SYCL] Get rid of vector reallocations for kernel name caches (#18539)
A follow up on the code review of #18081
1 parent 1ff11be commit a153a85

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

sycl/source/detail/global_handler.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,10 @@ ThreadPool &GlobalHandler::getHostTaskThreadPool() {
254254
}
255255

256256
KernelNameBasedCacheT *GlobalHandler::createKernelNameBasedCache() {
257-
static std::vector<std::unique_ptr<KernelNameBasedCacheT>>
258-
&KernelNameBasedCaches = getOrCreate(MKernelNameBasedCaches);
257+
static std::deque<KernelNameBasedCacheT> &KernelNameBasedCaches =
258+
getOrCreate(MKernelNameBasedCaches);
259259
LockGuard LG{MKernelNameBasedCaches.Lock};
260-
return KernelNameBasedCaches
261-
.emplace_back(std::make_unique<KernelNameBasedCacheT>())
262-
.get();
260+
return &KernelNameBasedCaches.emplace_back();
263261
}
264262

265263
void GlobalHandler::releaseDefaultContexts() {

sycl/source/detail/global_handler.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <sycl/detail/spinlock.hpp>
1212
#include <sycl/detail/util.hpp>
1313

14+
#include <deque>
1415
#include <memory>
1516
#include <unordered_map>
1617

@@ -130,8 +131,7 @@ class GlobalHandler {
130131
InstWithLock<XPTIRegistry> MXPTIRegistry;
131132
// Thread pool for host task and event callbacks execution
132133
InstWithLock<ThreadPool> MHostTaskThreadPool;
133-
InstWithLock<std::vector<std::unique_ptr<KernelNameBasedCacheT>>>
134-
MKernelNameBasedCaches;
134+
InstWithLock<std::deque<KernelNameBasedCacheT>> MKernelNameBasedCaches;
135135
};
136136
} // namespace detail
137137
} // namespace _V1

0 commit comments

Comments
 (0)