[PyCUDA] Successive calls not freeing memory
Andreas Kloeckner
lists at informa.tiker.net
Tue Oct 11 18:27:36 PDT 2011
On Tue, 11 Oct 2011 17:41:56 -0700, Matthew Graham <mjg at cacr.caltech.edu> wrote:
> Hi,
>
> I'm making successive calls to a function with each call requiring an initialization and a release of the CUDA context. However, memory on the device is not getting freed between calls. What I have in a call is:
>
> driver.init()
> dev = driver.Device(num)
> context = dev.make_context()
> print driver.mem_get_info()
> mod = compiler.SourceModule(code)
> ... # application logic here
> context.pop()
>
> and this is showing:
>
> Obj 1
> (195731456, 265945088)
> (182132736, 265945088)
> (168099840, 265945088)
> (154075136, 265945088)
> Obj 2
> (140050432, 265945088)
> (126025728, 265945088)
> (112001024, 265945088)
> (98009088, 265945088)
> Obj 3
> (83984384, 265945088)
> Obj 4
> (69959680, 265945088)
> (55934976, 265945088)
> (41517056, 265945088)
> (26443776, 265945088)
> Obj 5
> [11/Oct/2011:16:23:57] HTTP Traceback (most recent call last):
> File "/Library/Frameworks/Python.framework/Versions/6.0.0/lib/python2.6/site-packages/cherrypy/_cprequest.py", line 606, in respond
> cherrypy.response.body = self.handler()
> File "/Library/Frameworks/Python.framework/Versions/6.0.0/lib/python2.6/site-packages/cherrypy/_cpdispatch.py", line 25, in __call__
> return self.callable(*self.args, **self.kwargs)
> File "/Users/mjg/Projects/python/kiss/culsp.py", line 203, in culsp
> context = dev.make_context()
> MemoryError: cuCtxCreate failed: out of memory
>
> I've tried to put in del calls for the gpuarrays used after popping the context (as per the 2DFFT and MultipleThreads example codes) but this is not doing anything. How can I release the memory on the device between calls?
Try pycuda.tools.clear_context_caches().
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.tiker.net/pipermail/pycuda/attachments/20111011/ece386e3/attachment.pgp>
More information about the PyCUDA
mailing list