我已经经历了这么少的好的参考指南,但我仍然对线程和块的限制感到困惑。1)基本问题:配置执行中每个网格的块数,这意味着网格将消耗所有SM还是单个SM?
2)实际上,根据计算能力,每个SM可以有8个块,那么为什么有时他们会说,每个维度可以配置65535个块?我明白了,8 个块将并行运行,但是如何配置 65535 个块,它们将如何执行?它们是每个 SM 还是每个网格?
3) 总数 根据计算能力的线程数是 1024/block 和 1536/SM,那么对于每个维度的 2D,最大线程数是多少。我可以同时拥有多少个线程,然后如果我配置了更多,那么顺序有多少?总数应该在 1024 以内?而且我已经实际检查过,有时我配置的线程超过了每个块的限制,然后它也在工作,为什么会这样?3a)案例a:对于GT200,假设有30个SM,每个SM最多可以有8个block,因此得出的结论是总共可以有240个block(考虑所有SM),那么为什么有时会提到65535个block每个维度都可以配置吗?3b)案例b:另外,在我的一个程序中,我的矩阵输入大小为10,000 x 10,000,并且我已经完成了以下配置,-no。每个网格的块数:1 - 没有。每个块的线程数:10,000,它仍在工作,因为没有。每个块的线程数超过了它仍然工作的限制。谁能让我解释它为什么工作?以及以哪种方式执行线程和块?在职的,