2011-02-04 6 views
1

私はのGeForce GT 220カード上の私のシミュレーションのために、以下のパラメータを使用しています - 計算ユニットのOpenCLの行動---必要解明

数= 6

ローカルサイズ= 32

グローバルサイズ= 32 * 6 * 256 = 49152

(すべてが一次元である)しかし、ビジュアルプロファイラでは、私は計算単位あたりの作業グループの番号を参照してください=つまり、計算ユニットは2つしか使用していません。何故ですか?すべてのコンピューティングユニットがビジー状態であることを確認するにはどうすればよいですか?理想的には、計算単位あたり49152 /(32 * 6)= 256の作業グループが必要です。私はこの行動で混乱しています。

+0

私はNvidiaのプロファイラを使用しています。正直言って、出力があまりにも信頼できません。それは私があなたに与えることができる唯一のアドバイスです。 – dietr

答えて

1

計算ユニット、つまりonyl HWには注意しないでください。 ローカルサイズとグローバルサイズを気にして、可能な限り最大のローカルサイズを使用してください。

おそらく起こっていることは、非常に小さなローカルサイズを指定していることです。ローカルサイズのスレッドのすべてのグループは、計算ユニット内にロードされます。 32スレッドのみを実行するのは効率的ではありません。そのため、読み込みトラッシュがパフォーマンスを低下させ、おそらく計算単位をアイドル状態にしてしまいます。

私の推薦では、非常に高いローカルサイズを使用してください。または、ローカルのサイズを指定しないでください(OpenCLは最も高いものを選択します)

関連する問題