OpenCL internal exception

OpenCL internal exception

This causes me a severe headaches for a couple of weeks. Something is happening now, which causes this internal exception (most likely tbb. I beg you to assist me in finding the problem. It may have something to do with images or printf, although I commented out all printf-s. I use both image3d_t and image2d_t as kernel parameters. My 3-4 .cl files are in total approximately 7500-8000 lines of code - only one kernel is executed, other files are full of utility functions. I need to have Intel OpenCL to keep me working.NVIDIA's implementation compiles my code in 220 seconds. I cannot use their platform for this project anymore, at least not every day.Surprisingly, my kernel compiles with NVIDIA's implementation and runs normally and outputs what is expected.
After the exception, the callstack shows (a bit meaningless, but anyway):
09600010() OclCpuBackEnd.dll!opencl_printf() + 0x248a bytes
I don't have any printf()-s anywhere in the code.
Please help

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

Noone with a clue?

Hi

Did the kernel worked for you on earlier versions of Intel SDK?

What changes did you do to kernel that it stopped working?

Do you know how much memory does your kernel consume?

Thanks, Shiri

Hi,
If you can send the kernel or similar kernel that cause same problem in our SDK, it will help us to trigger the problem
Thanks, Shiri

Well I will see about the kernel, since it is private, but if LLVM code or the result fromclGetProgramInfo(prog, CL_PROGRAM_BINARIES ... ) is suitable, with great certainty we can arrange a "stripped-version" demo program, which you can debug with your toolz. Ofcourse, as a first try, we can send you LLVM code

P.S. to previous post: i cannot directly decide what internal stuff to give to others

The binary version should be fine, but we need also the set ofparemters that you run the kernel.
Like buffer/image sizes, other parameters and global/local sizes provided to clEnqueueNDRange.

I believe we can arrange an application where we create the kernel with clCreateProgramWithBinary(), and then pass the parameters as ready buffers, read separately from a pre-created binary file. Then I assume you will be able to debug the whole execution sequence. I will keep in touch with further progress

You can use the Intel OpenCL SDK Offline Compiler to create kernel binaries. See product webpage and user guide for details on how to use this tool.

You can mark your next post as parivate if you don't want general availablity for your post, but be aware that we will post our response publicly.

Leave a Comment

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