我想知道如何来声明指向二维共享内存的易失性指针 如果这对于一维数组具有相同的效果。
__shared__ float 2d_array[32][32];
// not working: volatile T ** smem = sdata;
答案 0 :(得分:2)
请注意,您的“二维”共享内存数组实际上只是一维。所以像这样:
__shared__ volatile float array_2d[32][32];
volatile float *smem = &array_2d[0][0];
float val = *(smem + y + 32*x) // address of s2_array[x][y]
是你想要的。静态数组array_2d
以行主要顺序存储,可以按照我的显示进行访问。