gpu上的最大线程数

时间:2013-11-16 13:47:28

标签: cuda gpu tesla

我正在使用TESLA T10设备,它有2个cuda设备,一个块中的最大线程数为512,每个维度的最大线程数为(512,512,64),最大网格大小为(65535,65535,1),它在每个cuda设备上有30个多处理器。

现在我想知道我可以并行运行多少个线程。我读过以前的解决方案,但没有一个清楚我的怀疑。 从以前的read =(30)* 512个线程我可以并行运行(maxNoOfMultiprocessor * maxThreadBlockSize)

但是当我推出32个512线程的块时,它仍在工作 这怎么可能??? 我不理解每个维度中的这些最大线程以及最大网格大小部分 请举例说明....... 提前谢谢

2 个答案:

答案 0 :(得分:3)

出于本讨论的目的,忘记有多少个多处理器。它与您可以在内核中启动的块数(即网格)无关。

您可以并行运行的线程数(即可以同时执行的线程数)与您可以启动的线程数或可以启动的块数不同。

通常,您不希望启动只有机器可以在给定时间运行的线程数的网格(maxNoOfMultiprocessor * maxThreadBlockSize)。机器需要更多的线程,因此它可以隐藏延迟。

您的机器每块限制为512个线程,但您可以启动最多65535个块的单维网格。这并不意味着所有这些块/线程同时运行,但机器最终将处理它们。

答案 1 :(得分:3)

您可以创建比硬件能够同时处理的更多线程。这被nVidia称为“automatic scalability”。如果你有一张30 SMX的牌,30个阵营将并行运行,之后将运行2个街区。如果你在只有16个SMX的卡上运行32个块的相同程序(让我们假设存在),则运行16个块,然后运行16个块。