跳至内容

CLGetDeviceInfo

CLGetDeviceInfo

函数从OpenCL驱动器接收设备的性能.

bool  CLGetDeviceInfo(
   int     handle,          // OpenCL设备处理
   int     property_id,     // 被请求的属性 ID
   uchar&  data[],          // 数据接收数组
   uint&   size             // 数组中的元素转换,默认为0
   );

参数

handle

[in] 由 CLContextCreate() 函数创建OpenCL设备索引或OpenCL处理.

property_id

[in] OpenCL设备属性 ID 应当被接收. 该值是列于 table below 中可以被预定的某个值.

data[]

[out] 用于接收数据的数组具有被要求的属性.

size

[out] 接收数据的数组 data[] 大小.

返回值

如果成功则为true ,否则为 false. 有关错误信息,使用 GetLastError() 函数.

注意

对于一维数组,考虑到 AS_SERIES 旗帜,元素的数量,从写入读取数据到一个OpenCL缓冲开始处计算.

可用的OpenCL设备性能ID列表

性能的准确描述及其函数可以在 the official OpenCL web site 找到.

标识符
CL_DEVICE_TYPE0x1000
CL_DEVICE_VENDOR_ID0x1001
CL_DEVICE_MAX_COMPUTE_UNITS0x1002
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS0x1003
CL_DEVICE_MAX_WORK_GROUP_SIZE0x1004
CL_DEVICE_MAX_WORK_ITEM_SIZES0x1005
CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR0x1006
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT0x1007
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT0x1008
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG0x1009
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT0x100A
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE0x100B
CL_DEVICE_MAX_CLOCK_FREQUENCY0x100C
CL_DEVICE_ADDRESS_BITS0x100D
CL_DEVICE_MAX_READ_IMAGE_ARGS0x100E
CL_DEVICE_MAX_WRITE_IMAGE_ARGS0x100F
CL_DEVICE_MAX_MEM_ALLOC_SIZE0x1010
CL_DEVICE_IMAGE2D_MAX_WIDTH0x1011
CL_DEVICE_IMAGE2D_MAX_HEIGHT0x1012
CL_DEVICE_IMAGE3D_MAX_WIDTH0x1013
CL_DEVICE_IMAGE3D_MAX_HEIGHT0x1014
CL_DEVICE_IMAGE3D_MAX_DEPTH0x1015
CL_DEVICE_IMAGE_SUPPORT0x1016
CL_DEVICE_MAX_PARAMETER_SIZE0x1017
CL_DEVICE_MAX_SAMPLERS0x1018
CL_DEVICE_MEM_BASE_ADDR_ALIGN0x1019
CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE0x101A
CL_DEVICE_SINGLE_FP_CONFIG0x101B
CL_DEVICE_GLOBAL_MEM_CACHE_TYPE0x101C
CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE0x101D
CL_DEVICE_GLOBAL_MEM_CACHE_SIZE0x101E
CL_DEVICE_GLOBAL_MEM_SIZE0x101F
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE0x1020
CL_DEVICE_MAX_CONSTANT_ARGS0x1021
CL_DEVICE_LOCAL_MEM_TYPE0x1022
CL_DEVICE_LOCAL_MEM_SIZE0x1023
CL_DEVICE_ERROR_CORRECTION_SUPPORT0x1024
CL_DEVICE_PROFILING_TIMER_RESOLUTION0x1025
CL_DEVICE_ENDIAN_LITTLE0x1026
CL_DEVICE_AVAILABLE0x1027
CL_DEVICE_COMPILER_AVAILABLE0x1028
CL_DEVICE_EXECUTION_CAPABILITIES0x1029
CL_DEVICE_QUEUE_PROPERTIES0x102A
CL_DEVICE_NAME0x102B
CL_DEVICE_VENDOR0x102C
CL_DRIVER_VERSION0x102D
CL_DEVICE_PROFILE0x102E
CL_DEVICE_VERSION0x102F
CL_DEVICE_EXTENSIONS0x1030
CL_DEVICE_PLATFORM0x1031
CL_DEVICE_DOUBLE_FP_CONFIG0x1032
CL_DEVICE_PREFERRED_VECTOR_WIDTH_HALF0x1034
CL_DEVICE_HOST_UNIFIED_MEMORY0x1035
CL_DEVICE_NATIVE_VECTOR_WIDTH_CHAR0x1036
CL_DEVICE_NATIVE_VECTOR_WIDTH_SHORT0x1037
CL_DEVICE_NATIVE_VECTOR_WIDTH_INT0x1038
CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG0x1039
CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT0x103A
CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE0x103B
CL_DEVICE_NATIVE_VECTOR_WIDTH_HALF0x103C
CL_DEVICE_OPENCL_C_VERSION0x103D
CL_DEVICE_LINKER_AVAILABLE0x103E
CL_DEVICE_BUILT_IN_KERNELS0x103F
CL_DEVICE_IMAGE_MAX_BUFFER_SIZE0x1040
CL_DEVICE_IMAGE_MAX_ARRAY_SIZE0x1041
CL_DEVICE_PARENT_DEVICE0x1042
CL_DEVICE_PARTITION_MAX_SUB_DEVICES0x1043
CL_DEVICE_PARTITION_PROPERTIES0x1044
CL_DEVICE_PARTITION_AFFINITY_DOMAIN0x1045
CL_DEVICE_PARTITION_TYPE0x1046
CL_DEVICE_REFERENCE_COUNT0x1047
CL_DEVICE_PREFERRED_INTEROP_USER_SYNC0x1048
CL_DEVICE_PRINTF_BUFFER_SIZE0x1049
CL_DEVICE_IMAGE_PITCH_ALIGNMENT0x104A
CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT0x104B

例如:

void OnStart()
  {
//---
   int dCount= CLGetInfoInteger(0,CL_DEVICE_COUNT);
   for(int i = 0; i<dCount; i++)
     {
      int clCtx=CLContextCreate(i);
      if(clCtx == -1)
         Print("ERROR in CLContextCreate");
      string device;
      CLGetInfoString(clCtx,CL_DEVICE_NAME,device);
      Print(i,": ",device);
      uchar data[1024];
      uint size;
      CLGetDeviceInfo(clCtx,CL_DEVICE_VENDOR,data,size);
      Print("size = ",size);
      string str=CharArrayToString(data);
      Print(str);
     }
  }
//--- example of entries in Experts journal
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      2: Advanced Micro Devices, Inc.
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      size = 32
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      Tahiti
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      Intel(R) Corporation
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      size = 21
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      1:        Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      NVIDIA Corporation
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      size = 19
//  2013.07.24 10:50:48     opencl (EURUSD,H1)      0: GeForce GTX 580