cudaArray简单示例 - 如何分配1D数组?

时间:2012-09-22 10:06:16

标签: cuda

如何分配cudaArrays?我对分配1D阵列特别感兴趣。分配后如何访问简单元素呢?我阅读了CUDA编程指南,但我没有完全理解。任何人都可以用示例代码解释。是否使用cuda1Darray推荐?

1 个答案:

答案 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方向上的元素数量。

在内核中,可以使用tex1Dtex2D函数访问此数组的元素。 cudaArrays只能使用这些函数在设备代码中读取。