1一个已经被调度执行的块总是驻留在一个且仅一个SM上。一旦一个块开始在SM上执行,它就会一直保持在那里。该块的所有线程(分组为warp)将在该SM上执行,直到该块完成并退役。由于SM具有有限数量的执行单元,可能会出现warp按顺序或以某种随机顺序执行的情况。当warp由于任何原因(例如内存引用)而停滞时,SM可以从驻留在该SM上的块中调度另一个可用的warp。另请参见Greg Smith的答案。 - Robert Crovella
2__syncThreads()是一个屏障。一旦任何warp到达该屏障,该warp将被阻塞并移出执行,另一个warp将由warp调度程序选择来取代它。如果新的warp来自同一线程块,则可能也会在某个时刻到达syncThreads屏障,并被另一个warp替换。按照这个过程,最终线程块中的所有warp都将到达(并停留在)屏障处。一旦所有warp都在屏障处停顿,那么任何一个warp都可以超越屏障。 - Robert Crovella
我认为Paul的意思是每个核心有4条通道(线程),而不是执行单元(可能会与ALU混淆)。 - G Gill