Windows Opencl clGetDeviceInfo()函数

12 篇文章 0 订阅

Windows Opencl clGetDeviceInfo()函数详细解析

函数原型

cl_int clGetDeviceInfo(cl_device_id    device,
					   cl_device_info  param_name, 
       				   size_t          param_value_size,
              		   void            *param_value, 
      				   size_t          *param_value_size_ret) 

获取有关OpenCL设备的特定信息。表1指定了可以使用clGetDeviceInfo查询的信息。

deviceclGetDeviceID返回的设备。

param_name是一个枚举常量,用于标识要查询的设备信息。它可以是表1中规定的下列值之一。

param_value是一个指向内存位置的指针,其中将返回表1中指定的给定param_name的适当值。如果param_value为空,则忽略它。

param_value_size指定param_value指向的内存大小(以字节为单位)。这个字节大小必须大于等于表1中指定的返回类型的大小。

param_value_size_ret返回param_value查询的数据的实际大小(以字节为单位)。如果param_value_size_ret为空,则忽略它。

cl_device_info返回类型描述
CL_DEVICE_TYPEcl_device_type

OpenCL设备类型。当前支持的值包括:
CL_DEVICE_TYPE_CPU,
CL_DEVICE_TYPE_GPU,
CL_DEVICE_TYPE_ACCELERATOR,
CL_DEVICE_TYPE_DEFAULT
或者以上几种的组合。

CL_DEVICE_VENDOR_IDcl_uint

唯一的设备供应商标识符。唯一设备标识符的示例可以是PCIe ID。

CL_DEVICE_MAX_COMPUTE_UNITScl_uint

OpenCL设备上的并行计算核心数。最小值为1。

CL_DEVICE_MAX_WORK_ITEM_DIMENSIONScl_uint

指定数据并行执行模型使用的全局和本地工作项ID的最大维度。
(请参阅clEnqueueNDRangeKernel)。
最小值为3。

CL_DEVICE_MAX_WORK_ITEM_SIZESsize_t []

可在工作组的每个维度中指定给clEnqueueNDRangeKernel的最大工作项数。
返回n个大小的条目,其中n是查询返回的值CL_DEVICE_MAX_WORK_ITEM_DI MENSIONS.
最小值为(1,1,1)。

CL_DEVICE_MAX_WORK_GROUP_SIZEsize_t

使用数据并行执行模型执行内核的工作组中的最大工作项数(请参阅clEnqueueNDRangeKernel)。最小值为1。

CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR
CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT
CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT
CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG
CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT
CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE
cl_uint

可放入向量的内置标量类型的首选本机向量宽度大小。向量宽度定义为可以存储在向量中的标量元素的数量。

CL_DEVICE_MAX_CLOCK_FREQUENCYcl_uint

设备的最大配置时钟频率(MHz)。

CL_DEVICE_ADDRESS_BITScl_uint

默认的计算设备地址空间大小指定为无符号整数值(以位为单位)。当前支持的值为32或64位。

CL_DEVICE_MAX_MEM_ALLOC_SIZEcl_ulong

内存对象分配的最大大小(字节)。最小值为max(1/4th of
CL_DEVICE_GLOBAL_MEM_SIZE ,
128×1024×1024)

CL_DEVICE_IMAGE_SUPPORTcl_bool

如果OpenCL设备支持图像,则为CL_TRUE,否则为CL_FALSE。

CL_DEVICE_MAX_READ_IMAGE_ARGScl_uint

内核可以同时读取的最大图像对象数。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为128。

CL_DEVICE_MAX_WRITE_IMAGE_ARGScl_uint

内核可以同时写入的最大图像对象数。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为8。

CL_DEVICE_IMAGE2D_MAX_WIDTHsize_t

二维图像的最大宽度(以像素为单位)。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为8192。

CL_DEVICE_IMAGE2D_MAX_HEIGHTsize_t

二维图像的最大高度(像素)。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为8192。

CL_DEVICE_IMAGE3D_MAX_WIDTHsize_t

三维图像的最大宽度(像素)。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为2048。

CL_DEVICE_IMAGE3D_MAX_HEIGHTsize_t

三维图像的最大宽度(像素)。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为2048。

CL_DEVICE_IMAGE3D_MAX_DEPTHsize_t

三维图像的最大宽度(像素)。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为2048。

CL_DEVICE_MAX_SAMPLERScl_uint

内核中可使用的最大采样器数。如果CL_DEVICE_IMAGE_SUPPORT为CL_TRUE,则最小值为16。

CL_DEVICE_MAX_PARAMETER_SIZEsize_t

可以传递给内核的参数的最大大小(字节)。最小值为256。

CL_DEVICE_MEM_BASE_ADDR_ALIGNcl_uint

描述任何已分配内存对象的基地址的对齐方式(以位为单位)。

CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZEcl_uint

可用于任何数据类型的最小对齐(以字节为单位)。

CL_DEVICE_SINGLE_FP_CONFIGcl_device_ fp_config

描述设备的单精度浮点能力。这是一个位字段,用于描述以下一个或多个值:

CL_FP_DENORM - 支持去噪
CL_FP_INF_NAN - 支持INF和quiet NANS
CL_FP_ROUND_TO_NEAREST - 支持舍入到最近的偶数舍入模式
CL_FP_ROUND_TO_ZERO - 支持舍入到零舍入模式
CL_FP_ROUND_TO_INF - 支持舍入到+ve和–ve无限取整模式
CL_FP_FMA – IEEE754-2008支持熔合乘法加法。
强制的最小浮点能力是:
CL_FP_ROUND_TO_NEAREST!CL_FP_INF_NAN.

CL_DEVICE_GLOBAL_MEM_CACHE_TYPEcl_device_mem_ cache_type

支持的全局内存缓存类型。有效值为:
CL_NONE, CL_READ_ONLY_CACHE和CL_READ_WRITE_CACHE.

CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZEcl_uint

全局内存缓存线的大小(以字节为单位)。

CL_DEVICE_GLOBAL_MEM_CACHE_SIZEcl_ulong

全局内存缓存的大小(字节)。

CL_DEVICE_GLOBAL_MEM_SIZEcl_ulong

全局设备内存的大小(字节)。

CL_DEVICE_MAX_CONSTANT_BUFFER_SIZEcl_ulong

常量缓冲区分配的最大大小(字节)。最小值为64 KB。

CL_DEVICE_MAX_CONSTANT_ARGScl_uint

在内核中用 __constant限定符声明的最大参数数。最小值为8。

CL_DEVICE_LOCAL_MEM_TYPEcl_device_ local_mem_type

支持的本地内存类型。
可以将其设置为CL_LOCAL,这意味着专用的本地内存存储,如SRAM或CL_GLOBAL。

CL_DEVICE_LOCAL_MEM_SIZEcl_ulong

本地内存区域的大小(以字节为单位)。最小值为16 KB。

CL_DEVICE_ERROR_CORRECTION_SUPPORTcl_bool

如果设备对设备中的存储器、缓存、寄存器等进行了纠错,则为CL_True。如果设备不执行纠错,则为CL_FALSE。这可能是OpenCL的某些客户机的要求。

CL_DEVICE_PROFILING_TIMER_RESOLUTIONsize_t

定时器描述了设备的分辨率。这是以纳秒为单位的

CL_DEVICE_ENDIAN_LITTLEcl_bool

如果OpenCL设备是一个小端设备,则为CL_TRUE,否则为CL_FALSE。

CL_DEVICE_AVAILABLEcl_bool

如果设备可用,则为CL_TRUE;如果设备不可用,则为CL_FALSE。

CL_DEVICE_COMPILER_AVAILABLEcl_bool

如果实现没有可用于编译程序源的编译器,则为CL_FALSE
如果编译器可用,则为CL_TRUE。
对于嵌入式平台配置文件,可能是CL_FALSE 。

CL_DEVICE_EXECUTION_CAPABILITIEScl_device_exec_ capabilities

描述设备的执行功能。这是一个位字段,用于描述以下一个或多个值:
CL_EXEC_KERNEL - OpenCL设备可以执行OpenCL内核。
CL_EXEC_NATIVE_KERNEL – OpenCL设备可以执行本机内核。
规定的最低能力为:CL_EXEC_KERNEL.

CL_DEVICE_QUEUE_PROPERTIEScl_command_ queue_properties

描述设备支持的命令队列属性。这是一个位字段,用于描述以下一个或多个值:
CL_QUEUE_OUT_OF_ORDER_EXEC_ MODE_ENABLE
CL_QUEUE_PROFILING_ENABLE
规定的最低能力为:CL_QUEUE_PROFILING_ENABLE.

CL_DEVICE_PLATFORMcl_platform_id

与此设备关联的平台。

CL_DEVICE_NAMEchar[]

设备名称字符串。

CL_DEVICE_VENDORchar[]

供应商名称字符串。

CL_DRIVER_VERSIONchar[]

表格中的OpenCL软件驱动程序版本字符串
major_number.minor_number.

CL_DEVICE_PROFILEchar[]

OpenCL配置文件字符串。返回设备支持的配置文件名。返回的配置文件名可以是以下字符串之一:
FULL_PROFILE – 如果设备支持OpenCL规范(功能定义为核心规范的一部分,并且不需要支持任何扩展)。
EMBEDDED_PROFILE - 如果设备支持OpenCL嵌入式配置文件。

CL_DEVICE_VERSIONchar[]

OpenCL版本字符串。返回设备支持的OpenCL版本。此版本字符串的格式如下:

OpenCL<space><major_version.min or_version><space><vendor-specific information>

major_version.minor_version返回值将是1.0

CL_DEVICE_EXTENSIONSchar[]

返回以空格分隔的扩展名列表(扩展名本身不包含任何空格)。当前返回的扩展名列表可以包括以下一个或多个已批准的扩展名:
cl_khr_fp64
cl_khr_select_fprounding_mode
cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics
cl_khr_int64_base_atomics
cl_khr_int64_extended_atomics
cl_khr_3d_image_writes
cl_khr_byte_addressable_store
cl_khr_fp16
cl_khr_gl_sharing

表1




如果函数执行成功,clGetDeviceInfo将返回CL_SUCCESS。如果设备无效,则返回CL_INVALID_DEVICE;如果param_name不是受支持的值之一,或者param_value_size指定的字节大小小于表1中指定的返回类型的大小,并且param_value不是空值,则返回CL_INVALID_VALUE。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值