2013-12-13 4 views
0

n 몸 알고리즘 용 OpenCL 코드를 작성하고 있습니다. 실행하려고 할 때 잘못된 컨텍스트 오류가 발생합니다. 이 오류는 GPU에서 실행하기 위해 커널을 호출하는 코드 부분에서 발생합니다. 여기에 내 코드를 붙여 넣었습니다. 누구라도 내가 왜이 오류가 발생하는지 이해하고 해결하도록 도울 수 있다면 감사 할 것입니다.openCL에서 잘못된 컨텍스트 오류가 발생했습니다.

if (gpuSize) { 
/*launch the kernel on second device (GPU)*/ 
ret = clEnqueueNDRangeKernel(
          accelState.queues[1], 
          accelState.kernel, 
          1, 
          global_work_offset1, 
          global_work_size1, 
          NULL, /*let OpenCL determine localWorkSize*/ 
          1, &enqEvents[noOfQEvents-1], 
          &enqEvents[noOfEvents] 
          ); 
/*noOfEvents++;*/ 
checkResult(ret); 
} 
내가 마지막 줄 checkResult (RET)에 오류를 받고 있어요하지만 난 그것을 이해, 커널 내 명령 대기열 accelState.queues [1] 뭔가 사이에 불일치가있다

? 어떤 도움이 많이 apppreciated 것입니다. 고맙습니다.

답변

1

문제는 분명합니다. 하나의 컨텍스트 (컨텍스트 B), 다른 컨텍스트 (컨텍스트 A)의 큐에서 커널을 실행하고 있습니다.

허용되지 않습니다. 모든 개체는 자신의 컨텍스트 개체와 만 상호 작용할 수 있습니다. 커널, 버퍼, 대기열, 이벤트 등에 적용됩니다.

그러나 장치와 같은 HW 자원은 다른 컨텍스트에서 사용할 수 있습니다.

관련 문제