我对Fermi型号的GPU可以启动的最大线程数感到困惑。
我的GTX 570设备查询显示如下信息。
Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 65535
据我的理解,我认为以上陈述如下:
对于CUDA内核,我们最多可以启动65536个块。每个启动的块可以包含多达1024个线程。因此原则上,我最多可以启动65536 * 1024 (=67108864)个线程。
这是正确的吗?如果我的线程使用了大量寄存器,我们是否仍能达到该理论最大线程数呢?
编写和启动CUDA内核后,如何知道已经实例化的线程和块的数量确实已被实例化。我的意思是,如果我恰好实例化了比该特定内核可能的更多的线程,我不希望GPU计算一些无关紧要的东西或表现怪异。