我刚从为什么cuda中只有一个warp被SM执行?中了解到,Kepler GPU实际上可以同时执行来自几个(显然是4个)warp的指令。
共享内存银行是否也可以同时处理四个请求?如果不能,那就意味着不同warp的线程之间可能会发生银行冲突,即使在任何单独的warp内部没有银行冲突,对吗?这方面有什么信息吗?
我刚从为什么cuda中只有一个warp被SM执行?中了解到,Kepler GPU实际上可以同时执行来自几个(显然是4个)warp的指令。
共享内存银行是否也可以同时处理四个请求?如果不能,那就意味着不同warp的线程之间可能会发生银行冲突,即使在任何单独的warp内部没有银行冲突,对吗?这方面有什么信息吗?
计算能力为3.x的设备(Kepler)每个SM有4个warp调度器。在每个周期中,每个warp调度器选择一个warp并从warp中发出1-2条指令。SM只有一个负责服务L1和共享内存请求的load store unit (LSU)单元,因此只有8个潜在指令中的1个可以被分派到LSU,因此warp之间的银行冲突不会发生。