0

当我使用多个内核时opencl,将第一个内核(K1)执行的结果输入到第二个内核(K2)执行,所以两个问题是:

  1. 每个内核的事件应该不同还是每个内核应该相同?
  2. 每个内核的命令队列应该不同还是每个内核都应该相同?

谢谢。

4

1 回答 1

1

您需要一个命令队列(假设内核在同一设备上执行)。

除非您的命令队列是使用CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE创建的,否则您不需要在您描述的场景中创建事件:内核按照它们入队的顺序执行。

对于无序命令队列,您应该从第一个clEnqueueNDRangeKernel获取一个事件,并将其作为依赖项传递给第二个。请记住使用clReleaseEvent释放事件。

于 2013-02-01T17:33:10.217 回答