CLGetInfoString

OpenCL nesnesi veya aygıtı için istenen özelliğin string tipli değerine dönüş yapar.

bool  CLGetInfoString(
   int  handle,                           // OpenCL nesnesinin tanıtıcı değeri veya OpenCL aygıt numarası
   ENUM_OPENCL_PROPERTY_STRING  prop,     // istenen özellik
   string&  value                         // referans verilen dizgi
   );

Parametreler

handle

[in]  OpenCL nesnesinin tanıtıcı değeri veya OpenCL aygıt 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_STRING sayımının değerlerinden biri olabilir.

value

[out]  Özellik değerinin alınacağı string tipli değişken.

Dönüş değeri

Başarılı ise 'true', değilse 'false'. Hata hakkında bilgi almak için GetLastError() fonksiyonunu kullanın.

ENUM_OPENCL_PROPERTY_STRING

Tanımlayıcı

Açıklama

CL_PLATFORM_PROFILE

CL_PLATFORM_PROFILE - OpenCL Profili. Profil ismi şu değerlerden biri olabilir:

  • FULL_PROFILE - uygulama OpenCL'i destekler (işlevsellik, OpenCL desteği için fazladan eklenti gerektirmeyen kernel özelliğinin bir parçası olarak tanımlanır);
  • EMBEDDED_PROFILE - uygulama OpenCL'i ek olarak destekler. Düzeltilmiş profil, her bir OpenCL sürümü için bir alt küme olarak tanımlanır.

CL_PLATFORM_VERSION

OpenCL versiyonu

CL_PLATFORM_VENDOR

Platform tedarikçisinin ismi

CL_PLATFORM_EXTENSIONS

Platform tarafından desteklenen eklentilerin listesi. Eklenti isimler, bu platforma bağlı tüm aygıtlar tarafından desteklenmelidir

CL_DEVICE_NAME

Aygıt ismi

CL_DEVICE_VENDOR

Tedarikçi ismi

CL_DRIVER_VERSION

major_number.minor_number biçiminde OpenCL sürücü versiyonu

CL_DEVICE_PROFILE

OpenCL aygıt profili. Profil ismi şu değerlerden biri olabilir:

  • FULL_PROFILE - uygulama OpenCL'i destekler (işlevsellik, OpenCL desteği için fazladan eklenti gerektirmeyen kernel özelliğinin bir parçası olarak tanımlanır);
  • EMBEDDED_PROFILE - uygulama OpenCL'i ek olarak destekler. Düzeltilmiş profil, her bir OpenCL sürümü için bir alt küme olarak tanımlanır.

CL_DEVICE_VERSION

"OpenCL<space><major_version.minor_version><space><vendor-specific information>" biçiminde OpenCL versiyonu

CL_DEVICE_EXTENSIONS

Aygıt tarafından desteklenen eklentilerin listesi. Bu liste, onaylanmış isimlerin yanında, tedarikçi tarafından sağlanan bir takım eklentileri de içerir:

   cl_khr_int64_base_atomics

   cl_khr_int64_extended_atomics

   cl_khr_fp16

   cl_khr_gl_sharing

   cl_khr_gl_event

   cl_khr_d3d10_sharing

   cl_khr_dx9_media_sharing

   cl_khr_d3d11_sharing

CL_DEVICE_BUILT_IN_KERNELS

Desteklenen kernellerin listesi";".

CL_DEVICE_OPENCL_C_VERSION

Bu aygıt için, derleyici tarafından desteklenen en yüksek versiyon. Versiyon biçimi:

"OpenCL<space>C<space><major_version.minor_version><space><vendor-specific information> "

CL_ERROR_DESCRIPTION

OpenCL hatasının açıklaması

Örnek:

void OnStart()
  {
   int cl_ctx;
   string str;
//--- OpenCL bağlamını başlat
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL bulunamadı");
      return;
     }
//--- Platform ile ilgili bilgileri görüntüle
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_NAME,str))
      Print("OpenCL platform ismi: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VENDOR,str))
      Print("OpenCL platform tedarikçisi: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VERSION,str))
      Print("OpenCL platform versiyonu: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_PROFILE,str))
      Print("OpenCL platform profili: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_EXTENSIONS,str))
      Print("OpenCL platform eklentileri: ",str);
//--- Aygıtla ilgili bilgileri görüntüle
   if(CLGetInfoString(cl_ctx,CL_DEVICE_NAME,str))
      Print("OpenCL aygıt ismi: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_PROFILE,str))
      Print("OpenCL aygıt profili: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_BUILT_IN_KERNELS,str))
      Print("OpenCL aygıtının kernelleri: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_EXTENSIONS,str))
      Print("OpenCL aygıt eklentileri: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VENDOR,str))
      Print("OpenCL aygıt tedarikçisi: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VERSION,str))
      Print("OpenCL aygıt ver: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_OPENCL_C_VERSION,str))
      Print("OpenCL open c versiyonu: ",str);
//--- 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));
   Print("OpenCL global bellek: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE));
   Print("OpenCL yerel bellek: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE));
//--- free OpenCL context
   CLContextFree(cl_ctx);
  }