私が理解していることから、shared_mem_size
以下のコードの変数は、各ブロックに割り当てられる共有メモリの量です。しかし、共有メモリの合計サイズ ( BLOCKS_GRID * shared_mem_size
) が、ハードウェアの使用可能な共有メモリの総容量を超えるとどうなるでしょうか?
__global__ void KernelFunction ()
{
extern __shared__ s_data[];
}
int main ()
{
shared_mem_size = THREADS_BLOCK * sizeof(T);
KernelFunction <<<BLOCK_GRID,THREADS_BLOCK,shared_mem_size>>> ();
}