我对计算能力1.3和2.0 gpu卡的调度过程有疑问。 在两种情况下,每次在流式多处理器上安排的最大块数为8,至少这是我从占用计算器中注意到的。
在1.3卡上,每个SM有8个内核,在2.0卡上每个SM有32个内核。 如何为块进程分配核心?
对于1.3每个核心进程1块?如果是这样,如果每个SM少于8个块,则分配的核心数多于一个,以处理块?
对于2.0,如果在SM中安排了8个块,那么是否分配4个核来处理块?如果SM中的块数较少,则会计划更多内核进行块计算?
谢谢。
答案 0 :(得分:3)
单个SM中的所有核心都以锁步方式工作(至少高达cc 2.0)。当与单个锁步扭曲相关联的线程由于某种原因遇到停顿时,如果调度器准备运行,则调度程序将引入另一个warp。新的warp可以来自相同或不同的线程块,即。来自最多可能目前驻留在该SM上的8个线程块。
您可能有兴趣阅读编程指南的this section。