私のC OpenCLコードでは、カーネルで使用clSetKernelArg
する「可変サイズ」__local
メモリを作成するために使用しますが、これはOpenCL自体では利用できません。私の例を見てください:
clSetKernelArg(clKernel, ArgCounter++, sizeof(cl_mem), (void *)&d_B);
...
clSetKernelArg(clKernel, ArgCounter++, sizeof(float)*block_size*block_size, NULL);
...
kernel="
matrixMul(__global float* C,
...
__local float* A_temp,
...
)"
{...
私の質問は今、pyopenclで同じことをする方法ですか?
pyopencl に付属の例を調べたのですが、テンプレートを使用したアプローチしか見つかりませんでした。例を参照してください。
kernel = """
__kernel void matrixMul(__global float* C,...){
...
__local float A_temp[ %(mem_size) ];
...
}
おすすめは何ですか?