- CLHandleType
- CLGetInfoInteger
- CLGetInfoString
- CLContextCreate
- CLContextFree
- CLGetDeviceInfo
- CLProgramCreate
- CLProgramFree
- CLKernelCreate
- CLKernelFree
- CLSetKernelArg
- CLSetKernelArgMem
- CLSetKernelArgMemLocal
- CLBufferCreate
- CLBufferFree
- CLBufferWrite
- CLBufferRead
- CLExecute
- CLExecutionStatus
CLExecute
La funzione esegui un programma OpenCL. Ci sono 3 versioni della funzione:
1. Avvio di funzioni del kernel utilizzando un kernel
bool CLExecute(
|
2. Avvio di diverse copie del kernel (funzione OpenCL) con compito descrizione spazio
bool CLExecute(
|
3. Avvio di diverse copie del kernel (funzione OpenCL) con compito descrizione dello spazio e la specificazione della grandezza del sottoinsieme attività locale del gruppo
bool CLExecute(
|
Parametri
kernel
[in] Handle al kernel OpenCL.
work_dim
[in] Dimensione dello spazio tasks.
global_work_offset[]
[in] Offset iniziale nello spazio tasks.
global_work_size[]
[in] Dimensione di un sottoinsieme di attività.
local_work_size[]
[in] La grandezza del sottoinsieme attività locale del gruppo.
Valore restituito
Restituisce vero se ha successo, altrimenti restituisce false. Per ulteriori informazioni sull'errore, utilizzare la funzione GetLastError().
Nota
Considerare l'uso dei parametri nel seguente esempio:
- work_dim specifies work_items[] dimensione array descrivente l'attività. Se work_dim=3, verrà usato un array tri-dimensionale work_items[N1, N2, N3].
- global_work_size[] contiene i valori che impostano la grandezza array di work_items[]. Se work_dim=3, global_work_size[3] l'array può essere {40, 100, 320}. Allora abbiamo work_items[40, 100, 320]. Così, il numero totale di attività è 40 x 100 x 320 = 1 280 000.
- local_work_size[] imposta il sottoinsieme delle attività che verranno eseguite dal kernel specificato, del programma OpenCL. La sua dimensione è uguale alla dimensione work_items[] e consente di dividere il subset del task comune in subsets più piccoli senza la perdita del resto nella divisione. Infatti, le dimensioni dell'array local_work_size[] devono essere selezionate in modo da dividere il task globale work_items[] in subsets più piccoli. In questo esempio local_work_size[3]={10, 10, 10} sarà OK, come work_items[40, 100, 320] può essere raccolto dall' array local_items[10, 10, 10] senza il resto della divisione.