- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLExecute
A função executa um programa OpenCL. Existem três versões da função:
1. Lançamento das funções kernel usando um kernel
bool CLExecute(
|
2. Lançamento de várias cópias do kernel (função OpenCL) com descrição do espaço de tarefas
bool CLExecute(
|
3. Lançamento de várias cópias do kernel (função OpenCL) com descrição do espaço de tarefa e especificação do tamanho de subconjunto de tarefa local do grupo
bool CLExecute(
|
Parâmetros
kernel
[in] Manipulador para o kernel OpenCL.
work_dim
[in] Dimensão do espaço tarefas.
global_work_offset[]
[in] Compensação inicial no espaço de tarefas.
global_work_size[]
[in] O tamanho de um subconjunto de tarefas.
local_work_size[]
[in] O tamanho do subconjunto de tarefa local do grupo.
Valor do Retorno
Retorna true se for bem sucedido, caso contrário retorna false. Para obter informações sobre o erro, utilize a função GetLastError().
Observação
Considerar o uso dos parâmetros no exemplo a seguir:
- work_dim especifica work_items[] da dimensão do array descrevendo as tarefas. Se work_dim=3, array tridimensional work_items[N1, N2, N3] é usado.
- global_work_size[] contém os valores definindo o tamanho array do work_items[]. Se work_dim=3, array do global_work_size[3] pode ser {40, 100, 320}. Então nós temos work_items[40, 100, 320]. Assim, o número total de tarefas é 40 х 100 х 320 = 1 280 000.
- local_work_size[] define o subconjunto das tarefas que serão executadas pelo kernel específico de programa OpenCL. A sua dimensão é igual a dimensãowork_items[] e permite a divisão exata da tarefa comum de subconjunto dentro de subconjuntos menores. Na verdade, os tamanhos do array do local_work_size[] devem ser selecionados de modo a dividir a tarefa global work_items[] definindo dentro de subconjuntos menores. local_work_size[3]={10, 10, 10} vai se encaixar no exemplo corrente, como work_items[40, 100, 320] podem ser obtidos a partir do array do local_items[10, 10, 10] sem excesso.