Open maleadt opened 1 year ago
Fixed in https://github.com/intel/compute-runtime/commit/1a1bd04d4a7ee9fc0a5fedf2bcf656f40fc0f3f9
@maleadt could you confirm it is working fine now?
No. The issue doesn't seem to be a nullpointer exception.
❯ gdb --args /home/tim/Julia/depot/juliaup/julia-1.8.5+0.x64.linux.gnu/bin/julia --project wip.jl
Thread 1 "julia" received signal SIGSEGV, Segmentation fault.
#2 0x00007ffeb54a2acd in NEO::PrintFormatter::printKernelOutput(std::function<void (char*)> const&) (this=0x7fffffffb0f0, print=...)
at /workspace/srcdir/compute-runtime/shared/source/program/print_formatter.cpp:49
49 printString(formatString, print);
(gdb) l
44 } else {
45 while (currentOffset + sizeof(char *) <= printfOutputBufferSize) {
46 char *formatString = nullptr;
47 read(&formatString);
48 if (formatString != nullptr) {
49 printString(formatString, print);
50 }
51 }
52 }
53 }
(gdb) p formatString
$1 = 0xffffd556aa670000 <error: Cannot access memory at address 0xffffd556aa670000>
Handling nullptr on neo side seems to be correct, IGC should take a look at this issue from their side
Any update?
Hi, the issue was fixed in this commit
This still fails, now on non-Arc hardware too. I'm using NEO v24.5.28454 and IGC v1.0.15985.
[3137871] signal (11.1): Segmentation fault
in expression starting at REPL[4]:1
strnlen_s at /workspace/srcdir/compute-runtime/shared/source/helpers/string.h:40
printString at /workspace/srcdir/compute-runtime/shared/source/program/print_formatter.cpp:59
printKernelOutput at /workspace/srcdir/compute-runtime/shared/source/program/print_formatter.cpp:52
printOutput at /workspace/srcdir/compute-runtime/level_zero/core/source/printf_handler/printf_handler.cpp:76
printPrintfOutput at /workspace/srcdir/compute-runtime/level_zero/core/source/kernel/kernel_imp.cpp:1163
printKernelsPrintfOutput at /workspace/srcdir/compute-runtime/level_zero/core/source/cmdqueue/cmdqueue.cpp:196
postSyncOperations at /workspace/srcdir/compute-runtime/level_zero/core/source/cmdqueue/cmdqueue.cpp:213
synchronizeByPollingForTaskCount at /workspace/srcdir/compute-runtime/level_zero/core/source/cmdqueue/cmdqueue.cpp:188
synchronize at /workspace/srcdir/compute-runtime/level_zero/core/source/cmdqueue/cmdqueue.cpp:164
zeCommandQueueSynchronize at /workspace/srcdir/compute-runtime/level_zero/api/core/ze_cmdqueue_api_entrypoints.h:39
the issue was fixed in this commit
This still fails, now on non-Arc hardware too. I'm using NEO v24.5.28454 and IGC v1.0.15985.
@JablonskiMateusz / @amielcza igc-1.0.15985.0
contains 06eeecbc8a, so that fix was not good/enough?
I'm working on Julia support for oneAPI, and after upgrading to an A770 I noticed that printing an empty string segfaults.
Julia MWE:
The kernel above generates the following LLVM IR:
... which we translate to SPIR-V using the Khronos translator:
The compiled SPIR-V kernel is attached, and can be loaded (after extracting) using the following C-based loader:
Tested on Linux 6.2.11, both using compute-runtime 22.43.24595.30 from the Arch Linux repos as our own build of 22.53.25593. Printing non-empty strings works, as does printing empty strings on another system of mine (a NUC with Xe graphics, running Linux 5.10 with compute-runtime 22.53.25593).
kernel.spv.zip