CLExecute

이 함수는 OpenCL 프로그램을 실행합니다. 이 함수에는 세 가지 버전이 있습니다:

1. 하나의 커널을 사용하여 커널 함수 시작

bool  CLExecute(
   int          kernel                    // OpenCL 프로그램의 커널에 대한 핸들
   );

2. 작업 공간 설명이 포함된 여러 커널 복사본(OpenCL 함수) 시작

bool  CLExecute(
   int          kernel,                   // OpenCL 프로그램의 커널에 대한 핸들
   uint         work_dim,                 // 작업 공간의 규모
   const uint&  global_work_offset[],     // 작업 공간의 초기 오프셋
   const uint&  global_work_size[]        // 총 작업 수
   );

3. 작업 공간 설명 및 그룹 로컬 작업 하위 집합의 크기 지정을 사용하여 여러 커널 복사본(OpenCL 함수) 시작

bool  CLExecute(
   int          kernel,                   // OpenCL 프로그램의 커널에 대한 핸들
   uint         work_dim,                 // 작업 공간의 규모
   const uint&  global_work_offset[],     // 작업 공간의 초기 오프셋
   const uint&  global_work_size[],       // 총 작업 수
   const uint&  local_work_size[]         // 로컬 그룹의 작업 수
   );

Parameter

kernel

[in]  OpenCL 커널에 대한 핸들.

work_dim

[in]  작업 공간의 규모.

global_work_offset[]

[in]  작업 공간의 초기 오프셋.

global_work_size[]

[in]  작업 하위 집합의 크기.

local_work_size[]

[in]  그룹의 로컬 작업 하위 집합의 크기.

반환값

성공하면 true를 반환하고 그렇지 않으면 false를 반환합니다. 오류에 대한 자세한 내용은 GetLastError() 함수를 사용하십시오.

참고

다음 예에서 매개 변수의 사용을 고려하십시오.

  • work_dim은 작업을 설명하는 work_items[] 배열의 크기를 지정합니다. work_dim=3일 경우, 3차원 배열 work_items[N1, N2, N3]이 사용됩니다.
  • global_work_size[]에는 work_items[] 어레이 크기를 설정하는 값이 포함되어 있습니다. work_dim=3인 경우, global_work_size[3] 어레이는 {40, 100, 320}일 수 있습니다. 그러면 work_items[40, 100, 320]을 보유하게 됩니다. 따라서 총 작업 수는 40 x 100 x 320 = 1 280 000개가 됩니다.
  • local_work_size[]은 OpenCL 프로그램의 지정된 커널에 의해 실행될 작업의 하위 집합을 설정합니다. 그것의 크기는 work_items[] 크기와 같으며, 분할에서 나머지의 손실 없이 공통 작업 부분 집합을 더 작은 하위 집합으로 분할할 수 있습니다. 실제로 local_work_size[] 배열의 크기를 선택해야 work_items[] 글로벌 작업 세트가 더 작은 하위 집합으로 분할됩니다. 이 예에서는 local_work_size[3]={10, 10, 10}이(가) 정상입니다. work_items[40, 100, 320]은(는) local_items[10, 10, 10] 배열에서 수집될 수 있기 때문입니다.