CLGetInfoString

Gibt den string Wert des Eigenschafts für ein OpenCL-Objekt oder Gerät zurück.

bool  CLGetInfoString(
   int  handle,                           // Handle des OpenCL-Objekts oder Nummer des OpenCL-Geräts
   ENUM_OPENCL_PROPERTY_STRING  prop,     // Die angeforderte Eigenschaft
   string&  value                         // String
   );

Optionen

handle

[in]  Handle auf ein OpenCL-Objekt oder Nummer des OpenCL-Geräts. Nummerierung der OpenCL-Geräte startet mit Null.

prop

[in]  Typ der angeforderten Eigenschaft von der Enumeration ENUM_OPENCL_PROPERTY_STRING, deren Wert Sie erhalten möchten.

value

[out]  String den Wert der Eigenschaft zu erhalten.

Rückgabewert

true beim Erfolg oder false beim Fehler. Um Informationen über den Fehler zu erhalten, rufen Sie die Funktion GetLastError().

ENUM_OPENCL_PROPERTY_STRING

Identifier

Beschreibung

CL_PLATFORM_PROFILE

CL_PLATFORM_PROFILE - Profil von OpenCL. Der Profilname kann ein der folgenden Werte sein:

  • FULL_PROFILE - Implementierung unterstützt OpenCL (Funktionalität ist als Teil der Kernspezifikation definiert und erfordert keine zusätzlichen Erweiterungen für OpenCL Unterstützung);
  • EMBEDDED_PROFILE - Implementierung unterstützt OpenCL in Form einer Ergänzung. Ergänztes Profil wird als Teilmenge für jede Version von OpenCL definiert.

CL_PLATFORM_VERSION

OpenCL-Version

CL_PLATFORM_VENDOR

Name des Geräteherstellers

CL_PLATFORM_EXTENSIONS

Liste der von der Plattform unterstützten Erweiterungen. Erweiterungennamen müssen von allen Geräten, die mit dieser Plattform verbunden sind, unterstützt werden

CL_DEVICE_NAME

Gerätename

CL_DEVICE_VENDOR

Name des Herstellers

CL_DRIVER_VERSION

Version von OpenCL-Treiber in Format major_number.minor_number

CL_DEVICE_PROFILE

Profil des OpenCL-Gerätes. Der Profilname kann ein der folgenden Werte sein:

  • FULL_PROFILE - Implementierung unterstützt OpenCL (Funktionalität ist als Teil der Kernspezifikation definiert und erfordert keine zusätzlichen Erweiterungen für OpenCL Unterstützung);
  • EMBEDDED_PROFILE - Implementierung unterstützt OpenCL in Form einer Ergänzung. Ergänztes Profil wird als Teilmenge für jede Version von OpenCL definiert.

CL_DEVICE_VERSION

Version von OpenCL in Format "OpenCL<space><major_version.minor_version><space><vendor-specific information>"

CL_DEVICE_EXTENSIONS

Liste der vom Gerät unterstützten Erweiterungen. Die Liste kann vom Hersteller unterstützten Erweiterungen erhalten und kann einen oder mehrere zugelassene Namen haben:

   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

Liste der vom Gerät unterstützten Kernel, getrennten mit ";".

CL_DEVICE_OPENCL_C_VERSION

Maximale Version, die vom Compiler für dieses Gerät unterstützt ist. Format der Version:

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

CL_ERROR_DESCRIPTION

Beschreibung eines OpenCL-Fehlers als Text

Beispiel:

void OnStart()
  {
   int cl_ctx;
   string str;
//--- Initialisierung von OpenCL Kontext
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL not found");
      return;
     }
//--- Information über die Plattform anzeigen
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_NAME,str))
      Print("OpenCL platform name: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VENDOR,str))
      Print("OpenCL platform vendor: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_VERSION,str))
      Print("OpenCL platform ver: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_PROFILE,str))
      Print("OpenCL platform profile: ",str);
   if(CLGetInfoString(cl_ctx,CL_PLATFORM_EXTENSIONS,str))
      Print("OpenCL platform ext: ",str);
//--- Information über das Gerät anzeigen
   if(CLGetInfoString(cl_ctx,CL_DEVICE_NAME,str))
      Print("OpenCL device name: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_PROFILE,str))
      Print("OpenCL device profile: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_BUILT_IN_KERNELS,str))
      Print("OpenCL device kernels: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_EXTENSIONS,str))
      Print("OpenCL device ext: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VENDOR,str))
      Print("OpenCL device vendor: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_VERSION,str))
      Print("OpenCL device ver: ",str);
   if(CLGetInfoString(cl_ctx,CL_DEVICE_OPENCL_C_VERSION,str))
      Print("OpenCL open c ver: ",str);
//--- Gemeinsame Information über das OpenCL-Gerät anzeigen
   Print("OpenCL type: ",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); 
  }