Skip to content

Commit ce66c47

Browse files
committed
Address review comment
1 parent 3758e75 commit ce66c47

File tree

3 files changed

+15
-30
lines changed

3 files changed

+15
-30
lines changed

sycl/source/detail/kernel_impl.cpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,12 @@ kernel_impl::kernel_impl(Managed<ur_kernel_handle_t> &&Kernel,
2727
MKernelBundleImpl(KernelBundleImpl ? KernelBundleImpl->shared_from_this()
2828
: nullptr),
2929
MIsInterop(true), MKernelArgMaskPtr{ArgMask},
30+
MInteropDeviceKernelInfoHolder(CompileTimeKernelInfoTy{getName()}),
3031
MDeviceKernelInfo(
3132
MIsInterop
32-
? DeviceKernelInfoUniquePtr(
33-
new DeviceKernelInfo(
34-
CompileTimeKernelInfoTy{std::string_view(getName())}),
35-
DeviceKernelInfoDeleter)
36-
: DeviceKernelInfoUniquePtr(
37-
&ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
38-
KernelNameStrT(getName())),
39-
noopDeviceKernelInfoDeleter)) {
33+
? MInteropDeviceKernelInfoHolder
34+
: ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
35+
KernelNameStrT(getName()))) {
4036
ur_context_handle_t UrContext = nullptr;
4137
// Using the adapter from the passed ContextImpl
4238
getAdapter().call<UrApiKind::urKernelGetInfo>(
@@ -63,16 +59,12 @@ kernel_impl::kernel_impl(Managed<ur_kernel_handle_t> &&Kernel,
6359
MKernelBundleImpl(KernelBundleImpl.shared_from_this()),
6460
MIsInterop(MDeviceImageImpl->getOriginMask() & ImageOriginInterop),
6561
MKernelArgMaskPtr{ArgMask}, MCacheMutex{CacheMutex},
62+
MInteropDeviceKernelInfoHolder(CompileTimeKernelInfoTy{getName()}),
6663
MDeviceKernelInfo(
6764
MIsInterop
68-
? DeviceKernelInfoUniquePtr(
69-
new DeviceKernelInfo(
70-
CompileTimeKernelInfoTy{std::string_view(getName())}),
71-
DeviceKernelInfoDeleter)
72-
: DeviceKernelInfoUniquePtr(
73-
&ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
74-
KernelNameStrT(getName())),
75-
noopDeviceKernelInfoDeleter)) {
65+
? MInteropDeviceKernelInfoHolder
66+
: ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
67+
KernelNameStrT(getName()))) {
7668
// Enable USM indirect access for interop and non-sycl-jit source kernels.
7769
// sycl-jit kernels will enable this if needed through the regular kernel
7870
// path.

sycl/source/detail/kernel_impl.hpp

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,7 @@ class kernel_impl {
238238
std::mutex *getCacheMutex() const { return MCacheMutex; }
239239
std::string_view getName() const;
240240

241-
DeviceKernelInfo *getDeviceKernelInfoPtr() const {
242-
return MDeviceKernelInfo.get();
243-
}
241+
DeviceKernelInfo &getDeviceKernelInfo() const { return MDeviceKernelInfo; }
244242

245243
private:
246244
Managed<ur_kernel_handle_t> MKernel;
@@ -255,16 +253,11 @@ class kernel_impl {
255253
std::mutex *MCacheMutex = nullptr;
256254
mutable std::string MName;
257255

258-
using DeviceKernelInfoDeleterTy = void (*)(DeviceKernelInfo *);
259-
using DeviceKernelInfoUniquePtr =
260-
std::unique_ptr<DeviceKernelInfo, DeviceKernelInfoDeleterTy>;
261-
DeviceKernelInfoUniquePtr MDeviceKernelInfo;
262-
263-
static void DeviceKernelInfoDeleter(DeviceKernelInfo *Ptr) { delete Ptr; }
264-
265-
static void noopDeviceKernelInfoDeleter(DeviceKernelInfo *) {
266-
// do nothing
267-
}
256+
// For the interop kernel we create the DeviceKernelInfo
257+
// as part of the kernel_impl
258+
// For regular kernel we get DeviceKernelInfo from the ProgramManager
259+
DeviceKernelInfo MInteropDeviceKernelInfoHolder;
260+
DeviceKernelInfo &MDeviceKernelInfo;
268261

269262
bool isBuiltInKernel(device_impl &Device) const;
270263
void checkIfValidForNumArgsInfoQuery() const;

sycl/source/handler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2538,7 +2538,7 @@ sycl::detail::CGType handler::getType() const { return impl->MCGType; }
25382538
void handler::setDeviceKernelInfo(kernel &&Kernel) {
25392539
MKernel = detail::getSyclObjImpl(std::move(Kernel));
25402540
MKernelName = getKernelName();
2541-
setDeviceKernelInfoPtr(MKernel->getDeviceKernelInfoPtr());
2541+
setDeviceKernelInfoPtr(&MKernel->getDeviceKernelInfo());
25422542
setType(detail::CGType::Kernel);
25432543

25442544
// If any extra actions are added here make sure that logic around

0 commit comments

Comments
 (0)