我使用过:
float *devptr;
//...
cudaMalloc(&devptr, sizeofarray);
cudaMemcpy(devptr, hostptr, sizeofarray, cudaMemcpyHostToDevice);
在CUDA C中分配和填充数组。 现在我正在尝试运行一个CUDA内核,例如:
__global__ void kernelname(float *ptr)
{
//...
}
在数组中加上一个偏移量的话,在C/C++中应该是这样的:
kernelname<<<dimGrid, dimBlock>>>(devptr+offset);
然而,这似乎不起作用。
有没有一种方法可以在不将偏移值作为单独参数发送到内核并在内核代码中使用该偏移的情况下完成此操作?有什么想法吗?