CLGetInfoString

Restituisce il valore stringa di una proprietà per l'oggetto o dispositivo OpenCL.

bool  CLGetInfoString(
   int  handle,                           // Handle di oggetto OpenCL o numero del dispositivo OpenCL
   ENUM_OPENCL_PROPERTY_STRING  prop,     // proprietà richiesta
   string&  value                         // stringa referenziata
   );

Parametri

handle

[in] andle di oggetto OpenCL o numero di dispositivo OpenCL. La numerazione dei dispositivi OpenCL inizia con zero.

prop

[in] Tipo della proprietà richiesta, dall'enumerazione ENUM_OPENCL_PROPERTY_STRING, il cui valore deve essere ottenuto.

valore

[out] Stringa per ricevere il valore della proprietà.

Valore restituito

vero se ha successo, altrimenti false. Per ulteriori informazioni sull'errore, utilizzare la funzione GetLastError().

ENUM_OPENCL_PROPERTY_STRING

Identificatore

Descrizione

CL_PLATFORM_PROFILE

CL_PLATFORM_PROFILE - Profilo OpenCL. Nome del profilo può essere uno dei seguenti valori:

  • FULL_PROFILE - implementazione supporto OpenCL (la funzionalità è definita come la parte della specifica del kernel senza richiedere ulteriori estensioni per il supporto OpenCL);
  • EMBEDDED_PROFILE - implementazione supporto OpenCL come supplemento. Il profilo modificato è definito come un sottoinsieme per ogni versione OpenCL.

CL_PLATFORM_VERSION

Versione OpenCL

CL_PLATFORM_VENDOR

Nome venditore piattaforma

CL_PLATFORM_EXTENSIONS

Elenco delle estensioni supportate dalla piattaforma. I nomi di estensione devono essere supportati da tutti i dispositivi correlati a questa piattaforma

CL_DEVICE_NAME

Nome dispositivo

CL_DEVICE_VENDOR

Nome del venditore

CL_DRIVER_VERSION

Versione del driver OpenCL in formato major_number.minor_number

CL_DEVICE_PROFILE

Dispositivo profilo OpenCL. Il nome del profilo può essere uno dei seguenti valori:

  • FULL_PROFILE - implementazione supporto OpenCL (la funzionalità è definita come la parte della specifica del kernel senza richiedere ulteriori estensioni per il supporto OpenCL);
  • EMBEDDED_PROFILE - implementazione supporto OpenCL come supplemento. Il profilo modificato è definito come un sottoinsieme per ogni versione OpenCL.

CL_DEVICE_VERSION

Versione OpenCL in formato "OpenCL <space><major_version.minor_version><space><vendor-specific information>"

CL_DEVICE_EXTENSIONS

Elenco delle estensioni supportate dal dispositivo. L'elenco può contenere estensioni supportate dal venditore, nonché uno o più nomi approvati:

   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

L'elenco dei kernel supportati separati da ";".

CL_DEVICE_OPENCL_C_VERSION

La versione massima supportata dal compilatore per questo dispositivo. Versione del formato:

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

CL_ERROR_DESCRIPTION

Descrizione testuale di un errore OpenCL

Esempio:

voidOnStart()
  {
   int cl_ctx;
   string str;
//--- inizializza il contesto OpenCL
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL non trovato");
      return;
     }
//--- Mostra le informazioni riguardo la piattaforma
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_NAME,str))
      Print("Nome piattaforma OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VENDOR,str))
      Print("Venditore piattaforma OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VERSION,str))
      Print("Versione piattaforma OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_PROFILE,str))
      Print("Profilo piattaforma OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_EXTENSIONS,str))
      Print("Ext(estensione) piattaforma OpenCL: ",str);
//--- Mostra le informazioni riguardo il dispositivo
   if(CLGetInfoString(cl_ctx,CL_DEVICE_NAME,str))
      Print("nome del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_PROFILE,str))
      Print("profilo del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_BUILT_IN_KERNELS,str))
      Print("kernel del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_EXTENSIONS,str))
      Print("ext del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VENDOR,str))
      Print("Venditore del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VERSION,str))
      Print("Versione del dispositivo OpenCL: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_OPENCL_C_VERSION,str))
      Print("OpenCL open c ver: ",str);
//--- Mostra informazioni generiche riguardo il dispositivo OpenCL
   Print("Tipo OpenCL: ",EnumToString((ENUM_CL_DEVICE_TYPE)CLGetInfoInteger(cl_ctx,CL_DEVICE_TYPE)));
   Print("OpenCL vendor ID: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_VENDOR_ID));
   Print("OpenCL units: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_COMPUTE_UNITS));
   Print("OpenCL freq: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_MAX_CLOCK_FREQUENCY));
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE));
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE));
//--- free OpenCL context
   CLContextFree(cl_ctx);
  }