次のように、コンパイル時に定義されたサイズのローカル メモリを使用してカーネルを生成する場合
__local float2 block[%d];
カーネルの実行時に実際に使用できるサイズを確認するにはどうすればよいですか?
これは CL_DEVICE_LOCAL_MEM_SIZE ではありません。これを使用すると、最大許容量を示すエラー メッセージが表示されますが、これは常に報告された値よりも少なくなります (また、2 の累乗ではなく、カーネルによって使用されるレジスタを減算しますか?)。
現在、私は単に報告されたサイズの半分を使用しています...