2012-03-23 114 views
9

Theoritically你可以爲每個網格的diamension 65535塊,達到65535 * 65535 * 65535CUDA中可能的最大塊數是多少?

我的問題是:如果你這樣調用kernel<<< BLOCKS,THREADS >>>()內核(不爲dim3對象),什麼是可利用的最大數量爲BLOCKS?

在我的一個應用程序中,我將它設置爲192000,似乎工作正常......問題是我使用的內核更改了一個巨大數組的內容,所以儘管我檢查了一些部分數組並且看起來很好,我不能確定內核在其他部分是否表現得很奇怪。

爲了記錄我有一個2.1 GPU,GTX 500 ti。

回答

9

一個維度中最多可以有65535個塊。見表F-2。 CUDA C Programming Guide Version 4.1的每個計算能力的技術規格(第136頁)。

正如Pavan指出的那樣,如果您沒有爲網格配置提供dim3,則只會使用x維,因此此處適用每維尺寸限制。

+3

也許不錯提到,如果沒有爲dim3僅阻止指定您沿x維度需要,因此限制仍然是65535 – 2012-03-23 15:38:27

+0

我知道你可以使用高達每許多塊的塊數維度,我也寫到我的問題。問題是,按照我所說的方式調用內核時,塊的最大數量是多少?是65535還是65535^3? – STE 2012-03-23 15:41:26

+0

好吧,帕文謝謝!我們知道,如果你放置更多的塊,會發生什麼情況?因爲它似乎工作得很好 – STE 2012-03-23 15:42:13

4

在任何情況下,這裏的土地基於谷歌搜索(我只是做了):

的Nvidia改變了規範,因爲這問題有人問。使用計算能力3.0及更高版本,允許線程塊網格的x維度高達2'147'483'6472^31 - 1

見電流:Technical Specification

相關問題