Hello everyone!
I've faced an issue relating to OpenCL implementation on Intel HD 4000 GPU (i5-3370U). When I'm building processing chain and enqueue compute kernels to cl_command_queue, runtime could just freeze on some clEnqueueNDRangeKernel() call. This bug isn't observed on any CPU or HD 4600 GPU (i7-4770K). All AMD platforms are also fine. I've provided a sample that demonstrates the issue. I suppose there is some kind of deadlock in OpenCL runtime threads. The test can be passed if number of iterations or steps in main processing loop are reduced. It also works if you add clWaitForEvents() during formation of processing chain (commented in provided source). By the way, the system is Windows 8.1 x64 with the latest 3345 drivers and 2013 R3 SDK.
链接已复制
Hello Raghu! Thanks for your reply!
Suddenly, I have no chance to test this issue against Win7.
By the way, I've misspelled, the problem is presented on HD 4000 GPU of i5-3317U (not i5-3370U).
Just curious, you haven't tried it on other systems with HD4000/Win8.1? I found a system with HD4000 but it is i7-3770 with win7. I will try to install win8.1 and test on this system and get back to you.
Raghu
I've just been about to ask you to check the issue on Win7 before installing Win8.1 (=. Probably it's already there (=.
Thanks for your attention. I really appreciate it. Will await your replay.
Hi Evgeniy,
It doesnt look like a deadlock issue. Or at least that's not the only issue. When I tried to debug it I got access violation at the call
clSetKernelArg(handle->kernel, kernelArgNum++, localMemSize, NULL);
But if I run it outside the debugger (ctrl+f5) it appears like the program is hung. Not sure if you actually tried to debug. I'll investigate and open a bug is its indeed a bug.
Thanks,
Raghu
Hi Raghu, of cause I've intensively debuged application to locate the problem and further wrote simplified test to reproduce it and debuged it too. I've just rechecked everything and I don't see any access violations, all clSetKernelArg calls are fine. Program hangs on clEnqueueNDRangeKernel either under or outside debuger and it still looks like runtime deadlock relating to cl_events. I suppose we don't observe the same errors due to different operating systems we are using. Maybe you will have a chance to run the test on Win8.1 machine to obtain similar results. Probably there are 2 bugs.
Hi Dear....during my recent thesis work I came across the same problem on the same environment.....My OpenCL code runs perfectly on CPU but when I try to use the HD 4000 GPU it crashed at clEnqueueNDRangeKernel with Access Violation error. I am assuming that you found a solution to it....
