On Thu, Oct 06, 2011 at 08:19:41AM +0200, Andreas Kloeckner wrote:
> On Wed, 5 Oct 2011 19:59:16 -0300, andrew cooke <[email protected]> wrote:
> > i am having trouble working out how to clear the kernel cache.  the docs
> > suggest clear_context_caches() from pyopencl.tools, but it doesn't seem to 
> > be
> > there:
> > 
> > Python 3.2 (r32:88445, Jun  9 2011, 09:31:13) 
> > [GCC 4.5.1 20101208 [gcc-4_5-branch revision 167585]] on linux2
> > Type "help", "copyright", "credits" or "license" for more information.
> > >>> from pyopencl.tools import clear_context_caches
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in <module>
> > ImportError: cannot import name clear_context_caches
> > >>> from pyopencl import VERSION
> > >>> VERSION
> > (2011, 1, 2)
> > 
> > what should i be doing?
> 
> 1) Why do you need to clear the cache? Whatever it is, it's likely
> indicative of a bug in PyOpenCL.

OK, so maybe there is a better way to do this...

http://stackoverflow.com/questions/7622293/how-to-structure-large-opencl-kernels

I have a project with several kernels that share structures and logic.  The
Program() object takes only a single file, so the simplest way to manage this
that I have foud is to use #include to assemble a kernel from several files
(in contrast, clCreateProgramWithSource() takes multiple files).  Pyopencl's
caching does not take acocunt of these included files.

> 2) rm -Rf /tmp/pyopencl-compiler-cache-v2-uidandreas-py2.6.7.final.0/

OK, thanks.

> (With different values subsituted in in the obvious places.)
> 
> 3) The facility you found only caches the stage from array operator to
> kernel, i.e. it is more specialized.

I did not find it.  It appears to be missing.

Andrew

_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to