私は画像を処理するためにCUDAのコードを書いています。例えば、私はスワップ機能(マトリックスのスワップブロック)を作成しましたが、毎回私はblocsの数に問題があります。スレッドの数が私のカーネルを昼食するとき。例えばCudaカーネル設定
私は
threadsPerBlock.x=threadsPerBlock.y=64
とサイズ* 2048 2048の画像をTAKとnumBlocks.x=numBlocks.y=2048/threadsPerBlock.x
場合
その後、正常に動作しますswap<<<threadsPerBlock,numBlocks>>>(...)
。
サイズ2560 * 2160,threadsPerBlock.x=threadsPerBlock.y=64
とnumBlocks.x=2560/64
とnumBlocks.y=2160/64+1
の画像を撮影すると、エラー9無効な設定の引数があります。
私はCUDA 7.5と計算能力の5.0
はい私は計算5.0がありますが、スレッドブロック(x、y、z)の最大寸法サイズを持っています:(1024、1024、64)私は2Dimを使用しています。 2560 * 2160(最初は256×256ブロックサイズです)は、ブロック数を超えているかもしれませんが、そうではありません。 –
@SalahEddine:あなたはブロックサイズの限界を誤解しています。 (Re)私の答えでリンクを読んでください。ブロックの最大サイズは(1024,1024,64)ですが、ブロックあたりのスレッドの総数*は1024以下にする必要があります。 'dim.x * dim.y * dim.z <= 1024'のブロックのみが有効です – talonmies
Thnx私の問題を抱えているのはたくさんあります:) –