如何分配cudaArrays
?我对分配1D阵列特别感兴趣。分配后如何访问简单元素呢?我阅读了CUDA
编程指南,但我没有完全理解。任何人都可以用示例代码解释。是否使用cuda1Darray推荐?
答案 0 :(得分:2)
cudaArrays是特殊结构,针对纹理提取进行了优化。您可以按如下方式分配1D 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
或tex2D
函数访问此数组的元素。 cudaArrays只能使用这些函数在设备代码中读取。