确定CUDA SM中允许的扭曲数

时间:2013-05-21 00:48:33

标签: cuda

因此,如果流式多处理器可以允许最多X个线程,而SM中的每个块都允许Y个线程,块中可以有多少个warp,以及SM中可以有多少个warp?

以下是我对这个问题的看法:

(1)warp由32个线程组成。在一个区块中我们可以有Y / 32,对吧?

(2)就每个SM的warp数而言,我们不能超过SM中SM的最大线程数,所以我们可以有X / 32,对吧?我希望有人可以证实这些计算。

1 个答案:

答案 0 :(得分:2)

(1)是的,如果需要,可以进行四舍五入(即如果每个块的线程数Y不能被32整除)

(2)是的,这是可能有效的经线数量的一个限制。请记住,SM调度程序的工作原理是先调度块 。将调度的块数是可用资源(寄存器,共享内存,线程等)的函数。只有在有足够的可用资源来支持它的需求时才会调度块。因此,例如,如果每个块有1024个线程,我可以在SM上最多调度1个块,因为每个SM的1536个线程的限制(此处使用CC 2.0作为示例)可防止调度2个块。因此,在这种情况下,即使您的X / 32数字预测最多48个经线,也只会安排1024/32 = 32个经线。 (以CC 2.0为例,每块有1024个线程的块结构)。

相关问题