我想知道如何声明一个指向二维共享内存的volatile指针,以及这是否会有与一维数组相同的效果。
__shared__ float 2d_array[32][32]; // not working: volatile T ** smem = sdata;
yk9xbfzb1#
请注意,您的“二维”共享内存数组实际上只是一维的。比如说
__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以行优先的顺序存储,并且可以像我所示的那样访问。
array_2d
1条答案
按热度按时间yk9xbfzb1#
请注意,您的“二维”共享内存数组实际上只是一维的。比如说
是你想要的静态数组
array_2d
以行优先的顺序存储,并且可以像我所示的那样访问。