银行的数量增加了一倍,但自sm2.X以来扭曲仍为32

时间:2013-12-22 13:42:45

标签: cuda

提到wiki/CUDA,因为共享内存库的sm2.X数量增加了一倍,但是经线大小仍为32.正如我之前读到的那样,只有每半个经线存在银行冲突,而不是全翘曲,所以没有必要每16个(半经线)线程有32个存储区,为什么它加倍? 这是否意味着,因为sm2.X CUDA开始工作时没有半衰,现在不需要半翘曲概念了吗?

1 个答案:

答案 0 :(得分:2)

共享内存和银行冲突的组织因计算能力而异。

请熟悉CUDA documentation

特别是programming guide

特别是sections at the end of the programming guide discuss架构特性因计算能力而异,包括共享内存和warp执行特性。

所有当前GPU的warp大小始终为32。详细的warp执行特性在cc1.x和cc2.0以及更新的设备之间有所不同。

  

只有每半个经线存在银行冲突,

此概念仅适用于cc 1.x设备,其中shared memory has 16 banks。在cc2.0和更新的设备中,可以考虑银行冲突,shared memory has 32 banks

  

为什么它加倍了?

由于cc2.0和更新设备上的执行特性使得可以以锁步方式执行完整的warp,因此共享内存在存储区和访问带宽方面进行了调整,因此如果它们可以提供完整的访问warp服务没有银行冲突。