2011-09-27 2 views
1

clEnqueueNDRangeKernel()이 여러 번 호출 될 때 어떻게 작동하는지 혼란 스럽습니다. global_work_size = 32로 10 번 (예를 들어, for 루프를 사용하여) 대기열에 넣었다고 가정 해 봅니다. 커널이 get_global_id (0)로 채워지는 전역 인수를 사용한다고 가정 해 보겠습니다.OpenCL : 여러 clEnqueueNDRangeKernel() 호출

제 질문은 global_id의 열거에 관한 것입니다.

내가 예상 한 것 : 가장 높은 번호의 global_id는 (10 * 32-1) = 319가됩니다.

실제로 발생하는 현상 : 가장 높은 번호의 global_id는 (32-1) = 31입니다.

누구나 여러 clEnqueueNDRangeKernel() 호출이 이루어지면서 단계별로 각 작업 항목이 열거되는 방식을 설명 할 수 있습니까?

답변

5

각 clEnqueueNDRAngeKernel 호출에서 만들어진 NDRange 공간은 서로 독립적이며 전역 작업 항목 ID는 각 호출 사이에 연속적이거나 관련이 없습니다.