当每个块的线程数大于流式多处理器上的最大活动线程数时,GPU将如何执行?

时间:2015-11-05 15:53:53

标签: cuda gpu nvidia gpu-programming

基于我目前对CUDA和GPU计算的理解,每个线程块必须在一个流式多处理器中运行。每个流式多处理器具有固定数量的核心(等于流式多处理器上的最大活动线程数)。然后我的问题是,如果我们的线程块数大于一个流多处理器上的内核数量,那将会发生什么。

例如,GeForce GTX 980有16个流式多处理器,每个处理器有128个核心。因此,一个流多处理器上的活动线程的最大数量将是128.但是当在CUDA中编程时,我们可以启动具有<<<<<<<>>>>的内核,这意味着一个具有512个线程的线程块。那么GPU将如何执行这个内核?它会在一个流式多处理器上运行所有512个线程,还是会将它分成多个流式多处理器?如果它在一个流多处理器上运行,怎么会发生这种情况?它会首先运行128个线程,然后是接下来的128个线程,然后是下一个......

如果我的理解不正确,请纠正我。感谢。

0 个答案:

没有答案