CLGetInfoInteger

Bir OpenCL nesnesi veya aygıtı için bir tamsayı özelliğinin değerine dönüş yapar.

long  CLGetInfoInteger(
   int  handle,                           // OpenCL nesnesinin tanıtıcı değeri veya OpenCL aygıtının numarası
   ENUM_OPENCL_PROPERTY_INTEGER  prop     // İstenen özellik
   );

Parametreler

handle

[in]  OpenCL nesnesinin tanıtıcı değeri veya OpenCL aygıtının numarası. OpenCL aygıtlarının numaralandırılmasına sıfır ile başlanır.

prop

[in]  Alınması istenilen özellik değeri, ENUM_OPENCL_PROPERTY_INTEGER sayımının değerlerinden biri olabilir.

Dönüş değeri

Başarılı olunması durumunda özellik değerine, aksi durumda -1 durumuna dönüş yapılır. Hata hakkında bilgi almak için GetLastError() fonksiyonunu kullanın.

ENUM_OPENCL_PROPERTY_INTEGER

Tanımlayıcı

Açıklama

Tip

CL_DEVICE_COUNT

OpenCL desteğine sahip aygıtların sayısı. Bu özellik için ilk parametrenin belirtilmesi gerekmez, yani handle parametresinin yerine 0 değerini geçebilirsiniz.

int

CL_DEVICE_TYPE

Aygıt Tipi

ENUM_CL_DEVICE_TYPE

CL_DEVICE_VENDOR_ID

Tedarikçinin benzersiz kimliği

uint

CL_DEVICE_MAX_COMPUTE_UNITS

OpenCL aygıtında paralel olarak hesaplanmış görevlerin sayısı. Her bir çalışma grubu, sadece bir hesaplama görevini üstlenir. 1 en düşük değerdir

uint

CL_DEVICE_MAX_CLOCK_FREQUENCY

Aygıtın ayarlanmış en yüksek frekansı - MHz bazında.

uint

CL_DEVICE_GLOBAL_MEM_SIZE

Aygıtın global belleğinin büyüklüğü - bayt bazında

ulong

CL_DEVICE_LOCAL_MEM_SIZE

Yerel hafızada işlenen (scene) verinin büyüklüğü - bayt bazında

uint

CL_BUFFER_SIZE

OpenCL tamponunun tam boyutu (bayt olarak)

ulong

CL_DEVICE_MAX_WORK_GROUP_SIZE

OpenCL cihazı için kullanılabilir yerel çalışma gruplarının toplam sayısı.

ulong

CL_KERNEL_WORK_GROUP_SIZE

OpenCL programı için kullanılabilir yerel çalışma gruplarının toplam sayısı.

ulong

CL_KERNEL_LOCAL_MEM_SIZE

Bir gruptaki tüm paralel görevlerin çözümü için OpenCL programı tarafından kullanılan yerel belleğin boyutu (bayt olarak). Maksimum mevcut değeri almak için CL_DEVICE_LOCAL_MEM_SIZE kullan

ulong

CL_KERNEL_PRIVATE_MEM_SIZE

OpenCL program kernelindeki ger bir görev tarafından kullanılan özel belleğin minimum boyutu (bayt olarak).

ulong

CL_LAST_ERROR

Son OpenCL hatasının kodu

int

 

ENUM_CL_DEVICE_TYPE sayımı, OpenCL desteğine sahip mevcut aygıtların muhtemel tiplerini içerir. Aygıt tipini, aygıt numarası veya OpenCL nesnesinin tanıtıcı değeri ile elde edebilirsiniz; tanıtıcı değeri almak için CLGetInfoInteger(handle_or_deviceN, CL_DEVICE_TYPE) fonksiyonunu kullanabilirsiniz.

ENUM_CL_DEVICE_TYPE

Tanımlayıcı

Açıklama

CL_DEVICE_ACCELERATOR

Adanmış OpenCL hızlandırıcıları (örneğin, IBM CELL Blade). Bu aygıtlar, PCIe gibi bir periferal bağlantı kullanarak ana işlemci ile iletişim kurar.

CL_DEVICE_CPU

Bir OpenCL ana işlemci aygıtı. Ana işlemci OpenCL uygulamalarını çalıştırır, tek veya çok çekirdekli bir CPU olabilir.

CL_DEVICE_GPU

Bir OpenCL GPU (grafik işlemci) aygıtı.

CL_DEVICE_DEFAULT

Sistem içindeki varsayılan OpenCL aygıtı. Varsayılan aygıt, CL_DEVICE_TYPE_CUSTOM aygıtı olamaz.

CL_DEVICE_CUSTOM

OpenCL C dilinde yazılmış programları desteklemeyen adanmış hızlandırıcılar.

Örnek:

void OnStart()
  {
   int cl_ctx;
//--- OpenCL bağlamını başlat
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL bulunamadı");
      return;
     }
//--- OpenCL aygıtı ile ilgili genel bilgiyi görüntüle
   Print("OpenCL tipi: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE)));
   Print("OpenCL tedarikçi kimliği: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID));
   Print("OpenCL birimleri: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS));
   Print("OpenCL frekansı: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY)," MHz");
   Print("OpenCL global bellek: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes");
   Print("OpenCL yerel bellek: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes");
//--- free OpenCL context
   CLContextFree(cl_ctx);
  }