Skip to content

Commit 29fd99f

Browse files
[SYCL] Use 'kernel's info instance for more image origins
1 parent 8ef08d4 commit 29fd99f

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

sycl/source/detail/kernel_impl.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ kernel_impl::kernel_impl(Managed<ur_kernel_handle_t> &&Kernel,
3232
MKernelBundleImpl(KernelBundleImpl ? KernelBundleImpl->shared_from_this()
3333
: nullptr),
3434
MIsInterop(true), MKernelArgMaskPtr{ArgMask},
35-
MInteropDeviceKernelInfo(createCompileTimeKernelInfo(getName())) {
35+
MOwnsDeviceKernelInfo(true),
36+
MDeviceKernelInfo(createCompileTimeKernelInfo(getName())) {
3637
ur_context_handle_t UrContext = nullptr;
3738
// Using the adapter from the passed ContextImpl
3839
getAdapter().call<UrApiKind::urKernelGetInfo>(
@@ -59,7 +60,8 @@ kernel_impl::kernel_impl(Managed<ur_kernel_handle_t> &&Kernel,
5960
MKernelBundleImpl(KernelBundleImpl.shared_from_this()),
6061
MIsInterop(MDeviceImageImpl->getOriginMask() & ImageOriginInterop),
6162
MKernelArgMaskPtr{ArgMask}, MCacheMutex{CacheMutex},
62-
MInteropDeviceKernelInfo(MIsInterop
63+
MOwnsDeviceKernelInfo(MDeviceImageImpl->getOriginMask() & ~ImageOriginSYCLOffline),
64+
MDeviceKernelInfo(MOwnsDeviceKernelInfo
6365
? createCompileTimeKernelInfo(getName())
6466
: createCompileTimeKernelInfo()) {
6567
// Enable USM indirect access for interop and non-sycl-jit source kernels.

sycl/source/detail/kernel_impl.hpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,10 +240,9 @@ class kernel_impl {
240240
std::string_view getName() const;
241241

242242
DeviceKernelInfo &getDeviceKernelInfo() {
243-
return MIsInterop
244-
? MInteropDeviceKernelInfo
245-
: ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
246-
KernelNameStrT(getName()));
243+
return MOwnsDeviceKernelInfo ? MDeviceKernelInfo
244+
: ProgramManager::getInstance().getOrCreateDeviceKernelInfo(
245+
KernelNameStrT(getName()));
247246
}
248247

249248
private:
@@ -259,9 +258,11 @@ class kernel_impl {
259258
std::mutex *MCacheMutex = nullptr;
260259
mutable std::string MName;
261260

262-
// It is used for the interop kernels only.
261+
// Used for images that aren't obtained with standard SYCL offline
262+
// compilation.
263263
// For regular kernel we get DeviceKernelInfo from the ProgramManager.
264-
DeviceKernelInfo MInteropDeviceKernelInfo;
264+
bool MOwnsDeviceKernelInfo = false;
265+
DeviceKernelInfo MDeviceKernelInfo;
265266

266267
bool isBuiltInKernel(device_impl &Device) const;
267268
void checkIfValidForNumArgsInfoQuery() const;

0 commit comments

Comments
 (0)