[Pkg-opencl-devel] Bug#994833: OpenCL programs abort when intel-opencl-icd is installed

Giuseppe Bilotta giuseppe.bilotta at gmail.com
Tue Sep 21 14:54:34 BST 2021


Package: intel-opencl-icd
Version: 21.32.20609-1
Severity: critical

Running any OpenCL-enabled program with this ICD installed leads to:

Abort was called at 42 line in file:
./shared/source/built_ins/built_ins.cpp
Aborted

The relevant backtrace is:

#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff7da1536 in __GI_abort () at abort.c:79
#2  0x00007ffff6a13c47 in NEO::abortExecution () at ./shared/source/helpers/abort.cpp:14
#3  0x00007ffff6a2ea50 in NEO::abortUnrecoverable (line=line at entry=42, file=file at entry=0x7ffff6e5f8b8 "./shared/source/built_ins/built_ins.cpp") at ./shared/source/helpers/debug_helpers.cpp:26
#4  0x00007ffff6d9f2ef in operator() (__closure=0x7fffffffcb90) at ./shared/source/built_ins/built_ins.cpp:42
#5  std::__invoke_impl<void, NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#6  std::__invoke<NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#7  operator() (this=<optimized out>) at /usr/include/c++/10/mutex:717
#8  operator() (this=0x0) at /usr/include/c++/10/mutex:722
#9  _FUN () at /usr/include/c++/10/mutex:722
#10 0x00007ffff7d6aa7f in __pthread_once_slow (once_control=0x5555556fd9a0, init_routine=0x7ffff7413960 <__once_proxy>) at pthread_once.c:116
#11 0x00007ffff6d9f612 in __gthread_once (__func=<optimized out>, __once=0x5555556fd9a0) at /usr/include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:700
#12 std::call_once<NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__f=..., __once=...) at /usr/include/c++/10/mutex:729
#13 NEO::BuiltIns::getSipKernel (this=0x5555556fd590, type=<optimized out>, type at entry=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/built_ins.cpp:66
#14 0x00007ffff6d9fa4b in NEO::SipKernel::initBuiltinsSipKernel (type=type at entry=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/sip.cpp:50
#15 0x00007ffff6da0044 in NEO::SipKernel::initSipKernelImpl (type=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/sip.cpp:134
#16 0x00007ffff6aa0964 in NEO::Platform::initialize (this=0x5555556f9a10, devices=std::vector of length 1, capacity 1 = {...}) at ./opencl/source/platform/platform.cpp:142
#17 0x00007ffff6a4a94d in clGetPlatformIDs (numEntries=<optimized out>, platforms=<optimized out>, numPlatforms=<optimized out>) at ./opencl/source/api/api.cpp:101
#18 0x00007ffff6a4af44 in clIcdGetPlatformIDsKHR (numEntries=0, platforms=0x0, numPlatforms=0x7fffffffcf00) at ./opencl/source/api/api.cpp:137
#19 0x00007ffff7f470bb in khrIcdVendorAdd () from /opt/intel/oneapi/lib/libOpenCL.so.1
#20 0x00007ffff7f4bbff in khrIcdOsVendorsEnumerate () from /opt/intel/oneapi/lib/libOpenCL.so.1
#21 0x00007ffff7d6aa7f in __pthread_once_slow (once_control=0x7ffff7f4e688 <initialized>, init_routine=0x7ffff7f4ba40 <khrIcdOsVendorsEnumerate>) at pthread_once.c:116
#22 0x00007ffff7f47991 in clGetPlatformIDs () from /opt/intel/oneapi/lib/libOpenCL.so.1

Note that while this is obtained when using libOpenCL.so.1, the same
error is present when using the ocl-icd loader:

#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff7d9e536 in __GI_abort () at abort.c:79
#2  0x00007ffff6b37c47 in NEO::abortExecution () at ./shared/source/helpers/abort.cpp:14
#3  0x00007ffff6b52a50 in NEO::abortUnrecoverable (line=line at entry=42, file=file at entry=0x7ffff6f838b8 "./shared/source/built_ins/built_ins.cpp") at ./shared/source/helpers/debug_helpers.cpp:26
#4  0x00007ffff6ec32ef in operator() (__closure=0x7fffffffcba0) at ./shared/source/built_ins/built_ins.cpp:42
#5  std::__invoke_impl<void, NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#6  std::__invoke<NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#7  operator() (this=<optimized out>) at /usr/include/c++/10/mutex:717
#8  operator() (this=0x0) at /usr/include/c++/10/mutex:722
#9  _FUN () at /usr/include/c++/10/mutex:722
#10 0x00007ffff7f68a7f in __pthread_once_slow (once_control=0x5555557f7740, init_routine=0x7ffff7408960 <__once_proxy>) at pthread_once.c:116
#11 0x00007ffff6ec3612 in __gthread_once (__func=<optimized out>, __once=0x5555557f7740) at /usr/include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:700
#12 std::call_once<NEO::BuiltIns::getSipKernel(NEO::SipKernelType, NEO::Device&)::<lambda()>&> (__f=..., __once=...) at /usr/include/c++/10/mutex:729
#13 NEO::BuiltIns::getSipKernel (this=0x5555557f7330, type=<optimized out>, type at entry=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/built_ins.cpp:66
#14 0x00007ffff6ec3a4b in NEO::SipKernel::initBuiltinsSipKernel (type=type at entry=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/sip.cpp:50
#15 0x00007ffff6ec4044 in NEO::SipKernel::initSipKernelImpl (type=NEO::SipKernelType::Csr, device=...) at ./shared/source/built_ins/sip.cpp:134
#16 0x00007ffff6bc4964 in NEO::Platform::initialize (this=0x555555747bc0, devices=std::vector of length 1, capacity 1 = {...}) at ./opencl/source/platform/platform.cpp:142
#17 0x00007ffff6b6e94d in clGetPlatformIDs (numEntries=<optimized out>, platforms=<optimized out>, numPlatforms=<optimized out>) at ./opencl/source/api/api.cpp:101
#18 0x00007ffff6b6ef44 in clIcdGetPlatformIDsKHR (numEntries=0, platforms=0x0, numPlatforms=0x7fffffffcf28) at ./opencl/source/api/api.cpp:137
#19 0x00007ffff7f439f4 in _find_and_check_platforms (num_icds=7) at ocl_icd_loader.c:469
#20 __initClIcd () at ocl_icd_loader.c:773
#21 _initClIcd_real () at ocl_icd_loader.c:824
#22 0x00007ffff7f4474e in _initClIcd () at ocl_icd_loader.c:853
#23 clGetPlatformIDs (num_entries=0, platforms=0x0, num_platforms=0x7fffffffe034) at ocl_icd_loader.c:1014

The issue is present also when intel-opencl-icd is the only installed
ICD.

I used to be able to use the ICD without issues on this machine. I'm not
sure which upgrade broke it (in particulr, I'm not sure if this was
broken by an upgrade of this package or by a kernel upgrade).

Cheers,

Giuseppe Bilotta


-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages intel-opencl-icd depends on:
ii  libc6               2.32-4
ii  libgcc-s1           11.2.0-7
ii  libigc1             1.0.8279-1
ii  libigdfcl1          1.0.8279-1
ii  libigdgmm11         21.2.2+ds1-1
ii  libstdc++6          11.2.0-7
ii  ocl-icd-libopencl1  2.2.14-2

intel-opencl-icd recommends no packages.

intel-opencl-icd suggests no packages.

-- no debconf information



More information about the Pkg-opencl-devel mailing list