0
私はOpenCLカーネルに渡したい配列を持っています。私のコードの一部ですどのようにしてアレイをOpenCLカーネルに渡すのですか?
cl_mem arr_cl;
unsigned int arr[4] = { 0 };
arr_cl = clCreateBuffer(ocl.context, CL_MEM_ALLOC_HOST_PTR, 4*sizeof(unsigned int), NULL, &status);
arr = (unsigned int*)clEnqueueMapBuffer(ocl.command_queue, arr_cl, CL_TRUE, CL_MAP_READ | CL_MAP_WRITE, 0, 4*sizeof(unsigned int), 0, NULL, NULL, NULL);
status |= clSetKernelArg(ocl.kernel, 0, sizeof(cl_mem), &(arr_cl));
上記のコードはコンパイルされますが、実行時にクラッシュします。私がここで間違っていることを教えてください。
私はOpenCL 2.0を使用しています。
カーネル引数はインデックス= 1です。カーネルパラメータが1つしかない場合は、0にしないでください。また、少なくとも64要素の配列で試すことができますか? –