Hi,

I've been using PyCuda quite a bit recently. Very nice!
I'm trying to use memcpy_atod to message a chunk of CPU data to the GPU
where the size/shapes of the input and output arrays don't match (though
the size of the data transfer certain does).

In the C/C++ world, I would think of this as a cudaMemcpy with some pointer
arithmetic on the host buffer. Here's an example of what I'm trying to do:

import numpy as np
import pycuda.autoinit
import pycuda.driver as cuda
import pycuda.gpuarray as gpuarray

x = np.ones((40),dtype="float32")
xgpu = gpuarray.zeros((10),dtype="float32")
print xgpu.get()

cuda.memcpy_atod(xgpu.gpudata,x[20:30],0,10)
print xgpu.get()

I see the error:

Boost.Python.ArgumentError: Python argument types in
    pycuda._driver.memcpy_atod(DeviceAllocation, numpy.ndarray, int, int)
did not match C++ signature:
    memcpy_atod(unsigned long long dest, pycuda::array ary, unsigned int
index, unsigned int len)

Can memcpy_atod be used for my purposes? If so, what do I need to change in
order to make this work?

Thanks in advance!
-Paul
_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda

Reply via email to