대부분의 GPU는 한 번에 여러 가지 작업을 실행할 수 없으므로 우선 순위를 지정할 방법이 없습니다. 즉, OpenCL 커널이 실행 중일 때 GPU가 실행하는 유일한 작업이며 커널이 완료 될 때까지 그럴 것입니다.
커널을 실행하는 동안 컴퓨터를 사용할 수있게하려면 (일반적인 데스크톱 작업, 탐색, 비디오, 게임) 각 커널 반복이 매우 빨라야합니다. 따라서 각 커널 실행 세트 (즉, 각 작업이 clEnqueueNDRangeKernel에 대기열에 포함됨)에 소요되는 시간을 단축 할 수 있다면 원하는 것을 얻을 수 있습니다. GPU에서 효율적으로 작동하려면 충분히 커야하지만 NDRange를 작게 만들면이 작업을 수행 할 수 있습니다. 5120 작업 아이템과 같은 것이 내가 Radeon HD 5870에서 최소로 발견 한 것입니다. 그렇지 않으면 각 커널의 작업량을 줄일 수 있습니다.
각 대기열에 넣은 작업의 실행 시간을 1/60 초로 줄이면 컴퓨터를 사용할 수있는 좋은 기회가됩니다. 저는 OpenCL 프로그램을 실행할 수 있었는데, 각 엔큐는 게임을하면서 아무 것도 알지 못하고 약 1/120 초가 걸렸습니다.