Compiler Hang

I have a kernel that hangs on clBuildProgram(). I am unable to upload the kernel or the calling code here (boss says no) but I’d still like to report the hang.

The kernel I have does a sha512 transform. I have tested this code more thoroughly on an ATI card with OpenCL so I am confident that the program is correct. The main loop of the transform has been unrolled so it may get close to the 2 million instruction limit. I left my program running over night and it still didn’t compile so I don’t think its just taking a long time.

I also tried running my program in gdb and interrupting it periodically to see where in the execution stack it was. Here is a short trace:

0x00007ffff7588a28 in ?? () from /usr/lib/libcuda.so.1

0x00007ffff707f440 in ?? () from /usr/lib/libcuda.so.1

0x00007ffff75887e8 in ?? () from /usr/lib/libcuda.so.1

0x00007ffff75888b2 in ?? () from /usr/lib/libcuda.so.1

0x00007ffff707f440 in ?? () from /usr/lib/libcuda.so.1

0x00007ffff75889bf in ?? () from /usr/lib/libcuda.so.1

And here is the full stack:

(gdb) bt

#0  0x00007ffff75889bf in ?? () from /usr/lib/libcuda.so.1

#1  0x00007ffff7588ba6 in ?? () from /usr/lib/libcuda.so.1

#2  0x00007ffff7588ba6 in ?? () from /usr/lib/libcuda.so.1

#3  0x00007ffff7588ba6 in ?? () from /usr/lib/libcuda.so.1

#4  0x00007ffff7588b76 in ?? () from /usr/lib/libcuda.so.1

#5  0x00007ffff7588b76 in ?? () from /usr/lib/libcuda.so.1

#6  0x00007ffff7588b76 in ?? () from /usr/lib/libcuda.so.1

#7  0x00007ffff7588ba6 in ?? () from /usr/lib/libcuda.so.1

#8  0x00007ffff7588ba6 in ?? () from /usr/lib/libcuda.so.1

#9  0x00007ffff7588bdf in ?? () from /usr/lib/libcuda.so.1

#10 0x00007ffff7588b76 in ?? () from /usr/lib/libcuda.so.1

#11 0x00007ffff7588b76 in ?? () from /usr/lib/libcuda.so.1

#12 0x00007ffff75896cb in ?? () from /usr/lib/libcuda.so.1

#13 0x00007ffff748620b in ?? () from /usr/lib/libcuda.so.1

#14 0x00007ffff7078c5d in ?? () from /usr/lib/libcuda.so.1

#15 0x00007ffff7072d0e in ?? () from /usr/lib/libcuda.so.1

#16 0x00007ffff74db527 in ?? () from /usr/lib/libcuda.so.1

#17 0x00007ffff71aeef2 in ?? () from /usr/lib/libcuda.so.1

#18 0x00007ffff711a813 in ?? () from /usr/lib/libcuda.so.1

#19 0x00007ffff715f396 in ?? () from /usr/lib/libcuda.so.1

#20 0x00007ffff71183fc in ?? () from /usr/lib/libcuda.so.1

#21 0x00007ffff711eef4 in ?? () from /usr/lib/libcuda.so.1

#22 0x00007ffff7111c42 in ?? () from /usr/lib/libcuda.so.1

#23 0x00007ffff6fa147b in ?? () from /usr/lib/libcuda.so.1

#24 0x00007ffff7048f33 in ?? () from /usr/lib/libcuda.so.1

#25 0x0000000000401dff in main ()

If there is anything else I can do to help debug (short of uploading the source) let me know.

EDIT:

Almost forgot:

I’m running

  • Ubuntu 10.10 x64

  • cudatoolkit_4.0.17_linux_64_ubuntu10.10

  • gpucomputingsdk_4.0.17_linux

  • devdriver_4.0_linux64_270.41.19

  • cudatools_4.0.17_linux_64