如何将1d线性阵列复制到3d数组中而不会发生冲突? (CUDA)

时间:2012-06-05 19:27:46

标签: math memory multidimensional-array cuda

这不一定是CUDA特定的。

基本上,在GPU上我有一个1D阵列,但在C代码中,我有一个3d阵列。我需要来回复制这个数组,我需要能够正确地线性化这些数据。这意味着我有选择正确的编号方案,如在(1,0,0)线性化为1,或者是(0,1,0)或(0,0,1),形式(x,y,z)?

3d数组声明为array [X] [Y] [Z]。当我将3D阵列复制到相同大小的1d阵列时,计算机将如何自然编号?然而,计算机崩溃了3D阵列,当我尝试在两者之间进行转换时,我需要完全相同。我希望我明确表达我想说的话,但如果您有任何疑问,请询问。谢谢。

1 个答案:

答案 0 :(得分:3)

C中的数组按行主要顺序排列,有关详细信息,请参阅this

所以第一个元素是array[0][0][0],第二个元素是array[0][0][1],等等。