Original Ask Link
Overview: Array allocations can be done through Cudamallocarray () and Cudamalloc3darray ()
1, Cudamallocarray ()
cudaerror_t cudamallocarray ( struct Cudaarray * * array, const struct CUDACHANNELFORMATDESC * Desc, size_t width, size_t height = 0, unsigned int flags = 0 )
Example: 2DArray allocation
1 Cudaarray *d_volumearray;2 Cudachannelformatdesc desc = cudacreatechanneldesc (+, 0, 0, 0, cudachannelformatkindfloat) ; 3 Cudamallocarray (&d_volumearray, &desc, 4 cudamemcpytoarray (d_volumearray, 0, 0, H_volume, sizeof ( float) *128*128, cudamemcpydevicetodevice);
2, Cudamalloc3darray ()
1 cudaerror_t cudamalloc3darray ( 2 struct Cudaarray * * array,3 const struct Cudachannelformatdesc * desc,4 struct cudaextent extent,5 unsigned int flags = 0 6)
Cases:
1 Cudachannelformatdesc channeldesc = cudacreatechanneldesc<uchar> (); 2 Cudaarray *d_volumeArray;3 Cudamalloc3darray (&d_volumearray, &channeldesc, volumsize);
Cuda Array Assignment