Skip to content

Commit 7c80f44

Browse files
authored
[SYCL] Remove the workaround for long kernel names in the L0 plugin (#2875)
1 parent ae3d599 commit 7c80f44

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

sycl/plugins/level_zero/pi_level_zero.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2994,7 +2994,7 @@ pi_result piKernelCreate(pi_program Program, const char *KernelName,
29942994
return mapError(ZeResult);
29952995

29962996
try {
2997-
*RetKernel = new _pi_kernel(ZeKernel, Program, KernelName);
2997+
*RetKernel = new _pi_kernel(ZeKernel, Program);
29982998
} catch (const std::bad_alloc &) {
29992999
return PI_OUT_OF_HOST_MEMORY;
30003000
} catch (...) {
@@ -3073,12 +3073,19 @@ pi_result piKernelGetInfo(pi_kernel Kernel, pi_kernel_info ParamName,
30733073
case PI_KERNEL_INFO_PROGRAM:
30743074
return ReturnValue(pi_program{Kernel->Program});
30753075
case PI_KERNEL_INFO_FUNCTION_NAME:
3076-
// TODO: Replace with the line in the comment once bug in the Level Zero
3077-
// driver will be fixed. Problem is that currently Level Zero driver
3078-
// truncates name of the returned kernel if it is longer than 256 symbols.
3079-
//
3080-
// return ReturnValue(ZeKernelProperties.name);
3081-
return ReturnValue(Kernel->KernelName.c_str());
3076+
try {
3077+
size_t Size = 0;
3078+
ZE_CALL(zeKernelGetName(Kernel->ZeKernel, &Size, nullptr));
3079+
char *KernelName = new char[Size];
3080+
ZE_CALL(zeKernelGetName(Kernel->ZeKernel, &Size, KernelName));
3081+
pi_result Res = ReturnValue(static_cast<const char *>(KernelName));
3082+
delete[] KernelName;
3083+
return Res;
3084+
} catch (const std::bad_alloc &) {
3085+
return PI_OUT_OF_HOST_MEMORY;
3086+
} catch (...) {
3087+
return PI_ERROR_UNKNOWN;
3088+
}
30823089
case PI_KERNEL_INFO_NUM_ARGS:
30833090
return ReturnValue(pi_uint32{ZeKernelProperties.numKernelArgs});
30843091
case PI_KERNEL_INFO_REFERENCE_COUNT:

sycl/plugins/level_zero/pi_level_zero.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -695,18 +695,14 @@ struct _pi_program : _pi_object {
695695
};
696696

697697
struct _pi_kernel : _pi_object {
698-
_pi_kernel(ze_kernel_handle_t Kernel, pi_program Program,
699-
const char *KernelName)
700-
: ZeKernel{Kernel}, Program{Program}, KernelName(KernelName) {}
698+
_pi_kernel(ze_kernel_handle_t Kernel, pi_program Program)
699+
: ZeKernel{Kernel}, Program{Program} {}
701700

702701
// Level Zero function handle.
703702
ze_kernel_handle_t ZeKernel;
704703

705704
// Keep the program of the kernel.
706705
pi_program Program;
707-
708-
// TODO: remove when bug in the Level Zero runtime will be fixed.
709-
std::string KernelName;
710706
};
711707

712708
struct _pi_sampler : _pi_object {

0 commit comments

Comments
 (0)