请问如何在block之间同步?

yuhuilcm您好:

新问题建议新开帖讨论,方便其他网友检索。

您的GPU是SM3.0的,根据CUDA C Programming Guide中的介绍,您的卡一个grid中最多可以有(2^31-1)6553565535个block,以及,这个数据和您的卡有多少SMX,多少SP无关,只要是3.0的卡都是这个限制,这些block不是同时在您的GPU上执行,他们会自动分批执行。

其他信息,您可以使用CUDA Samples中的device query检测,并参考programming guide。

祝您好运~

修改了少量错别字

意思是我可以最多有(2^31-1)6553565535个块,每个块里面共享寄存器最大48K,寄存器最多64K???

yuhuilcm您好:

因为这些块并不是同时执行的,所以这不成为一个问题。
当某个块占用GPU资源执行的时候,确实可以最多占满一个SMX的资源,也就是48KB的shared memory,64K个32bit的寄存器。

好的 谢谢版主的回答!!!

不客气的,欢迎您常来~