一个块到底可以分配多少个线程?想确认下.

我的显卡是GT430的,查了下属性。截图如下:
[attach]1224[/attach]

意思就是:我的显卡每个块最多只能分配1024个线程?那为什么还有1024102464呢?
高手指教。。。

怎么没人呢?

1024102464是block每个方向最大的范围,1024是总thread数的上限。例如(1024,1,1)和(1,1024,1)是允许的。但(1024,2,1)是不允许的。

好的,谢谢,看来我的想法是对的。

再多问句版主:如果我现在有N个点运算,分配了m个块,每个块分配了N/m个线程。运算的时候这N个点需要一起运算,这样的话,共享存储器是不是就用不上了?

再次感谢版主。

你是怎么查的 我新手对自己显卡都不太了解

共享存储器可以在一个块内部用,就是N/m个线程之间。具体用法可以参见programming guide.是否需要用主要是由你的算法是否有重复使用的数据决定。

受益匪浅学习了

学习了。。这几天正琢磨着呢。。

受教了的说…对于线程数的分配很影响算法中的整合数

补充一点,CUDA的BLOCK目前最大好像就是1024个线程,我用的GTX570,32个CUDA核心为一个SM,一个BLOCK的线程会在同一个SM内的CUDA核心上运行。而每个线程都要占资源,如果数量太多,资源的平均水平自然会下降,影响效率。所以,一个BLOCK的线程数目不能太多。CUDA能搞出这么多线程,要看grid的设置。

我是来学习的,顺便挣分!