2013-02-16 31 views
0

我怎么知道CUDA调度的行为?除了在我的应用程序中通过改变网格大小,块大小等进行测试之外,任何供应商提供的文档都能准确解释块以何种方式分发?CUDA的工作调度

回答

1

这取决于你正在使用的架构。

Fermi架构,例如,你有一个GigaThread全局调度分发线程块的流多处理器(SM)调度。对于每个SM,Dual Warp调度程序以32个并行线程的组为单位调度线程,这些线程称为warps。

这在NVIDIA White Paper on Fermi是很好的解释。我建议也看看这个其他document

+0

确定。那是对的。谢谢。我真的很想知道是否有任何方法可以找到,所有SM,调度程序最近都分配了这些线程。即,是有(保持那种什么的)任何日志文件,调度每次更新此信息(以便通过观察我们可以发现该日志文件,所有SMS当前工作)? – 2013-02-16 07:18:35

+0

[续..]我正在使用特斯拉M2050 fermi。因此,如果GigaThread全局调度程序将线程块分发给SM调度程序,那么哪个调度程序准确决定要使用多少个SM以及哪些SM?当线程被安排到那些特定的SM上时,有什么方法可以找出那些SM的ID? – 2013-02-16 07:28:16

+0

我不知道有哪些方法可以知道将哪些块或多个块分配给哪些SM。关于你的问题,我想说GigaThread全局调度程序决定要使用的SM的数量和ID。 – JackOLantern 2013-02-16 08:09:32