私は最近OpenCLで遊んでいて、グローバルメモリのみを使用する単純なカーネルを書くことができます。ここでローカルメモリの使用を開始したいのですが、一度に1つの「チャンク」の出力を使用get_local_size()
および計算する方法がわからないようです。get_local_id()
たとえば、AppleのOpenCLHelloWorldサンプルカーネルをローカルメモリを使用するものに変換したいとします。どうしますか?元のカーネルソースは次のとおりです。
__kernel square(
__global float *input,
__global float *output,
const unsigned int count)
{
int i = get_global_id(0);
if (i < count)
output[i] = input[i] * input[i];
}
この例をローカルメモリの使用方法を示すものに簡単に変換できない場合は、他の簡単な例で十分です。