CUDA-device-pointer-manipulation

Habe ich verwendet:

float *devptr;
//...
cudaMalloc(&devptr, sizeofarray);
cudaMemcpy(devptr, hostptr, sizeofarray, cudaMemcpyHostToDevice);

in CUDA C zu reservieren und füllen eines Arrays.
Jetzt bin ich versucht, führen Sie einen cuda-kernel, z.B.:

__global__ void kernelname(float *ptr)
{
   //...
}

in diesem array aber mit einem offset-Wert.
In C/C++ wäre es etwas wie dieses:

kernelname<<<dimGrid, dimBlock>>>(devptr+offset);

Jedoch, dies scheint nicht zu funktionieren.

Gibt es eine Möglichkeit, dies zu tun, ohne das senden der offset-Wert ein, um den kernel in einem separaten argument und verwenden Sie, dass der offset in den kernel-code?
Irgendwelche Ideen auf, wie dies zu tun?

InformationsquelleAutor pmcr | 2011-05-06
Schreibe einen Kommentar