로컬 주소 공간의 OpenCL 커널에 배열을 전달하고 싶습니다. 하지만 CL_invalid_VALUE
이 나옵니다.Opencl 커널의 로컬 주소 공간에 배열을 전달하는 방법
int a[]={1,2,3,4,5};
로컬 주소 공간에 데이터를 전달하기 위해 버퍼를 만들 필요가 없습니다. 그래서 :
clSetKernelArg(kernel, 21, sizeof(int)*5,a);
커널
__kernel void abc(__local int *a)
{}
을에서 내가 __local
__global
로 변경하면 모든 것이 잘 작동합니다. 어떻게하는지 말해줘.
'sizeof (int) * 5'를 'sizeof (a)'로 바꾸십시오. – tilz0R
opencl에서는 속도가 향상되지 않지만 지적 메모리의 특성과 위치가 실제로 관련이 있다면, 그런 결정을 내리기에 충분한 정보를 제공하지 못했습니다. 언제나처럼, 우리는 [mcve]를 기대하며, 유용한 답을 얻는 기회는 제공 할 때 크게 향상됩니다. –