bank冲突

共享内存的映射是类似这样的:

就是比如每行存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,也就是同一行,就会串行,就是冲突