来自 CUDA C 编程指南:
一个线程块的线程在一个多处理器上并发执行,多个线程块可以在一个多处理器上并发执行。当线程块终止时,新的块在空出的多处理器上启动。
现在,假设我有许多(例如 1000 个)块,每个块包含几个线程(例如 4 个),并且每个线程使用很少的寄存器,以便多个线程可以一起运行。
我想知道,如果给定一个例如 32 个线程的扭曲,8 个块实际上会一起运行以填充扭曲,或者这是否不会发生。
在阅读了上面的引用之后,我的猜测是,如果要执行的指令对于 warp 中的所有线程都相同,而不管线程所在的块(在这种情况下,8 个块中的 32 个线程恰好具有相同的程序计数器)。
但也许我完全错了。所以我想更好地理解如果块大小小于扭曲大小会发生什么。