- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLExecute
이 함수는 OpenCL 프로그램을 실행합니다. 이 함수에는 세 가지 버전이 있습니다:
1. 하나의 커널을 사용하여 커널 함수 시작
bool CLExecute(
|
2. 작업 공간 설명이 포함된 여러 커널 복사본(OpenCL 함수) 시작
bool CLExecute(
|
3. 작업 공간 설명 및 그룹 로컬 작업 하위 집합의 크기 지정을 사용하여 여러 커널 복사본(OpenCL 함수) 시작
bool CLExecute(
|
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] 배열에서 수집될 수 있기 때문입니다.