0

It seems to me that one opencl command queue won't dispatch commands to more than one hardware queue. So commands in an out of order command queue are still executed one by one, just not in the order they were enqueued?

So if I want to make use of multiple hardware queues all I can do is to create multiple opencl command queues?

4

1 回答 1

2

OOO(乱序)队列可以满足用户事件依赖的需要。在这种类型的应用程序中拥有一个队列可能会导致阻塞队列等待永远不会发生的用户事件。每个作业创建一个队列也是非最佳的。

如果您希望执行中的并行性,OOO 不是您所需要的。但是多排。

一种常见的方法是使用 IO 队列和运行内核的队列。但是您也可以在多线程处理方案中为每个线程使用一个队列。每个线程的 IO 都会与其他线程的执行重叠。

注意:nVIDIA 确实支持在单个队列中并行执行作业,但这不符合标准。

于 2015-09-07T10:22:45.623 回答