CUDA warp / block finalization

时间:2013-03-01 22:02:17

标签: cuda gpu-warp

当warp完成内核但同一块的另一个warp仍在运行时,完成的warp将被阻塞,直到同一块的其他warp完成,或者完成的warp是否可用于另一个块的立即重用而当前区块的其他经线仍在运行?

1 个答案:

答案 0 :(得分:3)

退出已完成的warp,将调度程序队列中的warp插槽释放出另一个warp,无论是来自同一个块还是另一个warp。根据特定的硬件类型(计算能力),可以随时打开并准备好由warp调度程序执行的warp数量受到限制。在SM上的任何给定时间可以打开(调度)的线程块数量也受到计算能力的限制。因此,如果所有warp但特定块中的一个已经完成并退役,但是一个warp仍处于活动状态,那么该warp会占用一个warp槽,并且它所属的块也会占用一个块槽。只有当块的所有warp都完成并且退役时,块才会退出,释放它的块槽以供另一个块使用。