Skip to content

Commit 1000e33

Browse files
committed
[SYCL] Fix not found kernel due to empty kernel name when using set_arg(s)
Signed-off-by: Alexander Flegontov <[email protected]>
1 parent f4f7b83 commit 1000e33

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

sycl/include/CL/sycl/handler.hpp

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,7 @@ class __SYCL_EXPORT handler {
726726
MNDRDesc.set(std::move(NumWorkItems));
727727
MCGType = detail::CG::KERNEL;
728728
extractArgsAndReqs();
729+
MKernelName = getKernelName();
729730
}
730731

731732
#ifdef __SYCL_DEVICE_ONLY__
@@ -1185,6 +1186,7 @@ class __SYCL_EXPORT handler {
11851186
MKernel = detail::getSyclObjImpl(std::move(Kernel));
11861187
MCGType = detail::CG::KERNEL;
11871188
extractArgsAndReqs();
1189+
MKernelName = getKernelName();
11881190
}
11891191

11901192
void parallel_for(range<1> NumWorkItems, kernel Kernel) {
@@ -1218,6 +1220,7 @@ class __SYCL_EXPORT handler {
12181220
MNDRDesc.set(std::move(NumWorkItems), std::move(WorkItemOffset));
12191221
MCGType = detail::CG::KERNEL;
12201222
extractArgsAndReqs();
1223+
MKernelName = getKernelName();
12211224
}
12221225

12231226
/// Defines and invokes a SYCL kernel function for the specified range and
@@ -1238,6 +1241,7 @@ class __SYCL_EXPORT handler {
12381241
MNDRDesc.set(std::move(NDRange));
12391242
MCGType = detail::CG::KERNEL;
12401243
extractArgsAndReqs();
1244+
MKernelName = getKernelName();
12411245
}
12421246

12431247
/// Defines and invokes a SYCL kernel function.
@@ -1260,9 +1264,10 @@ class __SYCL_EXPORT handler {
12601264
MNDRDesc.set(range<1>{1});
12611265
MKernel = detail::getSyclObjImpl(std::move(Kernel));
12621266
MCGType = detail::CG::KERNEL;
1263-
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>())
1267+
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>()) {
12641268
extractArgsAndReqs();
1265-
else
1269+
MKernelName = getKernelName();
1270+
} else
12661271
StoreLambda<NameT, KernelType, /*Dims*/ 0, void>(std::move(KernelFunc));
12671272
#endif
12681273
}
@@ -1300,9 +1305,10 @@ class __SYCL_EXPORT handler {
13001305
MNDRDesc.set(std::move(NumWorkItems));
13011306
MKernel = detail::getSyclObjImpl(std::move(Kernel));
13021307
MCGType = detail::CG::KERNEL;
1303-
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>())
1308+
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>()) {
13041309
extractArgsAndReqs();
1305-
else
1310+
MKernelName = getKernelName();
1311+
} else
13061312
StoreLambda<NameT, KernelType, Dims, LambdaArgType>(
13071313
std::move(KernelFunc));
13081314
#endif
@@ -1336,9 +1342,10 @@ class __SYCL_EXPORT handler {
13361342
MNDRDesc.set(std::move(NumWorkItems), std::move(WorkItemOffset));
13371343
MKernel = detail::getSyclObjImpl(std::move(Kernel));
13381344
MCGType = detail::CG::KERNEL;
1339-
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>())
1345+
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>()) {
13401346
extractArgsAndReqs();
1341-
else
1347+
MKernelName = getKernelName();
1348+
} else
13421349
StoreLambda<NameT, KernelType, Dims, LambdaArgType>(
13431350
std::move(KernelFunc));
13441351
#endif
@@ -1373,9 +1380,10 @@ class __SYCL_EXPORT handler {
13731380
MNDRDesc.set(std::move(NDRange));
13741381
MKernel = detail::getSyclObjImpl(std::move(Kernel));
13751382
MCGType = detail::CG::KERNEL;
1376-
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>())
1383+
if (!MIsHost && !lambdaAndKernelHaveEqualName<NameT>()) {
13771384
extractArgsAndReqs();
1378-
else
1385+
MKernelName = getKernelName();
1386+
} else
13791387
StoreLambda<NameT, KernelType, Dims, LambdaArgType>(
13801388
std::move(KernelFunc));
13811389
#endif
@@ -1791,7 +1799,7 @@ class __SYCL_EXPORT handler {
17911799
unique_ptr_class<detail::HostKernelBase> MHostKernel;
17921800
/// Storage for lambda/function when using HostTask
17931801
unique_ptr_class<detail::HostTask> MHostTask;
1794-
detail::OSModuleHandle MOSModuleHandle;
1802+
detail::OSModuleHandle MOSModuleHandle = detail::OSUtil::ExeModuleHandle;
17951803
// Storage for a lambda or function when using InteropTasks
17961804
std::unique_ptr<detail::InteropTask> MInteropTask;
17971805
/// The list of events that order this operation.

0 commit comments

Comments
 (0)