假设我在 CUDA 下的 C++ 中有一个二维数组,存储在共享内存中,如下所示:
__shared__ float arr[4][4]; // C++ has a default row-major ordering
默认情况下,C++ 将以arr
行优先格式对元素进行排序。
也就是说,它将分配一个连续的内存块并存储像这样的元素 (0,0), (0,1), (0,2), (0,3), (1,0), (1,1 ), ... 等等...
有没有办法告诉 C++/CUDA 编译器以列优先顺序排列它?