如果我们为SM配置了256个线程/块,那么总计将是3个块/ SM(考虑最大768个线程/ SM)。现在总warp / block将是256/32 = 8,因此8 * 3 = 24 warps / SM。那么块中的这8个warp将是顺序执行还是并行执行,SM中的24个warp将顺序执行还是并行执行? 由于已经清除,因此SM可以在任何时间执行3个块(并行)。
答案 0 :(得分:1)
@robot,为了更好的可读性,我将讨论转移到答案。如果你愿意,你也可以接受它。
不同的块可以映射到不同的SM,因此可以并行执行。但是,在内部,块由warp组成,这些warp被安排在一个SM上执行(在1.x设备上)。但是,图形硬件可以在0开销之间切换不同的warp(由于静态寄存器分配)。因此,通常来自不同阶段的SM管道中存在来自不同warp(以及可能来自不同块)的指令。
活动warp是那些准备好执行的warpi,即不等待屏障,内存访问并且没有寄存器依赖(如read-after-write)。我不确定硬件如何选择下一个warp来执行。可预见的经线优先于“年龄”(等待时间)和其他因素来防止饥饿。
关于你的问题: