如何分配cudaArrays
?我对分配一维数组特别感兴趣。配置后如何访问简单的元素呢?我阅读了CUDA
编程指南,但没有完全理解。任何人都可以用示例代码解释一下。推荐使用 cuda1Darray 吗?
问问题
4110 次
1 回答
2
cudaArrays 是特殊结构,针对纹理获取进行了优化。您可以按如下方式分配一维 cudaArray:
cudaArray* arr;
//Create Channel Descriptor. float is just for example. Change it to required data type.
cudaChannelFormatDesc channel = cudaCreateChannelDesc<float>();
//Allocate Memory
cudaMallocArray(&arr,&channel,Number_Of_Elements, 1,cudaArrayDefault);
宽度和高度是 x 和 y 方向上的元素数。
在内核中,可以使用tex1D
ortex2D
函数访问这个数组的元素。cudaArrays 只能使用这些函数在设备代码中读取。
于 2012-09-22T16:37:12.977 回答