Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCL C++;绑定:等待单个cl::事件?_C++_Opencl - Fatal编程技术网

C++ OpenCL C++;绑定:等待单个cl::事件?

C++ OpenCL C++;绑定:等待单个cl::事件?,c++,opencl,C++,Opencl,使用(),是否可以让排队的命令只等待一个事件 让我们以enqueueReadBuffer()的签名为例: cl_int cl::CommandQueue::enqueueReadBuffer( ... const VECTOR_CLASS<Event>* events = NULL, ... ) 也许您可以执行event.wait(),然后将另一个事件排队。请参阅。您不想使用VECTOR_类,或者这只是个人偏好,是否有任何性能原因?将每个cl::Event包装在大

使用(),是否可以让排队的命令只等待一个事件

让我们以
enqueueReadBuffer()
的签名为例:

cl_int cl::CommandQueue::enqueueReadBuffer(
   ...
   const VECTOR_CLASS<Event>* events = NULL,
   ... )

也许您可以执行
event.wait()
,然后将另一个事件排队。请参阅。

您不想使用VECTOR_类,或者这只是个人偏好,是否有任何性能原因?将每个
cl::Event
包装在大小为1的向量中似乎是多余的。据我所知,这是唯一的方法。然而,读取向量的第一个值和读取单个值一样有效。我遇到了同样的问题。这是非常糟糕的装订设计。同样不明显的是cl::Event是可复制的——也就是说,当我希望WORK\u UNIT2等待WORK\u UNIT1的事件时,我可以声明cl::Event对象,然后将其添加到向量中吗。或者在添加WORK_UNIT1时,我必须创建向量并排队&my_向量[0]。我认为最初Robert的问题是关于如何传递事件,而不是在enqueueReadBuffer中传递事件向量,而不是如何等待单个事件。我认为你必须使用向量:-(
cl_int clEnqueueReadBuffer ( 
    cl_command_queue command_queue,
    ...
    cl_uint num_events_in_wait_list,
    const cl_event* event_wait_list,
    ... )