CLExecute

Bir OpenCL programını çalıştırır. Fonksiyonun 3 versiyonu bulunmaktadır:

1. Tek bir kernel kullanarak, Kernel fonksiyonlarını çalıştırır

bool  CLExecute(
   int          kernel                    // Bir OpenCL programının kernelinin tanıtıcı değeri
   );

2. Görev alanı açıklaması ile birkaç kernel (OpenCL fonksiyonu) kopyasını çalıştırır

bool  CLExecute(
   int          kernel,                   // Bir OpenCL programının kernelinin tanıtıcı değeri
   uint         work_dim,                 // Görev alanının boyutu
   const uint&  global_work_offset[],     // görev alanındaki başlangıç konumu
   const uint&  global_work_size[]        // Toplam görev sayısı
   );

3. Görev alanı açıklaması ile, grubun yerel görevler alt-kümesinin büyüklüğünü belirterek, birkaç kernel (OpenCL fonksiyonu) kopyasını çalıştırır

bool  CLExecute(
   int          kernel,                   // Bir OpenCL programının kernelinin tanıtıcı değeri
   uint         work_dim,                 // Görev alanının boyutu
   const uint&  global_work_offset[],     // görev alanındaki başlangıç konumu
   const uint&  global_work_size[],       // Toplam görev sayısı
   const uint&  local_work_size[]         // Yerel gruptaki görevlerin sayısı
   );

Parametreler

kernel

[in]  OpenCL kernelinin tanıtıcı değeri.

work_dim

[in]  Görev alanının boyutu.

global_work_offset[]

[in]  Görev alanındaki başlangıç konumu.

global_work_size[]

[in]  Görevler alt-kümesinin büyüklüğü.

local_work_size[]

[in]  Grubun yerel görevler alt-kümesinin büyüklüğü.

Dönüş değeri

Başarı durumunda 'true', aksi durumda 'false' dönüşü yapar. Hata hakkında bilgi almak için GetLastError() fonksiyonunu kullanın.

Not

Aşağıdaki örnekte yer alan parametre kullanımını göz önüne alın:

  • work_dim, görevi tanımlayan work_items[] dizisini belirtir. work_dim=3 ise, üç boyutlu dizi kullanılır work_items[N1, N2, N3] is used.
  • global_work_size[], work_items[] dizisinin büyüklüğünü ayarlayan değerler içerir. work_dim=3 ise, global_work_size[3] dizisi {40, 100, 320} olabilir. Böylece work_items[40, 100, 320] dizisini elde ederiz. Yani görevlerin toplam sayısı: 40 х 100 х 320 = 1 280 000.
  • local_work_size[] OpenCL programının belirtilen kerneli tarafından çalıştırılacak görevlerin alt-kümesini ayarlar. Bunun boyutu work_items[] dizisinin boyutuna eşittir ve görevler alt kümesinin daha küçük alt kümelere bçlünmesine izin verir. work_items[] global görevler kümesinin daha küçük alt-kümelere bölünebilmesi için local_work_size[] dizisi seçilmelidir. local_work_size[3]={10, 10, 10} mevcut örneğe uyacaktır; work_items[40, 100, 320] dizisi, herhangi bir aşım olmadan local_items[10, 10, 10] dizisinden toplanabilir.