Ken*_*_g6 5 queue parallel-processing cuda opencl
我正在努力将一个CUDA应用程序(如果你必须知道的话)翻译成OpenCL.原始应用程序使用C风格的CUDA API,单个流只是为了避免在读取结果时自动忙等待.
现在我注意到OpenCL命令队列看起来很像CUDA流.但是在设备读取命令中,同样在写入和内核执行命令中,我也注意到事件的参数.所以我想知道,执行设备写入需要什么,一些内核(例如一次调用一个内核然后100次调用另一个内核)和一个设备读取,所有内核都是顺序执行的?
谢谢!
这取决于您如何创建命令队列.在clCreateCommandQueue中,有一个属性参数,可以包含CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE,它可以在命令队列中启用非顺序执行.
如果设置了该属性,则命令可能无序或并行执行,并且同步它们的唯一方法是使用事件.
如果未设置该属性,则命令会在队列中按顺序执行.