1

如何分配cudaArrays?我对分配一维数组特别感兴趣。配置后如何访问简单的元素呢?我阅读了CUDA编程指南,但没有完全理解。任何人都可以用示例代码解释一下。推荐使用 cuda1Darray 吗?

4

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

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

于 2012-09-22T16:37:12.977 回答