在cuda中为多个图像分配内存以计算它们的平均图像

时间:2015-03-19 10:59:33

标签: cuda

我想从图像数据集(大约100)计算平均图像。所有图像都是二维的。我可以使用cudaMalloc3D内置函数,还是以其他任何方式分配内存..

1 个答案:

答案 0 :(得分:1)

我经常将多维数组视为cuda中的1D数组。让我们说,您想要分配大小(NxMxK)的3D数组。然后,使用cudaMalloc命令,您可以分配大小为a的1D数组N*M*K。为了访问索引为[i][j][k]的元素,您只需调用a[i+j*N+k*N*M](假设基于0的索引,列主要排序)。

这也是一种在多维块中索引线程的方法(可以有1D,2D或3D块): http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#thread-hierarchy