Windows Opencl clCreateCommandQueue()函数

12 篇文章 0 订阅

Windows Opencl clCreateCommandQueue()函数详细解析

OpenCL对象(如内存、程序和内核对象)是使用上下文创建的。对这些对象的操作是使用命令队列执行的。命令队列可用于按顺序对一组操作(称为命令)进行排队。拥有多个命令队列允许应用程序将多个独立命令排队,而不需要同步。请注意,只要这些对象没有被共享,这个方法就应该有效。跨多个命令队列共享对象需要应用程序执行适当的同步。

函数原型

cl_command_queue clCreateCommandQueue(cl_context context, 
 	 	 	 	 	 	     	   cl_device_id device, 
	     	   cl_command_queue_properties properties, 
 	 	 	 	 	 	               cl_int *errcode_ret) 

在特定设备上创建命令队列。

context 必须是有效的OpenCL上下文。

Command-Queue Properties描述
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ ENABLE

确定命令队列中排队的命令是按顺序执行还是无序执行。如果设置,命令队列中的命令将无序执行。否则,将按顺序执行命令。

CL_QUEUE_PROFILING_ENABLE
表1 受支持的cl_command_queue_property值和说明的列表。

device必须是与context关联的设备。它可以在使用clCreateContext创建上下文时指定的设备列表中,也可以与使用clCreateContextFromType创建上下文时指定的设备类型具有相同的设备类型。

properties指定命令队列的属性列表。这是一个位字段,如表2所述。只能在properties中设置表2中指定的命令队列属性;否则,属性中指定的值将被视为无效。

errcode_ret将返回适当的错误代码。如果errcode_ret为空,则不返回错误代码。

clCreateCommandQueue返回有效的非零命令队列,如果成功创建命令队列,则errcode_ret设置为CL_SUCCESS。否则,它将返回一个空值,并在errcode_ret中返回以下错误值之一:

  1. CL_INVALID_CONTEXT 如果contest不是有效的上下文。
  2. CL_INVALID_DEVICE 如果device不是有效设备或未与context关联。
  3. CL_INVALID_VALUE 如果属性中指定的值无效。
  4. CL_INVALID_QUEUE_PROPERTIES 如果属性中指定的值有效但设备不支持。
  5. CL_OUT_OF_HOST_MEMORY 如果在主机上分配OpenCL实现所需的资源失败。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值