皆さん、私の考えが正しいか確認してください。
カーネル関数があるとしますmykernel(double *array)
。カーネル内のコードを 128 回実行したい。ホストからカーネルを呼び出すとき、これを行うには 2 つの方法があります。
mykernel<<<128, 1>>>(myarray);
//or
mykernel<<<1, 128>>>(myarray);
最初の呼び出しで、それぞれ 1 つのスレッドを実行する 128 個のブロックを作成します。2 回目の呼び出しでは、128 スレッドのブロックを 1 つ作成します。ただし、カーネル内のコードは同じ配列で動作しているため、2 番目の呼び出しを使用する方が効率的です。
私はばかですか、それともCUDAの学習に固執する必要がありますか? :)