小编Ken*_*_g6的帖子

OpenCL事件和命令队列

我正在努力将一个CUDA应用程序(如果你必须知道的话)翻译成OpenCL.原始应用程序使用C风格的CUDA API,单个流只是为了避免在读取结果时自动忙等待.

现在我注意到OpenCL命令队列看起来很像CUDA流.但是在设备读取命令中,同样在写入和内核执行命令中,我也注意到事件的参数.所以我想知道,执行设备写入需要什么,一些内核(例如一次调用一个内核然后100次调用另一个内核)和一个设备读取,所有内核都是顺序执行的?

  1. 如果我只是按顺序将它们排入同一队列,它们会像在CUDA中一样顺序执行吗?
  2. 如果这不起作用,可以/应该菊花链式事件,使每个呼叫的等待列表成为前一个呼叫的事件吗?
  3. 或者我应该将所有先前的事件添加到每个呼叫的等待列表中,例如是否有N ^ 2搜索依赖项或其他内容?
  4. 或者我只需要为每个调用单独调用event.wait(),就像它在AMD的教程中所说的那样

谢谢!

queue parallel-processing cuda opencl

5
推荐指数
1
解决办法
2810
查看次数

标签 统计

cuda ×1

opencl ×1

parallel-processing ×1

queue ×1