Hi all,

I would like to try to interface PyCuda with NumbaPro (in particular, using 
NumbaPro for the FFT).  Attempts like the following fail:

import numbapro.cuda
import pycuda.gpuarray

A = np.random.random((2, 2, 2))
cu_A = numbapro.cuda.to_device(A)
pycu_A = pycuda.gpuarray.GPUArray(
shape=cu_A.shape, dtype=cu_A.dtype, gpudata=cu_A.gpu_data, 
strides=cu_A.strides)
pycu_A.get()

---------------------------------------------------------------------------
ArgumentError                             Traceback (most recent call last)
<ipython-input-6-242ab62d4ae4> in <module>()
----> 1 pycu_A.get()

/data/apps/anaconda/1.3.1/lib/python2.7/site-packages/pycuda/gpuarray.pyc in 
get(self, ary, pagelocked)
250 
251         if self.size:
--> 252             drv.memcpy_dtoh(ary, self.gpudata)
253         return ary
254 

ArgumentError: Python argument types in
pycuda._driver.memcpy_dtoh(numpy.ndarray, DeviceMemory)
did not match C++ signature:
memcpy_dtoh(pycudaboost::python::api::object dest, unsigned long long src)
-----------------------

I am guessing that the issue is the gpudata object which probably needs to be 
of type pycuda.driver.DeviceAllocation but which cannot be allocated in python. 
 Is there some way of creating a pycuda.driver.DeviceAllocation proxy that 
actually points to the NumbaPro array data (which has the following attributes:

cu_A.gpu_data.bytesize
cu_A.gpu_data.device_ctypes_pointer
cu_A.gpu_data.device
cu_A.gpu_data.driver

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

Reply via email to