About warp scheduller in one SM

If I write a CUDA program which include 1024 threads per block, that is 32 warps, I have two questions:
Q1: For a specific thread, for example, thread#0, once it is allocated to a warp#0, will it be changed to another warp in these 32 warps?
Q2: For a specific warp, is it possible to schedule this warp between SMSPs in one SM?

no, thread assignment to warps is always static and fixed.

Generally, no. The assignment of warps to SMSP is done statically at the moment a threadblock is assigned to a SM, and thereafter does not change. In the event of preemption, there may be an exception here. I don’t know for sure about that case, and I’m not aware of detailed preemption behavior being documented anywhere.

1 Like