想用cuda实现一个三维数组的纹理绑定,然后在核函数中通过tex3D()函数访问其中的值。不知道如何将在内存中的二维数组copy到cudaArray中;
在内存中的数据格式是:
short* h_data[30];
int nWid = 50;
int nHei = 50;
for(int i = 0; i < 30; i++)
{
h_data[i] = new short(nWid*nHei);
}
定义的cuda数组为
cudaArray* d_DataArray;
cudaExtent d_dataSize;
d_dataSize.width = nWid ;
d_dataSize.height = nHei ;
d_dataSize.depth = 30;
cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc ();
cudaMalloc3DArray(&d_DataArray,&channelDesc,d_dataSize);
请教如何将内存的数据h_data拷贝到cuda数组d_DataArray中去呢?谢谢。