Compiler crash with CL 2013 beta

Compiler crash with CL 2013 beta

Hi there,

it appears that some code in PyOpenCL's test suite (version from git) manages to crash the compiler (?) in the 2013 beta. Here's the (moderately unhelpful) backtrace:

#0 0x00007fffeebe5b87 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#1 0x00007fffeebe5f37 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#2 0x00007fffeebe94ea in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#3 0x00007fffeebe9915 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#4 0x00007fffee69cce8 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#5 0x00007fffee69dc80 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#6 0x00007fffee69de3b in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#7 0x00007fffeebc7cf8 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#8 0x00007fffee69c9f7 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#9 0x00007fffee69dbd1 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#10 0x00007fffee491386 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#11 0x00007fffee48e6a3 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#12 0x00007fffee48a14a in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
#13 0x00007ffff1bfb937 in Intel::OpenCL::CPUDevice::ProgramService::BuildProgram(void*, char const*, int*) ()
from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libcpu_device.so
#14 0x00007ffff296e895 in Intel::OpenCL::Framework::LinkTask::Execute() () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libintelocl.so
#15 0x00007ffff24cdb09 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtask_executor.so
#16 0x00007ffff24d2166 in Intel::OpenCL::TaskExecutor::in_order_executor_task::execute() () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtask_executor.so
#17 0x00007ffff218b3dc in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtbb.so.2
#18 0x00007ffff21887ec in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtbb.so.2
#19 0x00007ffff218688b in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtbb.so.2
#20 0x00007ffff2183ea7 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtbb.so.2
#21 0x00007ffff2183db6 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libtbb.so.2
#22 0x00007ffff7bc7b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#23 0x00007ffff6a3070d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#24 0x0000000000000000 in ?? ()
(gdb) infor threads
Undefined command: "infor". Try "help".
(gdb) info threads
Id Target Id Frame
4 Thread 0x7fffe7fff700 (LWP 15839) "python" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:39
3 Thread 0x7fffed3b5700 (LWP 15840) "python" syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:39
* 2 Thread 0x7fffed7b6700 (LWP 15838) "python" 0x00007fffeebe5b87 in ?? () from /home/andreas/pack/intel-opencl-2013-beta/lib64/OpenCL/vendors/intel/libOclCpuBackEnd.so
1 Thread 0x7ffff7fbc700 (LWP 15834) "python" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162

You can reproduce this by grabbing pyopencl from git:

$ git clone http://github.com/inducer/pyopencl

then building pyopencl as described here: http://wiki.tiker.net/PyOpenCL/Installation

and then running:

$ cd pyopencl/test
$ python test_array.py 'test_scan(cl.create_some_context)'

I'd much appreciate any help.
Andreas

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Is there anyway you can isolate this and provide us a small reproducer?

Thanks,
Raghu

Sure, attached. Note that you should be able to just extract the CL kernel and compile that using any means you see fit, and experience the segfault. (i.e. the Python bits are entirely optional)

Andreas

Attachments: 

AttachmentSize
Downloadtext/plain intel-break.py.txt6.35 KB

Thanks. I am able to reproduce the crash on CPU. I'll debug and file a bug. I will keep you posted on any updates.

Raghu

Leave a Comment

Please sign in to add a comment. Not a member? Join today