|
Allocates a CUDA array according to the cudaChannelFormatDesc structure desc and returns a handle to the new CUDA array in *array .
The cudaChannelFormatDesc is defined as: where cudaChannelFormatKind is one of cudaChannelFormatKindSigned, cudaChannelFormatKindUnsigned, or cudaChannelFormatKindFloat.
cudaMalloc3DArray() is able to allocate 1D, 2D, or 3D arrays.
- A 1D array is allocated if the height and depth extent are both zero. For 1D arrays valid extent ranges are {(1, 8192), 0, 0}.
- A 2D array is allocated if only the depth extent is zero. For 2D arrays valid extent ranges are {(1, 65536), (1, 32768), 0}.
- A 3D array is allocated if all three extents are non-zero. For 3D arrays valid extent ranges are {(1, 2048), (1, 2048), (1, 2048)}.
- Note:
- Due to the differing extent limits, it may be advantageous to use a degenerate array (with unused dimensions set to one) of higher dimensionality. For instance, a degenerate 2D array allows for significantly more linear storage than a 1D array.
flags provides for future releases. For now, it must be set to 0.
- Parameters:
-
| array | - Pointer to allocated array in device memory |
| desc | - Requested channel format |
| extent | - Requested allocation size (width field in elements) |
| flags | - Flags for extensions (must be 0 for now) |
- Returns:
- cudaSuccess, cudaErrorMemoryAllocation
- Note:
- Note that this function may also return error codes from previous, asynchronous launches.
- See also:
- cudaMalloc3D, cudaMalloc, cudaMallocPitch, cudaFree, cudaFreeArray, cudaMallocHost (C API), cudaFreeHost, cudaHostAlloc, make_cudaExtent
|