共享内存的映射是类似这样的:
就是比如每行存32个位置,每个位置32bit,一行一行存。
如果在共享内存上存了int数组a,
访问a[0]...a[31],在共享内存上就是share[0][1]...share[0][31],
a[32]--->share[1][0]。
首先同一时间只有一个warp会去访问share,所以冲突来自同一个warp的不同thread。
就是share每一行是可以并行访问的,但是如果出现线程访问同一个bank,也就是同一行,就会串行,就是冲突