CLGetInfoInteger

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

long  CLGetInfoInteger(
   int  handle,                           // Handle des OpenCL-Objekts oder Nummer des OpenCL-Geräts
   ENUM_OPENCL_PROPERTY_INTEGER  prop     // Die angeforderte Eigenschaft
   );

Parameter

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 Listing ENUM_OPENCL_PROPERTY_INTEGER, deren Wert Sie möchten erhalten.

Rückgabewert

Der Wert der angegebenen Eigenschaft beim Erfolg oder -1 bei einem Fehler. Um Informationen über den Fehler zu erhalten, rufen Sie die Funktion GetLastError().

ENUM_OPENCL_PROPERTY_INTEGER

Identifikator

Beschreibung

Typ

CL_DEVICE_COUNT

Die Anzahl der Geräte mit Unterstützung für OpenCL. Diese Eigenschaft erfordert nicht Eingabe des ersten Parameter, ist es möglich, einen Null-Wert für den handle Parameter anzugeben.

int

CL_DEVICE_TYPE

Gerätetyp

ENUM_CL_DEVICE_TYPE

CL_DEVICE_VENDOR_ID

Eindeutiger Identifikator des Verkäufers

uint

CL_DEVICE_MAX_COMPUTE_UNITS

Anzahl der parallel berechneten Aufgaben im OpenCL-Gerät. Eine Arbeitsgruppe erfüllt eine Rechenaufgabe. Der Mindestwert ist 1.

uint

CL_DEVICE_MAX_CLOCK_FREQUENCY

Maximale Frequenz des Gerätes in MHz.

uint

CL_DEVICE_GLOBAL_MEM_SIZE

Größe des globalen Speichers des Gerätes in Bytes

ulong

CL_DEVICE_LOCAL_MEM_SIZE

Größe des lokalen Speichers der verarbeiteten Daten (Szene) in Bytes

uint

CL_BUFFER_SIZE

CL_BUFFER_SIZE Tatsächliche Größe des OpenCL Puffers in Bytes ulong

ulong

CL_DEVICE_MAX_WORK_GROUP_SIZE

Gesamtzahl lokaler Arbeitsgruppen, die für ein OpenCL-Gerät verfügbar sind.

ulong

CL_KERNEL_WORK_GROUP_SIZE

Gesamtzahl lokaler Arbeitsgruppen, die für ein OpenCL-Programm verfügbar sind.

ulong

CL_KERNEL_LOCAL_MEM_SIZE

Größe des lokalen Speichers in Bytes, den das OpenCL-Programm für alle parallelen Aufgaben in der Gruppe nutzt. Verwenden Sie CL_DEVICE_LOCAL_MEM_SIZE für das Erhalten des verfügbaren Maximums

ulong

CL_KERNEL_PRIVATE_MEM_SIZE

Mindestgröße des privaten Speichers in Bytes, den jede Aufgabe im Kernel des OpenCL-Programms nutzt

ulong

CL_LAST_ERROR

Der Wert des letzten OpenCL-Fehlers

int

 

Enumeration ENUM_CL_DEVICE_TYPE enthält Typen der Geräte mit Unterstützung für OpenCL. Gerätetyp kann durch seine Nummer oder Handle des Objekts OpenCL durch den Aufruf von CLGetInfoInteger(handle_or_deviceN, CL_DEVICE_TYPE) erhalten werden.

ENUM_CL_DEVICE_TYPE

Identifikator

Beschreibung

CL_DEVICE_ACCELERATOR

Spezialisierter OpenCL-Beschleuniger (zum Beispiel IBM CELL Blade).

CL_DEVICE_CPU

Das OpenCL-Gerät ist ein Host-Prozessor. Der Host-Prozessor läuft die OpenCL-Implementierungen und ist ein Single- oder Multi-Core-CPU.

CL_DEVICE_GPU

Das OpenCL-Gerät ist eine GPU.

CL_DEVICE_DEFAULT

Das Standardgerät OpenCL. Das Standardgerät kann nicht ein CL_DEVICE_TYPE_CUSTOM-Gerät sein.

CL_DEVICE_CUSTOM

Spezielle Beschleunigern, die Programme in OpenCL C nicht unterstützen.

Beispiel:

void OnStart()
  {
   int cl_ctx;
//--- Initialisierung von OpenCL Kontext
   if((cl_ctx=CLContextCreate(CL_USE_GPU_ONLY))==INVALID_HANDLE)
     {
      Print("OpenCL not found");
      return;
     }
//--- Allgemeine Informationen ü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)," MHz");
   Print("OpenCL global mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_GLOBAL_MEM_SIZE)," bytes");
   Print("OpenCL local mem: ",CLGetInfoInteger(cl_ctx,CL_DEVICE_LOCAL_MEM_SIZE)," bytes");
//--- free OpenCL context
   CLContextFree(cl_ctx);
  }