On Sun, 29 Apr 2012 13:54:51 -0400, Devin Jeanpierre <jeanpierreda(a)gmail.com>
My system is an Intel core i5 laptop, no GPU. It's
running Fedora (the
most recent one, I've never been able to find version numbers), and
I'm using the Intel OpenCL implementation (version 1.5) for 64-bit
Linux. My PyOpenCL version is 2011.2 . Python is 2.7.2
In getting started for OpenCL development, I started writing a kernel.
That kernel did not ever halt. I've pared down the arguments to the
bare minimum -- if I remove one of those arguments, then the kernel
halts. That behavior is confusing and alarming. The arguments aren't
_used_, but as long as they are part of the function signature they
cause the OpenCL kernel to work forever rather than halting.
Furthermore, top reports 350+% CPU usage, so it's not blocking or
anything -- it's busy working. If my NDRange only has one work-item,
then I get about 100% CPU usage. So even just a single kernel instance
In an effort to rule out PyOpenCL problems, I managed to rule them in:
a C port of the Python program, with the same kernel, did not take
forever to execute. It's not an exact copy, and I don't really know
what I'm doing, so if there are different semantics please point them
out, as they could also explain differing behavior.
Here is a link to the Python and C code that reproduces and doesn't
reproduce this problem, respectively:
If you can offer any help or advice, it'd be much appreciated.
FWIW, your program finishes just fine for me, using AMD's CPU CL and
Intel's most recent '2012' CPU CL package. I don't have their version
1.5 around any more, but if there was a hang with that version, I'd
imagine that would have been a bug that they've resolved.