提到wiki/CUDA,因为共享内存库的sm2.X数量增加了一倍,但是经线大小仍为32.正如我之前读到的那样,只有每半个经线存在银行冲突,而不是全翘曲,所以没有必要每16个(半经线)线程有32个存储区,为什么它加倍? 这是否意味着,因为sm2.X CUDA开始工作时没有半衰,现在不需要半翘曲概念了吗?
答案 0 :(得分:2)
共享内存和银行冲突的组织因计算能力而异。
特别是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服务没有银行冲突。