Memory allocation with driver API

Hello,

having a little bit of trouble with my C# implementations I need to ask a few questions.

Assume I have following code

__device__ float *ResultImageMatrix=NULL;

extern "C" void __global__ backprojectorCUDA()

{

  ResultImageMatrix[0]=0;

  ResultImageMatrix[1]=0;

  ResultImageMatrix[2]=0;

}

From my C# environment I need to allocate the ResultImageMatrix since I don’t now in advance the size of the matrix.

Through the driver API I obtain the symbol by using cuModuleGetGlobal and there I get a CUdeviceptr which is OK.

I now need to allocate the data on the device, which I do with cuMemAlloc. But with this method I get a new CUdeviceptr which I cannot assign to the ResultImageMatrix.

How can I achieve to allocate memory for the ResultImageMatrix? I somehow need a way to set the new CUdeviceptr to the symbol.

Another question is if I had a ResultImageMatrix defined like this:

float ResultImageMatrix[1000];

is it possible to reallocate such a matrix?

I hope everything is clear for the reader, otherwise just write to me so that I can make things clearer.

Thanks

Martin