2

CUDAカーネル関数を呼び出すことの違いは何だろうと思っています

<<<BLOCK_NUM, THREAD_NUM>>> 

<<<BLOCK_NUM, THREAD_NUM, THREAD_NUM * sizeof(float)>>> ?
4

1 に答える 1

8

2 番目のケースの追加の引数は、カーネル内の各ブロックに割り当てられる動的共有メモリの量を指定します。

たとえば、次のように定義されたカーネルがあるとします。

__global__ void kernel(...)
{

    extern __shared__ float buffer[];

}

2 回目のカーネル起動では、カーネルの各ブロックのTHREAD_NUM共有メモリ配列にワードを割り当てようとします。buffer詳細については、CUDA 4.1 プログラミング ガイドの付録 B.17 を参照してください。

于 2012-04-26T09:26:29.310 に答える