CLExecute

La funzione esegui un programma OpenCL. Ci sono 3 versioni della funzione:

1. Avvio di funzioni del kernel utilizzando un kernel

bool  CLExecute(
   int          kernel                    // Handle al kernel di un programma OpenCL
   );

2. Avvio di diverse copie del kernel (funzione OpenCL) con compito descrizione spazio

bool  CLExecute(
   int          kernel,                   // Handle al kernel di un programma OpenCL
   uint         work_dim,                 // Dimensione dello spazio dei tasks
   const uint&  global_work_offset[],     // Offset iniziale nello spazio dei tasks
   const uint&  global_work_size[]        // Numero totale dei tasks
   );

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(
   int          kernel,                   // Handle al kernel di un programma OpenCL
   uint         work_dim,                 // Dimensione dello spazio dei tasks
   const uint&  global_work_offset[],     // Offset iniziale nello spazio dei tasks
   const uint&  global_work_size[],       // Numero totale di attività
   const uint&  local_work_size[]         // Numero di attività nel gruppo locale
   );

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.