CLGetInfoString

Rend la valeur de ligne pour l'objet OpenCL ou le dispositif.

bool  CLGetInfoString(
   int  handle,                           // le handle de l'objet OpenCL ou le numéro du dispositif OpenCL
   ENUM_OPENCL_PROPERTY_STRING  prop,     // la propriété demandée
   string&  value                         // la ligne selon la référence
   );

Réglages

handle

[in]  Le handle sur l'objet OpenCL ou le numéro du dispositif OpenCL. Le numérotage OpenCL des dispositifs commence par le zéro.

prop

[in]  Le type de la propriété demandée de l'énumération ENUM_OPENCL_PROPERTY_STRING, dont la valeur il faut recevoir.

value

[out]  La ligne pour la réception de la valeur de la propriété.

La valeur rendue

En cas de l'exécution successive rend true, autrement rend false. Pour recevoir l'information sur l'erreur, utilisez la fonction GetLastError().

ENUM_OPENCL_PROPERTY_STRING

Identificateur

La description

CL_PLATFORM_PROFILE

CL_PLATFORM_PROFILE - Le profil OpenCL.  Le nom du profil peut être une des valeurs:

  • FULL_PROFILE - la réalisation soutient OpenCL (la fonctionnalité est définie comme la partie de la spécification du noyau et ne demande pas les extensions supplémentaires pour le soutien d' OpenCL);
  • EMBEDDED_PROFILE - la réalisation soutient OpenCL en forme du complément. Le profil complété est défini comme la sous-multitude pour chaque version OpenCL.

CL_PLATFORM_VERSION

La version OpenCL

CL_PLATFORM_VENDOR

Le nom du fabricant de l'appareil

CL_PLATFORM_EXTENSIONS

La liste des extensions soutenus par la plateforme. Les noms des extensions doivent être soutenus par toutes les dispositifs liés avec cette plateforme

CL_DEVICE_NAME

Le nom du dispositif

CL_DEVICE_VENDOR

Le nom du fabricant

CL_DRIVER_VERSION

La version du pilote informatique OpenCL dans le format major_number.minor_number

CL_DEVICE_PROFILE

Le profil du dispositif OpenCL. Le nom du profil peut être une des valeurs:

  • FULL_PROFILE - la réalisation soutient OpenCL (la fonctionnalité est définie comme la partie de la spécification du noyau et ne demande pas les extensions supplémentaires pour le soutien d' OpenCL);
  • EMBEDDED_PROFILE - la réalisation soutient OpenCL en forme du complément. Le profil complété est défini comme la sous-multitude pour chaque version OpenCL.

CL_DEVICE_VERSION

La version OpenCL dans le format "OpenCL<space><major_version.minor_version><space><vendor-specific information>"

CL_DEVICE_EXTENSIONS

La liste des extensions soutenus par le dispositif. La liste peut insérer les extensions soutenus par le producteur et contenir un ou plus de noms approuvés:

   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

La liste des noyaux, soutenus par le dispositif, divisé par ";" .

CL_DEVICE_OPENCL_C_VERSION

La version maximale soutenue par le compilateur pour ce dispositif. Le format de la version:

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

CL_ERROR_DESCRIPTION

Description textuelle d'une erreur OpenCL

Exemple:

void OnStart()
  {
   int cl_ctx;
   string str;
//--- l'initialisation du contexte OpenCL
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL not found");
      return;
     }
//--- déduisons l'information sur la plateforme
   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);
//--- déduisons l'information sur le dispositif
   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);
//--- déduisons l'information totale sur le dispositif  OpenCL
   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);
  }