在我看来,一个opencl命令队列不会将命令分派给多个硬件队列。那么乱序命令队列中的命令仍然是逐个执行的,只是不按它们排队的顺序执行?
因此,如果我想使用多个硬件队列,我只能创建多个opencl命令队列?
答案 0 :(得分:2)
OOO(乱序)队列可用于满足用户事件依赖性的需要。在此类应用程序中拥有单个队列可能导致阻塞队列等待永远不会发生的用户事件。每个作业创建一个队列也是不理想的。
如果你想要执行并行性,OOO不是你需要的。但是有多个队列。
常见的方法是使用Queue for IO和用于运行内核的队列。 但是,您还可以在多线程处理方案中使用每个线程的队列。每个线程的IO将与其他线程的执行重叠。
注意:nVIDIA支持在单个队列中并行执行作业,但这不符合标准。