Freddie Witherden <[email protected]> writes:
> This came up a while ago on the mpi4py mailing list [1] and with CUDA 6
> brining unified virtual memory it may become more important in the future.
>
> It would be nice if PyCUDA device allocations provided a method for
> creating a suitable Python buffer object: e.g, myalloc.asbuf(offset=0,
> sz=...).  This would provide a clean way for PyCUDA and mpi4py to
> interoperate (as the wrapped MPI functions expect Python buffer objects
> as opposed to pointers).
>
> Currently one must either resort to writing a C extension or hacks such as:
>
>     import ctypes as ct
>
>     make_buf = ct.pythonapi.PyBuffer_FromMemory
>     make_buf.argtypes = [ct.c_void_p, ct.c_ssize_t]
>     make_buf.restype = ct.py_object
>
>     cubuf = cuda.mem_alloc(SZ*8)
>     pybuf = make_buf(long(cubuf), SZ*8)

Done:

http://documen.tician.de/pycuda/driver.html#pycuda.driver.DeviceAllocation.as_buffer

Andreas

Attachment: pgpEDWdPA_nSI.pgp
Description: PGP signature

_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda

Reply via email to