2012-03-23 13 views
9

Theoriticallyあなたは私の質問がある CUDAで可能な最大ブロック数はいくらですか?

65535 * 65535まで* 65535、グリッドのdiamensionあたり65535個のブロックを持つことができます:あなたはこの kernel<<< BLOCKS,THREADS >>>()(DIM3オブジェクトなし)のようなカーネルを呼び出すと、使用可能な最大数は何ですかブロックのために?

私のアプリケーションでは、192000に設定してうまくいきました...問題は、私が使用したカーネルが巨大な配列の内容を変更することです。カーネルが他の部分で不思議な挙動をしているかどうかは確かではありません。

私は2.1 GPU、GTX 500を持っています。

答えて

9

1つの次元で最大65535個のブロックを持つことができます。表F-2を参照してください。 CUDA C Programming Guide Version 4.1の計算能力(ページ136)ごとの技術仕様書。

Pavanは、グリッド設定にdim3を指定しないと、x-ディメンションのみを使用するため、ディメンションごとの制限がここに適用されることが指摘されています。

+3

おそらく素敵な私はあなたがその多くのブロックあたりまで使用することができます知っているDIM3のないブロックが唯一のx次元に沿って、必要なブロック数を指定し、それゆえの限界はまだ65535 –

+0

であることを言及します私はそれを私の質問にも書きました。問題は、私が示したようにカーネルを呼び出すと、ブロックの最大数はいくらですか?それは65535か65535^3ですか? – STE

+0

申し訳ありません、Pavanありがとう!利用可能なブロックよりも多くのブロックを置くとどうなりますか?それはちょうどうまく動作するように思われる – STE

2

65535。ここでは(私は行ったように)誰がここでは、Googleの検索に基づいてランドの場合、完全なtable

4

です:この質問を頼まれたので、

のNvidiaは、仕様を変更しました。計算機能3.0以降では、スレッドブロックのグリッドのx-Dimensionは、最大で2'147'483'647または2^31 - 1になることが許可されています。

電流を参照してください:Technical Specification

関連する問題